Hi Feng,
I did something like this

for i in *
do
if [ -d "$i" ]
then cd "$i"
a=$(ls *.tar.gz)
echo $PWD/"$a"
cd ..
fi
done

This gave me the full path of my tar.gz files. Should I save this in a
separate text file and then run an array script on it?

Thanks

Regards
VARUN

On Thu, Jun 13, 2019 at 1:46 PM Feng Zhang <prod.f...@gmail.com> wrote:

> You can try to write the script to first scan all the files to get their
> full path names and then run the Array jobs.
>
>
> On Jun 13, 2019, at 1:20 PM, VG <gupta567va...@gmail.com> wrote:
>
> HI Joshua,
> I like the array job option because essentially it will still be 1 job and
> it will run them in parallel.
>
> I have one issue though. I can create an array script, but here I
> presented a simple problem. Actually my individual tar.gz files are under
> respective directories
> For example
> dir1 has file1.tar.gz
> dir2 has file2.tar.gz
> dir3 has file3.tar.gz
>
> The way I was then submitting them was
>
> for i in *
> do
>   if [ -d "$i" ]
>   then cd "$i"
>   qsub -l h_vmem=4G -cwd -j y -b y -N tar -R y -q all.q,gpu.q "tar -xf
> *.tar"
>   cd ..
>   fi
> done
>
> One way is I can pull out all the tar.gz in one folder and run array
> script as you told, other wise is there a work around where everything runs
> and also remains in the respective directories.
>
> Thanks for your help.
>
> Regards
> Varun
>
>
>
>
>
> On Thu, Jun 13, 2019 at 1:11 PM Joshua Baker-LePain <j...@salilab.org>
> wrote:
>
>> On Thu, 13 Jun 2019 at 9:32am, VG wrote
>>
>> > I have a scripting question regarding submitting jobs to the cluster.
>> > There is a limitation per user of 1000 jobs only.
>> > Let's say I have 1200 tar.gz files
>> >
>> > I tried to submit all the jobs together but after 1000 jobs it gave me
>> an
>> > error message saying per user limit is 1000 and after that it did not
>> > queued the remaining jobs.
>> > I want to write a script where if the submitted jobs goes below
>> > 1000(because they finished running), then next jobs are submitted in the
>> > queue. How can I do that?
>> > I have written something like this:
>> >
>> > for i in *tar.gz
>> > do
>> >   qsub -l h_vmem=4G -cwd -j y -b y -N tar -R y -q all.q,gpu.q "tar -xzf
>> $i"
>> > done
>>
>> The right answer to this problem (not the scripting issue, but how to
>> untar all 1200 files without running afoul of the 1000 job limit) is an
>> array job.  You can submit 1 job with 1200 tasks to untar all the files.
>> The relevant bits of the job script would include (assuming bash):
>>
>> targzs=(0 file1.tar.gz file2.tar.gz ... file1200.tar.gz)
>> tar xzf ${targzs[$SGE_TASK_ID]}
>>
>> To submit it:
>>
>> qsub -t 1-1200 job.sh
>>
>> --
>> Joshua Baker-LePain
>> QB3 Shared Cluster Sysadmin
>> UCSF
>>
> _______________________________________________
> users mailing list
> users@gridengine.org
> https://gridengine.org/mailman/listinfo/users
>
>
_______________________________________________
users mailing list
users@gridengine.org
https://gridengine.org/mailman/listinfo/users

Reply via email to