Skip to content

Commit 41049e9

Browse files
committed
Add CentOS 7 NVIDIA HPC SDK container
1 parent 385fb98 commit 41049e9

1 file changed

Lines changed: 91 additions & 0 deletions

File tree

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# CentOS 7 container based on NVIDIA HPC SDK container
2+
# By using this container image, you agree to the NVIDIA HPC SDK End-User License Agreement (https://docs.nvidia.com/hpc-sdk/eula)
3+
BootStrap: docker
4+
From: nvcr.io/nvidia/nvhpc:20.7-devel-centos7
5+
6+
%post
7+
yum -y install epel-release
8+
yum -y update
9+
yum -y install vim-enhanced \
10+
ccache gcc-c++ gcc-gfortran clang gdb valgrind-openmpi \
11+
make cmake cmake3 ninja-build patch which file git Lmod \
12+
libpng-devel libjpeg-devel openmpi-devel mpich-devel python-devel python36-devel \
13+
hdf5-devel python36-virtualenv python36-pip python-pip \
14+
netcdf-devel netcdf-cxx-devel netcdf-mpich-devel netcdf-openmpi-devel \
15+
python-virtualenv fftw-devel voro++-devel eigen3-devel gsl-devel openblas-devel enchant \
16+
blas-devel lapack-devel libyaml-devel openkim-models kim-api-devel zstd libzstd-devel
17+
yum clean all
18+
19+
# we need to reset any module variables
20+
# inherited from the host.
21+
unset __LMOD_REF_COUNT__LMFILES_
22+
unset __LMOD_REF_COUNT_PATH
23+
unset __LMOD_REF_COUNT_LD_LIBRARY_PATH
24+
unset __LMOD_REF_COUNT_MANPATH
25+
unset __LMOD_REF_COUNT_MODULEPATH
26+
unset __LMOD_REF_COUNT_LOADEDMODULES
27+
unset _LMFILES_
28+
unset MODULEPATH
29+
unset MODULESHOME
30+
unset MODULEPATH_ROOT
31+
unset LOADEDMODULES
32+
unset LMOD_SYSTEM_DEFAULT_MODULES
33+
34+
# load MPI by default
35+
. /etc/profile
36+
module load mpi
37+
38+
# manually install Plumed
39+
mkdir plumed
40+
cd plumed
41+
version=2.6.1
42+
curl -L -o plumed.tar.gz https://github.com/plumed/plumed2/releases/download/v${version}/plumed-src-${version}.tgz
43+
tar -xzf plumed.tar.gz
44+
cd plumed-${version}
45+
./configure --disable-doc --prefix=/usr
46+
make -j 8
47+
make install
48+
# fix up installation for CentOS and Fedora
49+
mv -v /usr/lib/pkgconfig/plumed* /usr/share/pkgconfig/
50+
cd ../../
51+
rm -rvf plumed
52+
53+
# set custom prompt indicating the container name
54+
CUSTOM_PROMPT_ENV=/.singularity.d/env/99-zz_custom_prompt.sh
55+
cat >$CUSTOM_PROMPT_ENV <<EOF
56+
#!/bin/bash
57+
PS1="[centos7:\u@\h] \W> "
58+
EOF
59+
chmod 755 $CUSTOM_PROMPT_ENV
60+
61+
62+
%environment
63+
LC_ALL=C
64+
export LC_ALL
65+
66+
# we need to reset any module variables
67+
# inherited from the host.
68+
unset __LMOD_REF_COUNT__LMFILES_
69+
unset __LMOD_REF_COUNT_PATH
70+
unset __LMOD_REF_COUNT_LD_LIBRARY_PATH
71+
unset __LMOD_REF_COUNT_MANPATH
72+
unset __LMOD_REF_COUNT_MODULEPATH
73+
unset __LMOD_REF_COUNT_LOADEDMODULES
74+
unset _LMFILES_
75+
unset MODULEPATH
76+
unset MODULESHOME
77+
unset MODULEPATH_ROOT
78+
unset LOADEDMODULES
79+
unset LMOD_SYSTEM_DEFAULT_MODULES
80+
81+
# load MPI by default
82+
. /etc/profile
83+
module load mpi
84+
# tell OpenMPI to not try using Infiniband
85+
OMPI_MCA_btl="^openib"
86+
# do not warn about unused components as this messes up testing
87+
OMPI_MCA_btl_base_warn_component_unused="0"
88+
export OMPI_MCA_btl OMPI_MCA_btl_base_warn_component_unused
89+
90+
%labels
91+
Author akohlmey, rbberger

0 commit comments

Comments
 (0)