diff --git a/scripts/launchSlurmArray.py b/scripts/launchSlurmArray.py index 69d9eb1a3ce4c473a631757e2a87f924c5fa8799..7de4c917785f9fd09e8faf5630f28792819a4e0f 100644 --- a/scripts/launchSlurmArray.py +++ b/scripts/launchSlurmArray.py @@ -12,7 +12,52 @@ def launchSlurmArray(names, commands, jobName, device, nbHours, limit) : commandList = " ".join(commands) - if "jean-zay" in hostname : + if ".cluster" in hostname : + print("""#! /usr/bin/env bash + +#SBATCH --array=0-{}%{} +#SBATCH --job-name={} +#SBATCH --output=%A_%a.out +#SBATCH --error=%A_%a.err +#SBATCH --open-mode=append +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=4 +#SBATCH --partition=skylake +#SBATCH -A b250 +#SBATCH --time={}:00:00 + +module purge +module load userspace/all +module load gcc/10.2.0 +module load python3/3.8.6 + +names=({}) +commands=({}) + +newOut=${{names[$SLURM_ARRAY_TASK_ID]}}".stdout" +newErr=${{names[$SLURM_ARRAY_TASK_ID]}}".stderr" +oldOut=$SLURM_ARRAY_JOB_ID"_"$SLURM_ARRAY_TASK_ID".out" +oldErr=$SLURM_ARRAY_JOB_ID"_"$SLURM_ARRAY_TASK_ID".err" +tmpFile=$SLURM_ARRAY_JOB_ID"_"$SLURM_ARRAY_TASK_ID".tmp" + +touch $newOut + +cp $newOut $tmpFile +mv $oldOut $newOut +cat $tmpFile >> $newOut + +touch $newErr + +cp $newErr $tmpFile +mv $oldErr $newErr +cat $tmpFile >> $newErr + +rm $tmpFile + +eval "${{commands[$SLURM_ARRAY_TASK_ID]}}" +""".format(len(names)-1, limit, jobName, nbHours, " ".join(names), " ".join(commands)), file=sFile) + sFile.close() + elif "jean-zay" in hostname : print("""#! /usr/bin/env bash #SBATCH --array=0-{}%{} @@ -66,8 +111,7 @@ eval "${{commands[$SLURM_ARRAY_TASK_ID]}}" #SBATCH --error=%A_%a.err #SBATCH --open-mode=append #SBATCH --ntasks=1 -#SBATCH --cpus-per-task=1 -#SBATCH --hint=nomultithread +#SBATCH --cpus-per-task=4 #SBATCH --partition={} #SBATCH --time={}:00:00