Skip to content

Latest commit

 

History

History
30 lines (26 loc) · 1.81 KB

README_summit.md

File metadata and controls

30 lines (26 loc) · 1.81 KB

Building and running HiOp on summit is quite simple since the dependencies of HiOp can be satisfied quickly using the module utility.

module load gcc/8.1.1 cmake/3.17.3 netlib-lapack/3.8.0 cuda/10.1.105 magma/2.5.1

Different versions of the above modules may conflict with each other; in this case, one needs to inquire additional compatibility information using module spider package_name.

Next HiOp with GPU support can be cmake'd, built, and tested using

cd build/
CC=/sw/summit/gcc/8.1.1/bin/gcc CXX=/sw/summit/gcc/8.1.1/bin/g++ cmake -DHIOP_USE_GPU=ON ..
make -j
make test
make install

In some cases, cmake picks up a different gcc compiler than the one loaded via module. This situation can be remedied by preloading the CC and CXX for cmake as it is done above.

Depending on the LAPACK/BLAS CPU library loaded by the module command, runtime crashes can occur (intermintently for different problems/linear systems sizes) if the nvblas.conf cannot be find or is not specifying the so-called NVBLAS CPU BLAS library required by CUDA. This can be remedied by specifying the location of the BLAS library in NVBLAS_CPU_BLAS_LIB in the nvblas.conf file; for example, this can be done by

NVBLAS_CPU_BLAS_LIB /autofs/nccs-svm1_sw/summit/.swci/1-compute/opt/spack/20180914/linux-rhel7-ppc64le/gcc-8.1.1/netlib-lapack-3.8.0-p74bsneivus4jck562lq7drw2s7i4ytd/lib64/libblas.so

For non-standard locations of nvblas.conf, one can specify the path to nvblas.conf via the environment variable NVBLAS_CONFIG_FILE; for example, this can be achieved by exporting the variable in your submission your_job_file.lsf file:

# ##LSF directives  here
#  other commands here
# example assumes a bash shell
export NVBLAS_CONFIG_FILE=/ccs/home/cpetra/work/projects/hiop/runs/nvblas.conf 

# jsrun command here