#!/bin/tcsh #SBATCH --time=1:00:00 #SBATCH -N 1 #SBATCH -n 8 # additional information for allocated clusters #SBATCH --account=chpc #SBATCH --partition=lonepeak #set echo #set SLURM_JOB_ID = 1 #set SLURM_NTASKS = 8 #set SLURM_NODELIST = lp #set SLURM_SUBMIT_DIR = /uufs/chpc.utah.edu/common/home/u0101881/clusters/lonepeak ################################################################# # This script executes several parallel jobs simultaneously. # Number of jobs is equal to number of Slurm tasks (-n x) # and must be equal to number of lines for WORKDIR and PROGRAM # You have the option of using different scratches. ################################################################# ################################################################# # Initial info, good for reporting problems ################################################################# echo Beginning job on `hostname` on `date` echo Job number $SLURM_JOB_ID echo Running on nodes: $SLURM_NODELIST ################################################################# # Define location (global or local) # Note: when using 'local' your whole scratch directory space will # be removed before the job starts (to clean up left-overs from # previous crashed runs). # Never change $SCRATCHDIR (below) into anything other then a real # /scratch/local space without also changing LOCATION to # 'global'. If you do, your whole work space will be lost!!! ################################################################# # /scratch/kingspeak/serial # /scratch/lonepeak/serial # /scratch/telluride/serial # /scratch/ibrix/chpc_gen # /scratch/local set LOCATION = local ################################################################# # Supply details of programs, directories, and files # WORKDIR - data directory, unique for each job # PROGRAM - the program to run, can be the same or unique for each run # SCRATCHDIR - scratch directory for intermediate data storage # replace username with your username ################################################################# set WORKDIR = ( $HOME/clusters/lonepeak/1 \ $HOME/clusters/lonepeak/2 \ $HOME/clusters/lonepeak/3 \ $HOME/clusters/lonepeak/4 \ $HOME/clusters/lonepeak/5 \ $HOME/clusters/lonepeak/6 \ $HOME/clusters/lonepeak/7 \ $HOME/clusters/lonepeak/8) set PROGRAM = ($HOME/clusters/lonepeak/hostname \ $HOME/clusters/lonepeak/hostname \ $HOME/clusters/lonepeak/hostname \ $HOME/clusters/lonepeak/hostname \ $HOME/clusters/lonepeak/hostname \ $HOME/clusters/lonepeak/hostname \ $HOME/clusters/lonepeak/hostname \ $HOME/clusters/lonepeak/hostname ) set SCRATCHDIR = /scratch/$LOCATION/username ################################################################# ################################################################# # The real stuff. Don't mess with this, or you are on your own... ################################################################ ################################################################# cd $SLURM_SUBMIT_DIR ################################################################# # create script for a single run ################################################################# cat << EOM > single_script.csh #!/bin/tcsh mkdir -p \$1 sync wait cp \$2/* \$1 sync cd \$1 \$3 >& output cp * \$2 sync cd $HOME rm -rf \$1 EOM chmod u+x single_script.csh ################################################################# # create Slurm multi-prog config file ################################################################# rm -f multiprog.conf @ JOBNR = 0 while ($JOBNR < $SLURM_NTASKS) @ JOBNR1 = $JOBNR + 1 echo $JOBNR $SLURM_SUBMIT_DIR/single_script.csh $SCRATCHDIR/$SLURM_JOB_ID/$JOBNR1 $WORKDIR[$JOBNR1] $PROGRAM[$JOBNR1] >> multiprog.conf @ JOBNR = $JOBNR + 1 end ################################################################# # run using srun --multi-prog ################################################################# srun --multi-prog multiprog.conf ################################################################# # Final info, good for reporting problems ################################################################# echo You made it! echo You have been running on the following processors: echo Job completed on `date`.