GPUs on Maple

The Maple cluster has 29 nodes with a single NVIDIA Tesla K20m GPU (2GB memory) for general-purpose computation. There are also two nodes with two NVIDIA Tesla P100 GPUs (12GB memory) each. They can be used to substantially speed up certain types of programs.

CUDA

To load the CUDA Development Toolkit, run:
module load cuda10.1/toolkit
This module will also need to be loaded inside PBS scripts for CUDA programs to run properly.

OpenCL

To compile OpenCL code, load the CUDA toolkit as described above, the use the -lOpenCL option when compiling.

Running GPU Jobs

To use a GPU on Maple, it must be requested, just like CPUs and memory. PBS has an ngpus resource for reserving GPUs. For instance, to reserve a single GPU, include
#PBS -l ngpus=1
in your PBS script or on the command line when you start an interactive session of PBS (qsub -I).

Users must also submit their jobs to either the gpuor biggpu queue to get a node with a GPU. To use the newer, large memory GPUs, use the biggpu queue. There are four total, two GPUs each on two nodes. Submitting to the default queue with ngpus=1 will result in the job sitting in the queue indefinitely.

The nodes with the larger GPUs are a valuable resource. Do not use these if the smaller GPUs will suffice.