Skip to content

Best Practices

Request resources that match your application, start with a small test, and use Job Accounting to refine CPU, GPU, memory, and runtime requests.

Compile and run with the same software modules, keep inputs on shared storage, and stay within your approved compute tier.

Match Resources to Your Workload

The gh200 partition supports multiple jobs on the same node, with separate allocations of CPU cores and host memory. For a job that needs one GPU, request one GPU and only the CPU cores and memory your application needs. Avoid --exclusive unless the workload requires the whole node or isolation from other jobs.

Always specify host memory for a partial-node request. Avoid --mem=0, which requests all configured host memory and prevents another memory-consuming job from using the remaining resources.

Example 1: A Proportional Half-Node Request

One GPU, 72 CPU cores, and 480,000 MiB (468.75 GiB) of host memory form a proportional half-node request. These are example values, not minimum requirements for using one GPU. Use less CPU or memory if your application needs less. Omitting --exclusive leaves the remaining resources available for other jobs, subject to scheduling and GPU configuration.

# Resource directives to use in your batch script:
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=72
#SBATCH --gres=gpu:1
#SBATCH --mem=480000M

Slurm is configured with 960,000 MiB (937.5 GiB) of host memory per node. One hour with the requested resources allocated represents 72 CPU core-hours and 1 GPU-hour. These are resource totals; the project charge depends on the offering’s accounting rules.

Example 2: Both GPUs and the Entire GH200 Node

For an application needing the full node:

# Resource directives to use in your batch script:
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=144
#SBATCH --gres=gpu:2
#SBATCH --exclusive
#SBATCH --mem=0

--exclusive reserves the node; --mem=0 requests all configured host memory. This single-process example requires an application that can use both GPUs and up to 144 CPU threads. For an MPI application, use the appropriate task layout from the job templates. One hour occupies 144 CPU core-hours and 2 GPU-hours of capacity.

Use these directives with a complete job template. Request both GPUs without exclusive access if you need less CPU or host memory.

Common Mistakes

Request Problem
--mem=0 for a small job Reserves all host memory and may prevent sharing
Too little CPU or host memory for a GPU Can stall data loading or cause failure
--exclusive by default Reserves capacity a small job may not use
More resources than the application supports Does not make a serial application parallel

Measure usage and adjust requests with a reasonable margin. --mem requests host memory, not GPU memory. Check the dashboard for your allocation balance.

Use fair sharing responsibly by avoiding unnecessary reservations. See Slurm batch options for allocation semantics.