OLCF-Summit¶
Summit is a GPU-accelerated supercomputer located at Oak Ridge National Laboratory, maintained by OLCF.
$ ssh <username>@summit.olcf.ornl.gov
Building WEST¶
WEST executables can be compiled using the following script (tested on August 9, 2022):
$ cat build_west.sh
#!/bin/bash
module load nvhpc/21.9
module load cuda/11.0.3
module load spectrum-mpi/10.4.0.3-20210112
module load essl/6.3.0
module load netlib-lapack/3.9.1
module load python/3.8-anaconda3
module load git/2.36.1
module unload darshan-runtime
export BLAS_LIBS="$OLCF_ESSL_ROOT/lib64/libessl.so"
export LAPACK_LIBS="$OLCF_ESSL_ROOT/lib64/libessl.so $OLCF_NETLIB_LAPACK_ROOT/lib64/liblapack.a"
./configure --with-cuda=$OLCF_CUDA_ROOT --with-cuda-runtime=11.0 --with-cuda-cc=70 --with-cuda-mpi=yes
make -j 8 pw
cd West
make conf PYT=python3 PYT_LDFLAGS="`python3-config --ldflags --embed`"
sed -i 's/-L.*/-L\/autofs\/nccs-svm1_sw\/summit\/python\/3.8\/anaconda3\/2020.07-rhel8\/lib -lpython3.8/' west_make.inc
make -j 8 all
To use the script do:
$ bash build_west.sh
Running WEST Jobs¶
Summit uses the jsrun job manager. The following is an example executable script run_west.sh to run the wstat.x WEST executable on two nodes of Summit with 6 MPI ranks and 6 GPUs per node. The <project_name> must be replaced with an active project allocation.
Important: It is recommended to run the calculation from the IBM Spectrum Scale file system ($MEMBERWORK instead of /home).
$ cat run_west.sh
#!/bin/bash
#BSUB -P <project_name>
#BSUB -W 0:20
#BSUB -nnodes 2
#BSUB -J jobname
#BSUB -o jobname.%J
#BSUB -N
#BSUB -q debug
module load nvhpc/21.9
module load cuda/11.0.3
module load spectrum-mpi/10.4.0.3-20210112
module load essl/6.3.0
module load netlib-lapack/3.9.1
module load python/3.8-anaconda3
module unload darshan-runtime
export OMP_NUM_THREADS=1
# The following env vars improve MPI I/O performance
export PAMI_ENABLE_STRIPING=1
export PAMI_IBV_ADAPTER_AFFINITY=1
export PAMI_IBV_DEVICE_NAME="mlx5_0:1,mlx5_3:1"
export PAMI_IBV_DEVICE_NAME_1="mlx5_3:1,mlx5_0:1"
export OMPI_MCA_io=romio321
export ROMIO_HINTS=/path/to/romio_hints
jsrun -n 4 -a 3 -c 3 -g 3 -r 2 --smpiargs="-gpu" ./wstat.x -i wstat.in &> wstat.out
The value of -n should be two times the number of nodes. When running QE and WEST, usually there is no need to change -a, -c, -g, and -r.
romio_hints is a text file with the following content:
romio_cb_write enable
romio_ds_write enable
cb_buffer_size 16777216
cb_nodes 2
Job submission is done with the following:
$ bsub run_west.sh
See also
For more information, visit the OLCF user guide.