Skip to content

UoB-HPC/minicombust_app

Repository files navigation

miniCOMBUST

Dependencies

  • Catch++ Unit Testing (Header-only)
  • PETSc:
    • Set PETSC_INSTALL_PATH to the locations of the PETSc folder containing the include and lib folders.
  • AmgX

MiniCombust Job Generation Script

Overview

This bash script, .gen_job.sh, generates and manages jobs for the MiniCombust miniapp. It supports SLURM job generation, container-based execution, and various configuration options for running the application.

Usage

./.gen_job.sh [--build] [--nodes <nnodes>] [--mpi_procs <mpi_procs_per_node>]  [--gpus <ngpus>] 
              [--container <path>] [--results_name <name>] [--job_template <file>] 
              [--walltime <time>] [--enroot] [--nsys] [--ncu] [--prof_ranks <ranks>] 
              [--interactive_run] [--interactive]

Key Features

  • Configurable node, GPU, and MPI process settings
  • Container support (Enroot)
  • Interactive and batch job modes
  • Profiling options (Nsight Systems and NVIDIA Compute Profiler)
  • Customizable job templates

Common Options

  • --cells <modifier>: Cells modifier, mesh will have a total of (2*x)yz cells. Where x=y=z=.
  • --particles <nparticles>: Number of particles to release each iteration.
  • --niters <niters>: Number of iterations to run the minicombust simulations for.
  • --build: build minicombust instead of running
  • --nodes <number>: Set number of nodes
  • --mpi_procs <number>: Set MPI processes per node
  • --gpus <number>: Set number of GPUs
  • --container <img/path>: Specify container img or path (sqshfs)
  • --results_name <name>: Set results directory name, this is appended to results/CURRENT_DATE
  • --job_template <file>: Specify job template file
  • --walltime <time>: Set job walltime
  • --enroot: Enable Enroot containerization, default is srun.
  • --nsys: Enable Nsight Systems profiling
  • --ncu: Enable NVIDIA Compute Profiler
  • --prof_ranks <ranks>: Set ranks to profile
  • --interactive: Run interactively within the container
  • --jump_into_container: Jump into container, don't run minicombust.
  • --no_container: Don't use containers. (Untested but implemented..)

Default options are set in defaults.sh

Examples

Build with enroot:

./gen_job.sh --interactive --enroot --build --results_name build_enroot/ --

Run with slurm interactively:

./gen_job.sh --results_name build_enroot/ --

Create batch slurm batch job:

./gen_job.sh --nodes 2 --mpi_procs 112 --gpus 8 --job_template job_templates/eos.job --results_name 2node_112proc_8gpu --

Output

Results are stored in results/CURRENT_DATE/RESULTS_NAME.

The script generates: A log file with configuration details A job file based on the specified template Both are saved in the designated results directory.

Job Submission

For non-interactive runs, the script automatically submits the generated job to SLURM using sbatch.

References