|
| 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