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.
rsyncfiles to thepathspecified indataset.csvon your cluster.- Run
sbatch instantiate.shto install the exact project dependencies specified inManifest.toml. - Run
sbatch assess.sh mydatasetnameto calculate the number of jobs and windows for each dataset (row) indatasets.csv. - Run
sbatch estimate.sh mydatasetnameto estimate computation and memory needs. - In run.sh set
arrayto e.g.0-9and other SLURM parameters, to see if things are working withsbatch run.sh mydatasetname. - Update
arrayfor the rest of the job and rerunsbatch run.sh mydatasetname, and repeat for each dataset. - Run
sbatch reassess.sh mydatasetnameand check the data map in the slurm file to make sure it is empty. If there are remaining jobs for some reason, updateruns.shwitharray=0-myremainingjobsand 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 mydatasetnamefor each dataset to mosaic the outputs into rasters. - rsync
output_*files from the paths in yourdatasets.csvback to your local machine.
If you have any problems following this, please make an issue in the issues tab above.