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