|
Article ID: 686
Last updated: 14 Sep, 2026
The Cabeus cluster comprises multiple NVIDIA GPU nodes, including:
Among them, the gh200 nodes are served by their own front ends (cghfe01 and cghfe02) and PBS server (pbs05a), while the other GPU nodes are served by the front ends cfe01, cfe02 and PBS server pbspl4. In this article, the term Cabeus A100 GPU nodes refers to the 128 nodes with Milan CPU and NVIDIA A100 GPUs. To help you prepare for running jobs on the Cabeus A100 GPU nodes, this short user guide includes information on the general configuration of the nodes, compiling your code, and running PBS jobs. Overview of Cabeus Nodes with AMD EPYC CPU and NVIDIA A100 GPUsThe Cabeus cluster includes two Cabeus front-end nodes (cfe01 and cfe02) for the GPU nodes with x86_64-based CPUs (mil_a100). Each of the CFEs includes one 16-core AMD EPYC 7313p processor and 256 GB memory. Note: The Cabeus compute nodes are not accessible from the PFEs. Each of the 128 A100 compute nodes, referred to as the mil_a100 nodes, contains:
These 128 compute nodes are partitioned into twelve physical racks. They are connected in a fat-tree topology to the Cabeus InfiniBand network (ib0 and ib1) via four-lane High Data Rate (4X HDR) devices and 4X HDR switches. These HDR devices and switches provide a maximum bandwidth of 200 Gbits/s (i.e., 25 GB/s) for internode communication. All existing HECC filesystems such as the home, VAST, and Lustre filesystems are mounted on both CFEs and on the Cabeus compute nodes. PBS jobs for running on Cabeus A100 nodes are managed by the PBS server pbspl4. Requesting GPU AllocationsAn SBU allocation specifically for the GPUs is required to use the GPU resources. For more information about requesting GPU allocations, see this article. The SBU rates for using one GPU node for one hour, for each type of node, are:
Depending on how you request the GPU resources, your job may be charged the full rate or a fraction of the SBU rate. See the next section for some examples. Accessing the CFEs and the mil_a100 nodesYou can access the Cabeus front ends (CFEs) either from your local desktop or from the PFEs. If you have set up SSH passthrough for the CFEs, then do:
If you are connected to a PFE, then do:
You can access the Cabeus Milan A100 compute nodes only through PBS jobs submitted from the CFEs or from pbspl4. To request Milan A100 (mil_a100) resources, specify one of the queue names shown below and the model type mil_a100. The following PBS attributes are required when requesting the A100 resources:
The PBS queues for the Milan A100 nodes are as follows:
Important: The np_gpu_wide queue will run jobs between 7:00 a.m. Thursdays and 7:00 a.m. Saturdays (Pacific Time). You can submit jobs to the np_gpu_wide queue at any time during the week, but the jobs will run only during this period. As shown in the examples below, adding @pbspl4 to the queue name is optional, whether you submit the job from a CFE or from pbspl4.
Note: The qsub commands are shown on two lines due to a KB formatting issue. They should be on one line. When not specified, the default value of ncpus, ngpus, and host mem for all GPU node types (including mil_a100) is 1, 1, and 32 GB, respectively. The minimum value of ncpus, ngpus, and host mem is 1, 1, and 256 MB, respectively. From the perspective of PBS, one physical node can be made up of multiple virtual nodes (vnodes). In the case of mil_a100, one physical node with 4 GPUs is partitioned as 4 vnodes, where each vnode includes 1 GPU, 16 physical cores, and 128 GB of memory. PBS allocates resources in the vnodes differently depending on the actual selection specified in -lselect=… and the choice of the PBS -lplace statement, which includes an arrangement attribute (free, pack, scatter, vscatter) and a sharing attribute (shared, excl, and exclhost). Read man qsub for the definition of each value of the arrangement and the sharing attribute. If you plan to use fewer than 4 GPUs per physical mil_a100 node, you can use the shared sharing attribute which allows other jobs to use the remaining GPUs in the node. It also allows your job to be charged for only the number of GPUs assigned to your job. For example, the following request will be charged for the use of only 1 GPU in a mil_a100 node:
If you do not want other jobs to share resources in the mil_a100 nodes assigned to your job, it is easier if you simply request the use of all 4 GPUs in each mil_a100 node. For example:
This request will result in being charged for all 4 GPUs in a mil_a100 node. Operating System and Software ModulesThe operating system on all A100 compute nodes is TOSS 4 (Red Hat Enterprise Linux-based Tri-Lab Operating System Stack Version 4). Batch jobs use :aoe=toss4 by default, so you do not need to add :aoe=toss4 in your PBS resource request. The default $MODULEPATH includes:
Programming and Compiling For Cabeus A100 NodesRead Programming for NVIDIA GPUs and the references listed there for information on the recommended programming models for developing applications suitable for running on the NVIDIA GPUs. Depending on the programming model and language chosen, use an appropriate compiler available in the NVIDIA HPC SDK to compile your application:
Run the command module avail nvhpc to find available versions of NVIDIA HPC SDK on the system. The examples shown in this article use nvhpc/23.7. However, you can choose a different version.
For building NVIDIA GPU applications with MPI for inter-GPU or inter-node communication, you can use either OpenMPI or HPE MPT: OpenMPI from nvhpcExample 1:
Note: The mpif90 line is shown on two lines due to KB formatting issues. It should be a single line. Example 2:
Note: The default OpenMPI version in nvhpc/23.7 is 3.1.5. HPE MPT libraryThis is recommended for building/running applications when using NAS GPU nodes supported by HPE. Example 1:
Example 2:
Instead of explicitly using nvfortran/nvc/nvc++ ... -lmpi in the command line, you can use the mpif90, mpicc, and mpicxx wrappers from HPE MPT. However, it is better to set the following variables before invoking mpif90, mpicc, and mpicxx to ensure nvfortran/nvc/nvc++ are used instead of gfortran/gcc/g++:
TIP for Advanced Developers: Instead of using MPI, you can develop applications using the NVIDIA Collective Communications Library (NCCL) for multi-GPU and multi-node communication. Read this NVIDIA page to learn more.
Running a CUDA ApplicationThe following environment variables may be useful during runtime:
Sample PBS Script
References
|