This repository provides standardized, reproducible, and well-documented SLURM job templates for a variety of scientific software packages. It is designed for HPC users who need reliable job scripts, helper tools, and examples for running simulations, analyses, and computational workflows.
This repository centralizes SLURM job scripts and support files used for scientific computing workloads. Each software package has its own directory containing:
- SLURM job templates
- Wrapper scripts
- Example input files
- Documentation specific to that software
The goal is to ensure reproducibility, portability across HPC systems, and simplify onboarding for new users.
README.md
LICENSE
CONTRIBUTING.md
CI/
checks.sh
lint.yml
templates/
common_header.sh
slurm_header.sbatch
softwares/
fplo/
README.md
run_qe.sh
jobs/
fplo_short.sbatch
fplo_long.sbatch
inputs/
example.in
outputs/
gromacs/
README.md
jobs/
gmx_md.sbatch
container/
examples/
benchmark_matrix.csv
submit_all.sh
- Job scripts:
software_task_resources.sbatch- Example:
qe_relax_4h_1node.sbatch
- Example:
- Wrapper scripts:
run_software.sh - All templates include version tags in comments.
cd softwares/fplo/jobs
sbatch fplo_short.sbatch
squeue -u $USER
sacct -j <JOBID>
Each .sbatch file should include the following structure:
#!/bin/bash
#SBATCH --job-name=<JOB_NAME>
#SBATCH --account=<ACCOUNT>
#SBATCH --partition=<PARTITION>
#SBATCH --nodes=<NODES>
#SBATCH --ntasks-per-node=<NTASKS_PER_NODE>
#SBATCH --cpus-per-task=<CPUS_PER_TASK>
#SBATCH --time=<TIME>
#SBATCH --mem=<MEMORY>
##SBATCH --gres=gpu:<GPUS> Since we have single gpu on the system on each node. It doesnot require now.
#SBATCH --output=logs/%x-%j.out
#SBATCH --error=logs/%x-%j.err
ACCOUNT="project_x"
PARTITION="compute"
MODULE="fplo/22"
INPUT_FILE="inputs/example.in"
OUTPUT_DIR="$SLURM_SUBMIT_DIR/outputs"
module purge
module load $MODULE
mkdir -p $OUTPUT_DIR
srun pw.x -in $INPUT_FILE > $OUTPUT_DIR/pw.out
Each software directory includes:
- Typical HPC resource requirements
- Recommended MPI/OMP settings
- Pre/post-processing workflow
- Known issues and best practices
Example (Quantum ESPRESSO):
- CPU-only: Match tasks per node with physical CPU cores.
- Hybrid: Use MPI ranks × OpenMP threads.
- Suggested command:
srun pw.x -in input.in
Templates support:
- Environment Modules / Lmod
- Apptainer/Singularity
singularity exec qe.sif pw.x -in $INPUT_FILE > output.out
inputs/: Minimal example input filesoutputs/: Output generated after job completion- For large datasets, store externally and reference them
Included tests:
- Syntax validation for
.sbatchfiles - ShellCheck linting for wrapper scripts
- Placeholder checks (no unresolved )
To contribute:
- Add software under
softwares/<name>/ - Provide minimal + advanced templates
- Include documentation and version tags
- Follow formatting conventions
- Default license: MIT
- Cite software authors properly in each submodule
PENDING job:
- Account/partition mismatch
- Requested nodes unavailable
MPI errors:
- Use correct
srunormpirunbased on cluster policy
Slow I/O:
- Use
$SCRATCHrather than home directories - We have scratch directory, under maintenance, So you cannot use until further notice.
Maintain the list of maintainers here:
- Primary Maintainer: Aatiz Ghimire
- Email: hpc@tu.edu.np
This repository aims to become a standard reference for reproducible HPC job submissions across scientific disciplines.