|
Article ID: 702
Last updated: 13 Oct, 2026
Cabeus includes 538 GPU nodes based on the NVIDIA GH200 Grace Hopper Superchip. To help you prepare for running jobs on the Grace Hopper 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 NVIDIA Grace Hopper SuperchipThe nodes are accessed via two front ends:
The hostnames for the GH200 compute nodes are as follows:
The PBS resource model name is gh200. Each of the front ends and compute nodes contains a single GH200 superchip, which is shown in this diagram published by NVIDIA:
As shown in the diagram, the GH200 superchip includes:
For more information about the Grace Hopper superchip, see NVIDIA's GH200 architecture whitepaper. Requesting GPU AllocationsA Standard Billing Unit (SBU) allocation specifically for the GPUs is required to use all GPU resources, including the GH200 compute nodes. The SBU rate for the GH200 nodes is 18.34. Accessing the Cabeus Grace Hopper Front Ends and Compute NodesThe GH200 front end nodes (cghfe01 and cghfe02) are for building, testing your software dependencies, and running short tests of your executables. Note: Termination of long-running CPU and GPU processes may be enforced in the future. You can access the GH200 front ends from your local desktop using one of the following methods: One-Step Connection With SSH passthroughIf you normally connect to NAS front-ends using SSH passthrough, you can modify your existing .ssh/config file on your local host to add cghfe01 and cghfe02. If you have been using a configuration file based on the NAS config template, you can simply replace this line:
with the following line:
where *fe* matches any NAS front-end system. Then, run:
Two-Step Connection Without SSH PassthroughTo access the front ends without SSH passthrough, run:
The gh200 compute nodes are for running long testing or production jobs. They are accessible only through PBS jobs submitted from the cghfe01 or cghfe02 front ends. The PBS server for the GH200 nodes is pbs05a (users are not allowed to SSH into pbs05a). You can access your filesystems from the GH200 front-ends and compute nodes, including: $HOME, Lustre /nobackup, /nobackupnfs1, /nasa, /nasa2, and /vast_swbuild. Operating SystemsThe operating system on all GH200-based front ends and compute nodes is TOSS 5 with Red Hat Enterprise Linux 9.8. The Linux kernel is Release 5.x for the Arm architecture 64-bit execution state (aarch64).
Software ModulesFor AI/ML ApplicationsIf you run AI/ML applications: the miniconda3/gh2 module in the /swbuild/analytix/tools directory is the only one that will work with the GH200 nodes:
For more information, including the conda environments that can be used with the Grace Hopper nodes, see Using Conda Environments on NAS Systems. The procedure to access JupyterLab on the GH200 system is the same as those outlined in Secure Setup for Using Jupyter Notebook on NAS Systems and Using Jupyter Notebook for Machine Learning Development on NAS Systems, except on the local system the user needs to proxyjump through a Grace Hopper front end. For example:
For HPC ApplicationsYou can find HPC software modules for the Arm-based GH200 nodes in the /nasa/arm directory. The current default $MODULEPATH includes /nasa/arm/modulefiles/toss5, where you can find many of the modules mentioned in this article.
Note: The command line above is too long to be formatted as one line, so it is broken with a backslash (\). Some of the available software packages are mentioned in the Programming and Compiling for Grace Hopper Nodes and Running a GPU Application sections. Be aware that many nvhpc or nvhpc-xxx modules (packaged and pre-built by NVIDIA) contain multiple components (such as CUDA, compiler, math, MPI, .., and so on.). If you want to use only one of the components, you can try other modules, for example, those with module names such as cuda, hpcx, openmpi, and so on. WARNING: Software modules and executables built for the x86_64 platform (such as NAS PFEs, AFEs, and CFEs; bro_ele, sky_ele, cas_ait, rom_ait, mil_ait, and mil_a100 GPU nodes) cannot be used on the aarch64 platform (i.e., gh200 GPU nodes) because x86_64 and aarch64 architectures have different instruction sets. You must use modules under the /nasa/arm directory to recompile and run your applications for the Arm-based GH200 systems.
If your system startup script loads modules meant for use on x86_64 based systems (for example, the .bashrc, .profile, .cshrc, or .login scripts, which are accessible from all NAS x86_64 and Arm systems), you should unload those modules when you are on the GH200 front-ends and compute nodes. Programming and Compiling for Grace Hopper NodesIn addition to the information in this section, read 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. Some of the most commonly used software packages needed with these programming languages are CUDA toolkits, compilers, and math and MPI libraries. CUDA ToolkitYou can find the CUDA version and its associated driver installed on the GH200 front ends and compute nodes by running the nvidia-smi command. Currently, it is CUDA version 13.3 and driver is 610.57.04. Since the CUDA driver is backward compatible, an application compiled with an older CUDA Toolkit version can run with a newer driver release. For example, you can build your GPU application with CUDA Toolkit 12.6, and run it on a system with CUDA 13.3. See CUDA Toolkit and CUDA Driver for more information. The following CUDA Toolkits are available for use on the GH200 nodes:
CompilersThere are several compiler options for building your applications on the GH200 front ends. With any of these compilers, make sure your application builds, runs successfully, and validates correctly. NVIDIA Compilers: nvc, nvc++, nvfortran, nvccTo use an NVIDIA compiler, load one of the nvhpc modulefiles on either the cghfe01 or cghfe02 front end or on the GH200 compute nodes. Below are examples of a few possible choices:
The NVIDIA compilers include the HPC compilers and the CUDA C/C++ compiler:
For more information, see Compiling GPU Applications for Different Generations of NVIDIA GPUs at NAS. GNU Compiler Collection: gcc, g++, gfortran
For all of the above compilers, NVIDIA recommends:
For the GNU compiler and/or Arm compiler:
For the GNU compiler, you can use -fsanitize=address -fsanitize=undefined to help debugging memory issues that might appear on aarch64 systems (but are hidden on x86 systems due to differences on how compiler generate codes and layout data). Math LibrariesThere are two sets of math libraries. One targets the GPUs and the other targets the Grace CPUs.
MPI LibrariesThe GH200 nodes are not supported by HPE, and therefore HPE MPT library is not available on these nodes. There are many modules containing OpenMPI. If you are not sure which one to use, start with one of these OpenMPI modules. Read Using OpenMPI on NAS Systems to learn how to use OpenMPI. OpenMPI Version 4.1.7
OpenMPI Version 3.1.5
TIP: When using newer versions of OpenMPI with UCX, for example, from nvhpc/24.11 or hpcx/2.21, setting the UCX_PROTO_ENABLE=n and UCX_GVA_ENABLE=n environment variables may help to reduce run-to-run variations or degraded performance in MPI communication. Set them as follows:
For applications that perform UCX atomic operations on the Grace CPU, you may also need to add:
See NVIDIA HPCX Known Issues (3606445, 3884209, 4026461 and 4050321) for more information. Running a GPU ApplicationPBS jobs running on the GH200 nodes are served by a dedicated PBS server, pbs05a, running with PBS version 2024.1.4. A GH200 compute node (72 CPU cores; 1 GPU; all host and device memory) cannot be divided or shared between PBS jobs or between different chunks of a PBS job (for example, -lselect=N means N chunks). The GH200 node model name is gh200. In your PBS resource request, you must use :model=gh200. You do not need to use -lplace=scatter:excl. To run on the GH200 nodes, submit your PBS interactive or batch job from one of the two Grace Hopper front ends, cghfe01 or cghfe02. Use one of the following queues:
Note: The available queues will change from time to time. Use the command qstat -Q and qstat -fQ to find what queues have been created and enabled to be used by your group. See the following sample PBS script. Sample PBS Script for Running Jobs on Grace Hopper Nodes
After job submission, you should see a JOBID similar to xxx.pbs0a5.gh.nas.nasa.gov. Note: The versions of qstat on newer NAS systems (including Athena and Cabeus GH200 nodes) and older NAS systems (including Electra, Aitken, and Endeavour, and Cabeus V100 and A100 nodes) are different. To get the same look and feel of qstat on the newer systems as the older systems, it is recommended to use a NAS provided script called nas_qstat, available under /usr/local/bin on athfe[01-04] and cghfe[01-02]. In addition, the script showq under /u/hsp/bin can be used to visually see all jobs that are running or pending and their status, along with node availability at the bottom of the output. References |
