Search

link to homepage

Institute for Advanced Simulation (IAS)

Navigation and service


GPU Computing

JURECA GPU Nodes

JURECA features a number of accelerated (GPU-equipped) compute nodes for applications that can take advantage of such devices via CUDA, OpenCL or OpenACC.

The GPU compute nodes feature two NVIDIA Tesla K80 GPUs with a dual-GPU design. Each Tesla K80 is visible as two separate GPUs on the host for a total of four available GPU devices per compute node.

The GPU accelerated nodes are bundled in the gpus and develgpus partitions. In order to access thes partition the argument -p gpus (or --partition gpus) or -p develgpus (or --partition develgpus), respectively, must be provided to sbatch or salloc. In addition, as explained in the Quick Introduction, the number of requested GPUs must be specified using the --gres=gpu:X argument with X in the range one to four.

Job Script Examples

Example 1: MPI application starting 96 tasks on 4 nodes using 24 CPUs per node and 4 GPUs per node. The program must be able to coordinate the access to the four GPU devices on each of the four nodes.

#!/bin/bash -x
#SBATCH --nodes=4
#SBATCH --ntasks=96
#SBATCH --ntasks-per-node=24
#SBATCH --output=gpu-out.%j
#SBATCH --error=gpu-err.%j
#SBATCH --time=00:15:00
#SBATCH --partition=gpus

#SBATCH --gres=gpu:4

srun ./gpu-prog

Example 2: Four independent instances (job steps) of a GPU program running on one node using one CPU thread and one GPU device each. The program is pinned to CPU core 0, 6, 12 and 18, respectively.

#!/bin/bash -x
#SBATCH --nodes=1
#SBATCH --output=gpu-out.%j
#SBATCH --error=gpu-err.%j
#SBATCH --time=00:20:00
#SBATCH --partition=gpus
#SBATCH --gres=gpu:4

srun --exclusive -n 1 --gres=gpu:1 \

--cpu_bind=map_cpu:0 ./gpu-prog &

srun --exclusive -n 1 --gres=gpu:1 \

--cpu_bind=map_cpu:6 ./gpu-prog &

srun --exclusive -n 1 --gres=gpu:1 \

--cpu_bind=map_cpu:12 ./gpu-prog &

srun --exclusive -n 1 --gres=gpu:1 \

--cpu_bind=map_cpu:18 ./gpu-prog &

wait


Servicemeu

Homepage