Skip to content

Commit 24147a2

Browse files
authored
Merge pull request #162 from ECP-WarpX/cori_gpu_docs
add instructions for compiling for Cori-GPU
2 parents 30e40e4 + 266f9c6 commit 24147a2

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

Docs/source/building/cori.rst

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,40 @@ In order to compile for the **Knight's Landing (KNL) architecture**:
5151
module swap PrgEnv-intel PrgEnv-gnu
5252
make -j 16 COMP=gnu
5353

54+
GPU Build
55+
---------
56+
57+
To compile on the experimental GPU nodes on Cori, you first need to purge
58+
your modules, most of which won't work on the GPU nodes.
59+
60+
::
61+
62+
module purge
63+
64+
Then, you need to load the following modules:
65+
66+
::
67+
68+
module load esslurm cuda pgi openmpi/3.1.0-ucx
69+
70+
Currently, you need to use OpenMPI; mvapich2 seems not to work.
71+
72+
Then, you need to use slurm to request access to a GPU node:
73+
74+
::
75+
76+
salloc -C gpu -N 1 -t 30 -c 10 --gres=gpu:1 --mem=30GB -A m1759
77+
78+
This reserves 10 logical cores (5 physical), 1 GPU, and 30 GB of RAM for your job.
79+
Note that you can't cross-compile for the GPU nodes - you have to log on to one
80+
and then build your software.
81+
82+
Finally, navigate to the base of the WarpX repository and compile in GPU mode:
83+
84+
::
85+
86+
make -j 16 COMP=pgi USE_GPU=TRUE
87+
5488

5589
Building WarpX with openPMD support
5690
-----------------------------------

0 commit comments

Comments
 (0)