GPU Guide
NCShare comprises of 4 GPU nodes with 192 CPUs (96 physical cores, Intel Xeon Platinum 8568Y+) and 8 NVIDIA H200 GPUs w/141GB of VRAM, 2TB RAM each (32 GPUs in total). This page guides users on how to access and utilize the H200 GPUs using Slurm and Open OnDemand.
Requesting Access
GPU access on NCShare has two tiers. Both are requested through your institutional representative, and both require an NCShare account first.
| Tier | Partitions | Who can get it | How |
|---|---|---|---|
| General | gpu, interactive-gpu |
Any NCShare user | Ask your institutional representative |
| High-priority | gpu-hp |
Users at NSF GaaS partner institutions only | Submit a request (see below), case-by-case |
General access
Contact your institutional representative, and ask to be added to your institution's general-access GPU allocation which provides access to the gpu and interactive-gpu partitions. If you are from a NSF GaaS partner institutions, usage on these partitions will help you build the efficiency record required for gpu-hp access.
High-priority access (gpu-hp)
gpu-hp access is granted at the discretion of your institutional representative, who draws on a fixed monthly pool of GPU-hours for the whole institution. The requirement and priorities below describe how requests are evaluated, and the next subsection lists what to send so the representative can evaluate yours.
How requests are evaluated
Requirement:
- At least a week's worth of GPU usage on
gpuorinteractive-gpu(or an equivalent H200 partition elsewhere) with a time-weighted GPU efficiency of at least 70% and GPU memory efficiency of at least 30%. See Measuring GPU Efficiency.
Among eligible requests, priority goes to,
- multi-institutional research collaborations across North Carolina,
- users whose institutional GPU resources are insufficient for their research, and
- time-critical needs such as a grant or publication deadline.
What to include in your request
- A short description of the project.
- The
GPU-hoursneeded to complete it (number of GPUs \(\times\) total hours). If your institution tracks user-level quotas, this becomes your personal quota. - Evidence of efficient GPU usage, e.g., the output of
slurm-reportcovering your recent jobs ongpuorinteractive-gpu, including the weighted-average row (see Measuring GPU Efficiency). For usage on another cluster, include equivalent metrics. - If applicable, collaborating institutions and investigators.
- If applicable, why your institutional GPU resources are insufficient.
- If applicable, the deadline or emergency driving the request and the resources needed to meet it.
After access is granted
gpu-hpusage is monitored. Users who do not sustain efficient GPU usage will be removed from the partition.- If you run out of your personal GPU-hour quota (if tracked by institution) before the project is done, ask your representative for an extension or request a new allocation. See
gpu-hppartition for commands to track usage. - You keep access to
gpuandinteractive-gpuregardless of yourgpu-hpstatus.
Once access is granted, you can request GPUs through Slurm and Open OnDemand as described in the sections below.
GPU Partitions
There are three GPU partitions available on NCShare,
| Partition | Description |
|---|---|
| gpu | General access to H200 GPU nodes. Jobs are pre-empted (cancel and requeue) for higher priority jobs. |
| interactive-gpu | Short term GPU jobs with a max walltime of 1 hour. Higher priority than gpu. |
| gpu-hp | High priority access to H200 GPU nodes. Restricted to NSF GaaS partner institutions. Each institution is allocated a monthly pool of GPU-hours. |
gpu partition
- General access, scavenger-like partition
- Simultaneous GPU limit per user (MaxTRESPU) = 8
- Max Walltime = 2 days
- Pre-emption = cancel and requeue
- QoS = normal (default)
- Unlimited usage quota
Warning
Jobs on the gpu partition may be pre-empted (cancelled and requeued) to accommodate higher-priority jobs on the interactive-gpu or gpu-hp partition. Please ensure your workflows are checkpointed to avoid loss of progress.
interactive-gpu partition
- General access partition for short-term GPU jobs
- Simultaneous GPU limit per user (MaxTRESPU) = 8
- Simultaneous job limit per user (MaxSubmitJobsPU, MaxJobsPU) = 1
- Max Walltime = 1 hour
- Pre-emption = No
- QoS = N/A (the partition itself assigns jobs a partition-specific QoS)
- Unlimited usage quota
gpu-hp partition
- High-priority partition for NSF GaaS partner institutions
- Simultaneous GPU limit per user (MaxTRESPU) = 8
- Max Walltime = 7 days
- Pre-emption = No
- Monthly GPU usage quota per institution
The institutional quota is reset on the first day of each month at 00:00 ET.
The institution-specific QoS values are provided in the table below. Replace <institution-qos> with the QoS value corresponding to your institutional account.
| Account | QoS |
|---|---|
| duke | duke_h200_hp |
| unc | unc_h200_hp |
| ncsu | ncsu_h200_hp |
| ncat | ncat_h200_hp |
| uncc | charlotte_h200_hp |
| wssu | wssu_h200_hp |
| nccu | nccu_h200_hp |
| davidson | davidson_h200_hp |
| uncfsu | fsu_h200_hp |
E.g., if you are a user from Duke University, you would use the following flags to request 4 H200 GPUs on the gpu-hp partition,
To check your institution's monthly GPU usage quota, run the following command from a NCShare login node,
This will show you the monthly quota for your institution, the amount of GPU-hours used, and the remaining GPU-hours.
E.g.,
$ get_gpu_quota_account.sh
Institutional Usage (GPU-hours)
QoS | Quota | Used | Remaining | Used %
---------------------+----------------------+----------------------+----------------------+---------------------
duke_h200_hp | 3600.00 | 1323.75 | 2276.25 | 36.77%
If your institution enforces user-level GPU-hour quotas, you may check your personal quota usage by running the following command from a NCShare login node,
E.g.,
$ get_gpu_quota_user.sh
gpu-hp Grant Usage (GPU-hours)
User | Account | Start | Quota | Used | Remaining | Used % | Access
----------------------------------------------------------------------------------------------------------------------------
uherathmudiyanselage1 | duke | 2026-10-19T22:52:24 | 0.3 | 0.12 | 0.18 | 40.00% | active
Once your personal quota is exhausted, your access to the gpu-hp partition will be suspended until you request a new quota allocation or an extension from your institutional representative.
Info
If your institution's monthly quota runs out before your personal quota does, you will have to wait until the institutional quota resets on the first of the following month to use gpu-hp again. Until then, you may continue to use the gpu and interactive-gpu partitions.
Using H200 GPUs on Open OnDemand
NCShare users can access H200 GPUs through Open OnDemand containers such as Jupyter Lab. A few of these Apptainer containers have been built with GPU support.
Once logged into Open OnDemand, you can select your desired container (e.g., Jupyter Lab, RStudio etc.).

