SLURM job management for ConScape.jl
Runs a ConScape.jl BatchProblem
as array jobs on a slurm cluster.
user/problem.jl
holds the problem specification, loaded with using ConScapeSlurm
.
user/datasets.csv
holds file paths and parameters for one or multpiple dataset that use this Problem
specification.
The scripts
folder holds paired julia .jl
and bash .sh
scripts. The .sh
scripts can be edited to change
SLURM settings, and set memory and time requirements, and the number of jobs to run.
Generally, a ConScape workflow looks like this.
- Clone this repository, and make a branch or a fork to work in
- Edit the datasets.csv and problem.jl files to match your needs.
rsync
files to thepath
specified indataset.csv
on your cluster.- Run
sbatch instantiate.sh
to install the exact project dependencies specified inManifest.toml
. - Run
sbatch assess.sh mydatasetname
to calculate the number of jobs and windows for each dataset (row) indatasets.csv
. - Run
sbatch estimate.sh mydatasetname
to estimate computation and memory needs. - In run.sh set
array
to e.g.0-9
and other SLURM parameters, to see if things are working withsbatch run.sh mydatasetname
. - Update
array
for the rest of the job and rerunsbatch run.sh mydatasetname
, and repeat for each dataset. - Run
sbatch reassess.sh mydatasetname
and check the data map in the slurm file to make sure it is empty. If there are remaining jobs for some reason, updateruns.sh
witharray=0-myremainingjobs
and runsbatch run.sh mydatasetname
. - Repeat until the map is empty, fixing any issues that may cause the same jobs to fail repeatedly.
- Run
sbatch mosaic.sh mydatasetname
for each dataset to mosaic the outputs into rasters. - rsync
output_*
files from the paths in yourdatasets.csv
back to your local machine.
If you have any problems following this, please make an issue in the issues tab above.