Allocate an interactive session and run the program.
Sample session (user input in bold):
[user@biowulf]$ sinteractive salloc.exe: Pending job allocation 46116226 salloc.exe: job 46116226 queued and waiting for resources salloc.exe: job 46116226 has been allocated resources salloc.exe: Granted job allocation 46116226 salloc.exe: Waiting for resource configuration salloc.exe: Nodes cn3144 are ready for job [user@cn3144 ~]$ module load tractseg [user@cn3144 ~]$ TractSeg --help [user@cn3144 ~]$ exit salloc.exe: Relinquishing job allocation 46116226 [user@biowulf ~]$
Create a batch input file (e.g. tractseg.sh). For example (using test data below):
#!/bin/bash #SBATCH --job-name=tractseg #SBATCH --gres=lscratch:20 #SBATCH --exclusive #SBATCH --mem=32g #SBATCH --time=72:00:00 module load fmriprep/20.2.1 tar -C /lscratch/${SLURM_JOB_ID} -xf /usr/local/apps/fmriprep/TEST_DATA/ds001.tar.gz fmriprep /lscratch/${SLURM_JOB_ID}/ds001 /lscratch/${SLURM_JOB_ID}/fmriprep.out.ds001 \ participant --participant_label sub-01 -w /lscratch/${SLURM_JOB_ID} \ --notrack --use-aroma
Submit this job using the Slurm sbatch command.
sbatch fmriprep.sh
Create a swarmfile (e.g. fmriprep.swarm). For example:
fmriprep /data/${USER}/BIDS-dataset/ds001/ /data/$USER/BIDS-dataset/fmriprep.out.ds001 \ participant --participant_label sub-01 -w /lscratch/${SLURM_JOB_ID} \ --use-aroma --notrack fmriprep /data/${USER}/BIDS-dataset/ds002/ /data/$USER/BIDS-dataset/fmriprep.out.ds002 \ participant --participant_label sub-02 -w /lscratch/${SLURM_JOB_ID} \ --use-aroma --notrack fmriprep /data/${USER}/BIDS-dataset/ds003/ /data/$USER/BIDS-dataset/fmriprep.out.ds003 \ participant --participant_label sub-03 -w /lscratch/${SLURM_JOB_ID} \ --use-aroma --notrack
Submit this job using the swarm command.
swarm -f fmriprep.swarm [--gres=lscratch:#] [-g #] -t auto --module fmriprepwhere
-gres=lscratch:# | Number of Gigabytes of local disk space allocated per process (1 line in the swarm command file) |
-g # | Number of Gigabytes of memory required for each process (1 line in the swarm command file) |
-t # | Number of threads/CPUs required for each process (1 line in the swarm command file). We set this to auto to allocate all CPUs in each node.
|
--module fmriprep | Loads the fmriprep module for each subjob in the swarm |