#!/bin/sh # Common logic to take a selection of variables and values and spawn a load of relevant cluster jobs # Data will be saved at $datadir/$var$val/$seed by default using this script datadir="$1" # Base save path var="$2" # Parameter to vary vals="$3" # Array of values to assign to var initargs="$4" # Array of non-varying parameters (e.g. scaling=0) jobname="$5" # Job name seeds="$6" # Array of random seeds if [ "$seeds" = "" ]; then #seeds="1 2 3 4 5 6 7 8 9 11 13 14 15 16 17 18 20 21 22 23" # Default set of 20 (excluding 10,12,19 due to bad wiring) #seeds="31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60" # additional 30 runs seeds="1 2 3 4 5 6 7 8 9 11 13 14 15 16 17 18 20 21 22 23 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60" # all 50 runs fi ################################## for seed in $seeds; do for val in $vals; do # Make savedir name savepath="$datadir/$var$val/$seed" # Create savedir echo echo "mkdir -p $savepath" mkdir -p "$savepath" # Append seeds to 'args' # randsy needs to be negative for normal-distribution randomisation seedstring=" -c {inputseed=$seed} -c {pseed=$seed} -c {dvseed=$seed} -c {stimseed=$seed} -c {randsy=$seed*-1}" args=$initargs$seedstring export var export val export args export savepath export jobname # Run sim echo "msub -v var,val,args,savepath -o $savepath/$jobname.out -e $savepath/$jobname.err -N $jobname clusterrun.sh" msub -v var,val,args,savepath -o $savepath/$jobname.out -e $savepath/$jobname.err -N $jobname clusterrun.sh done done