job_submitter.sh, perlmutter_job.sh, and shifter_job.sh are template scripts used to submit jobs on NERSC's supercomputer permutter. While meant for perlmutter (and GPU access), simply removing any GPU related settings will make these scripts usable with NERSC's cori.
As per NERSC's documentation
these scripts make use of shifter
which converts Docker
images to a common
format which can be efficiently distributed. Just build a docker image and push
it to DockerHub. On NERSC's hpc pull the docker image and convert it to a
shifter image by running
shifterimg -v pull <path-to-docker-image-on-dockerhub>
This script serves as the entrypoint for submitting jobs. It creates a directory
located in $SCRATCH
where one can find the job's .out
files. It also export
the EXP
variable for downstream use. It then submits a job by calling sbatch
with perlmutter_job.sh as argument.
This script contains the requested resources in the "header". It also set
additional environment variables needed downstream. This script calls srun
(a
nested job using all allocated resources) which executes
shifter_pyrpob_mining.sh.
This is the final script which runs the program within the shifter image. The script also creates two directories used for storing results and figures. Those directories are then mounted inside the image.