| 113 | |
| 114 | == Submitting Many Dependent Jobs with Bash Script == |
| 115 | |
| 116 | Look at '''SubmitDependentJobs.sh''' |
| 117 | {{{ |
| 118 | [fuji@cypress1 JobDependencies]$ cat SubmitDependentJobs.sh |
| 119 | #!/bin/bash |
| 120 | EMAIL=$USER@tulane.edu |
| 121 | WALLTIME_LIMIT=1:00:00 |
| 122 | export WORKDIR=`pwd` |
| 123 | # |
| 124 | QUEUE='--partition=workshop --qos=workshop' |
| 125 | WALLTIME="--time=$WALLTIME_LIMIT" |
| 126 | RESORCE="--nodes=1 --ntasks-per-node=1 --cpus-per-task=1" |
| 127 | OTHERS="--export=ALL --mail-type=END --mail-user=$EMAIL" |
| 128 | # |
| 129 | JOB_SETTING="$QUEUE $WALLTIME $RESORCE $OTHERS" |
| 130 | |
| 131 | DEPENDENCY="" |
| 132 | |
| 133 | while [[ $# > 0 ]] |
| 134 | do |
| 135 | JOB=`sbatch --job-name=$DIRNAME$1 $DEPENDENCY $JOB_SETTING ./$1 | awk '{print $4}'`; |
| 136 | echo $JOB submitted; |
| 137 | DEPENDENCY="--dependency=afterok:$JOB" ; |
| 138 | shift |
| 139 | done |
| 140 | }}} |
| 141 | |
| 142 | This bash script takes script names as command-line options, and submits a sequence of dependent jobs with those scripts. |
| 143 | |
| 144 | The bash script, '''script.sh''' is |
| 145 | {{{ |
| 146 | [fuji@cypress1 JobDependencies]$ cat script.sh |
| 147 | #!/bin/bash |
| 148 | |
| 149 | module load anaconda |
| 150 | python addOne.py |
| 151 | |
| 152 | sleep 1 |
| 153 | }}} |
| 154 | runs '''addOne.py'''. |
| 155 | |
| 156 | Let's submit 10 of '''script.sh''', |
| 157 | {{{ |
| 158 | [fuji@cypress1 JobDependencies]$ ./SubmitDependentJobs.sh script.sh script.sh script.sh script.sh script.sh script.sh script.sh script.sh script.sh script.sh |
| 159 | 774001 submitted |
| 160 | 774002 submitted |
| 161 | 774003 submitted |
| 162 | 774004 submitted |
| 163 | 774005 submitted |
| 164 | 774006 submitted |
| 165 | 774007 submitted |
| 166 | 774008 submitted |
| 167 | 774009 submitted |
| 168 | 774010 submitted |
| 169 | }}} |
| 170 | |
| 171 | List jobs, |
| 172 | {{{ |
| 173 | [fuji@cypress1 JobDependencies]$ squeue -u fuji |
| 174 | JOBID QOS NAME USER ST TIME NO NODELIST(REASON) |
| 175 | 774005 worksh script.sh fuji PD 0:00 1 (Dependency) |
| 176 | 774006 worksh script.sh fuji PD 0:00 1 (Dependency) |
| 177 | 774007 worksh script.sh fuji PD 0:00 1 (Dependency) |
| 178 | 774008 worksh script.sh fuji PD 0:00 1 (Dependency) |
| 179 | 774009 worksh script.sh fuji PD 0:00 1 (Dependency) |
| 180 | 774010 worksh script.sh fuji PD 0:00 1 (Dependency) |
| 181 | 774004 worksh script.sh fuji R 0:01 1 cypress01-117 |
| 182 | }}} |