If you select Jupyter Lab, you will be taken to the Jupyter Lab Apptainer page where you should select gpu, interactive-gpu or gpu-hp under Partition and specify the number of GPUs you wish to use under GPUs. If using the gpu-hp partition, select QoS to be <institution-qos> from the drop down menu. Otherwise, leave it as normal. Then click Launch. A similar process can be followed for RStudio.

To verify if the notebook has connected to a GPU, you can run the following code that imports and runs a few PyTorch functions in a notebook cell:
import torch
print("torch:", torch.__version__)
print("torch.version.cuda:", torch.version.cuda)
print("torch.cuda.device_count():", torch.cuda.device_count())
print("torch.cuda.is_available():", torch.cuda.is_available())
If the cell execution shows an output similar to the following, Congratulations!, you have successfully connected to an H200 GPU!
torch: 2.8.0+cu128
torch.version.cuda: 12.8
torch.cuda.device_count(): 1
torch.cuda.is_available(): True
Using H200 GPUs with slurm
First, ensure that you are able to ssh into a NCShare login node from a terminal following the instructions given in the Register an ssh key guide.
Once you have access to a login node, you will use the following slurm flags to request H200 GPUs for your job.
#SBATCH -p interactive-gpu
#SBATCH --gres=gpu:h200:1 #Up to 8
#SBATCH -p gpu-hp
#SBATCH --qos=<institution-qos>
#SBATCH --gres=gpu:h200:1 #Up to 8
where, <institution-qos> is the QoS value corresponding to your institutional account (see the table in gpu-hp partition).
Info
If you are using an Apptainer container to run your slurm job, you will need to include the --nv flag to mount the Nvidia CUDA libraries from the host environment into the container to enable GPU support.
shell
apptainer exec --nv my_container.sif my_gpu_script.sh
Interactive GPU Session
To obtain an interactive GPU session, you can use a command like the following from a login node,
srun -p gpu --gres=gpu:h200:1 -t 1:00:00 --pty bash -i
# OR
srun -p interactive-gpu --gres=gpu:h200:1 -t 1:00:00 --pty bash -i
This requests 1 H200 GPU for 1 hour on the gpu or interactive-gpu partition. Similarly, to run an interactive session on the gpu-hp partition, you can use the following command,
To obtain information about your allocated GPU, you can run the nvidia-smi command once inside the interactive session.
(base) uherathmudiyanselage1 at compute-gpu-02 in /work/uherathmudiyanselage1
$ nvidia-smi
Mon Nov 3 07:48:27 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.172.08 Driver Version: 570.172.08 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA H200 On | 00000000:4B:00.0 Off | 0 |
| N/A 31C P0 74W / 700W | 0MiB / 143771MiB | 0% Default |
| | | Disabled |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
You can run your GPU tasks inside this interactive session. Once done, you can exit the session by typing exit or pressing Ctrl+D.
Slurm Batch Job Submission
For computationally intensive tasks, it is recommended to submit a batch job using a slurm job script. Below is an example slurm job script that requests 1 H200 GPU for 1 hour.
#!/bin/bash
#SBATCH -J name_of_job
#SBATCH -p gpu #or gpu-hp for high-priority partition
#SBATCH --gres=gpu:h200:1
#SBATCH -t 1:00:00
##SBATCH --qos=<institution-qos> #Uncomment for gpu-hp partition
# Initialization
source ~/.bashrc
cd $SLURM_SUBMIT_DIR
cat << EOF > compute-gpu-01.py
#!/usr/bin/env python
import torch
print("torch:", torch.__version__)
print("torch.version.cuda:", torch.version.cuda)
print("torch.cuda.device_count():", torch.cuda.device_count())
print("torch.cuda.is_available():", torch.cuda.is_available())
EOF
chmod +x compute-gpu-01.py
./compute-gpu-01.py > compute-gpu-01.log
For advanced users who are running computationally intensive jobs, the following additional optional flags might be useful,
#SBATCH -N 1 # Total no. of nodes
#SBATCH --ntasks-per-node 12 # Tasks per node
#SBATCH -c 2 # CPUs per task
#SBATCH --mem=240G # Memory per node
Remember that the higher the number of resources requested (e.g., number of nodes, GPUs etc.), the longer the job may wait in the queue before starting.
To submit the job script, use the following command from a login node:
You can monitor the status of your job using the squeue command:
Measuring efficiency
As the H200 GPUs are a limited shared resource, we encourage users to be mindful of their GPU usage and to use the resources efficiently. We will be sharing weekly usage reports with the goal of helping users better understand their GPU usage patterns and to support more efficient and effective use of the partition.
See Measuring Efficiency to learn about the tools available for measuring the CPU, memory, and GPU efficiency of your jobs, and for guidance on right-sizing your resource requests.