pasteur / GPU Jobs
● Online

GPU Hardware

GPU Model
H200
NVIDIA Hopper Architecture
Count
8
Total on pasteur node
Isolation
cgroups
Hard device-level isolation
Interconnect
NVLink 4.0
18 links × 26.562 GB/s per GPU

Default GPU Limit

By default, every user can request up to 1 GPU per job. This is enforced by the normal QOS. You must explicitly request a higher QOS to access more GPUs.

⚠
You must always explicitly request GPUs GPUs are never allocated automatically. If you don't include --gres=gpu:N in your job script, your job won't see any GPUs — even if they're idle.

Single GPU Job (default)

Available to all users under the default normal QOS:

#!/bin/bash
#SBATCH --job-name=train_model
#SBATCH --partition=standard
#SBATCH --time=24:00:00
#SBATCH --cpus-per-task=16
#SBATCH --mem=64G
#SBATCH --gres=gpu:1                  # Request 1 GPU (default QOS supports this)
#SBATCH --output=%x_%j.out

source /opt/miniforge3/etc/profile.d/conda.sh
conda activate /data/apps/$(id -gn)/$USER/my-env

# Verify GPU is visible
nvidia-smi

python train.py --device cudagpu_job.sh

Multi-GPU Jobs

To request more than 1 GPU, you need the corresponding QOS. Contact an admin to have it added to your account. Then use both --gres and --qos:

GPUs needed QOS flag Who has access
1 --qos=normal (default, can omit) Everyone
2 --qos=elevated On request
4 --qos=high On request
6 --qos=multigpu On request
8 (full node) --qos=multigpu_full Admin approval required

Example — 4-GPU PyTorch DDP job

#!/bin/bash
#SBATCH --job-name=ddp_train
#SBATCH --partition=standard
#SBATCH --time=48:00:00
#SBATCH --cpus-per-task=32
#SBATCH --mem=256G
#SBATCH --gres=gpu:4                  # Request 4 GPUs
#SBATCH --qos=high                    # QOS must permit N GPUs
#SBATCH --output=%x_%j.out

source /opt/miniforge3/etc/profile.d/conda.sh
conda activate /data/apps/$(id -gn)/$USER/torch-env

# PyTorch DDP launch
torchrun \
    --standalone \
    --nproc_per_node=4 \
    train_ddp.py \
        --batch-size=512 \
        --epochs=100ddp_job.sh

Example — 6-GPU job with multigpu QOS

#!/bin/bash
#SBATCH --gres=gpu:6
#SBATCH --qos=multigpu
# ... other SBATCH options ...

torchrun --nproc_per_node=6 train.pymultigpu_job.sh

GPU Isolation

Slurm uses cgroups to enforce device-level GPU isolation. When your job is allocated GPU 2, only GPU 2 appears in nvidia-smi inside your job — you cannot accidentally use another user's GPU.

# Inside a job with --gres=gpu:1, only your GPU is visible
$ nvidia-smi
+-------------------------------------------------------------------------------+
| NVIDIA-SMI ...    Driver Version: ...    CUDA Version: ...                    |
|------------------------------|----------------------|------------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC  |
|   0  NVIDIA H200         Off  | 00000000:XX:00.0 Off |                 0     |
+------------------------------+----------------------+------------------------+
# Only 1 GPU shown, even though the node has 8 — cgroup isolation works.

# CUDA_VISIBLE_DEVICES is also set automatically
$ echo $CUDA_VISIBLE_DEVICES
2   # (whichever physical GPU was allocated)pasteur

Monitoring GPU Jobs

# Check GPU utilization while job is running
# (from pasteur-login, watching your job)
$ srun --jobid=101 --pty nvidia-smi dmon -s u

# After job completes, see GPU memory used
$ sacct -j 101 --format=JobID,MaxRSS,ReqGRES,AllocGRESpasteur-login

Framework Tips

PyTorch

import torch

# Verify GPU is available
print(torch.cuda.is_available())        # True
print(torch.cuda.device_count())        # = number of GPUs allocated
print(torch.cuda.get_device_name(0))    # NVIDIA H200

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = MyModel().to(device)python

TensorFlow

import tensorflow as tf

# List available GPUs
gpus = tf.config.list_physical_devices("GPU")
print(f"GPUs available: {len(gpus)}")  # = your allocated count

# Enable memory growth (recommended)
for gpu in gpus:
    tf.config.experimental.set_memory_growth(gpu, True)python

Requesting Elevated QOS

ℹ
How to request multi-GPU access Email or message the lab admins with: (1) the QOS level you need, (2) the scientific justification for needing multiple GPUs, and (3) an estimate of how long you'll need the elevated access. Admins can add QOS to your account while the cluster is running — no downtime required.