Bootstrap: localimage From: pnetcdf_openmpi-4.0.2_gcc-9_ubuntu-18.sif %post # Paths to the compiled netcdf, pnetcdf file BUILDDIR=/tmp PREFIX=/usr/local # env variables from specific compiler export CXX=/usr/bin/g++-9 export CC=/usr/bin/gcc-9 export FC=/usr/bin/gfortran-9 # env variables from openmpi for runtime export OMPI_DIR=/opt/ompi export SINGULARITY_OMPI_DIR=$OMPI_DIR export SINGULARITYENV_APPEND_PATH=$OMPI_DIR/bin export SINGULARITYENV_APPEND_LD_LIBRARY_PATH=$OMPI_DIR/lib # Set env variables for build export PATH=$OMPI_DIR/bin:$PATH export LD_LIBRARY_PATH=$OMPI_DIR/lib:$LD_LIBRARY_PATH export MANPATH=$OMPI_DIR/share/man:$MANPATH # export LANG=C.UTF-8 export LC_ALL=C.UTF-8 ## for apt to be noninteractive export DEBIAN_FRONTEND=noninteractive export DEBCONF_NONINTERACTIVE_SEEN=true export MPI4PY_VERSION=3.0.3 export HDF5_VERSION=1.10.6 export PNETCDF_VERSION=1.12.1 export NETCDF4_VERSION=4.7.3 export NETCDF4_PYTHON_VERSION=1.5.3 # Install Python packages python3 -m pip install --upgrade pip python3 -m pip install pytest python3 -m pip install NuMPI python3 -m pip install ase matscipy python3 -m pip install Cython # Bison, Flex and dh-autoreconf. Needed for PTscotch in apt-get -qq update apt-get -y -qq install flex bison dh-autoreconf # Download Petsc and Slepc export PETSC_DIRECTORY=/opt git clone -b release https://gitlab.com/petsc/petsc.git $PETSC_DIRECTORY/petsc # Install Petsc: cd $PETSC_DIRECTORY/petsc ./configure --with-64-bit-indices=0 --with-debugging=0 COPTFLAGS="-O3 -march=native -mtune=native" CXXOPTFLAGS="-O3 -march=native -mtune=native" FOPTFLAGS="-O3 -march=native -mtune=native" --download-fblaslapack=1 --download-mumps --download-scalapack --download-parmetis --download-metis --download-ptscotch --download-petsc4py=yes make all check export PETSC_DIR=$PETSC_DIRECTORY/petsc export PETSC_ARCH=arch-linux-c-opt export PYTHONPATH="/opt/petsc/arch-linux-c-opt/lib" # Install Slepc export SLEPC_DIRECTORY=/opt export SLEPC_DIR=$SLEPC_DIRECTORY/slepc git clone -b release https://gitlab.com/slepc/slepc $SLEPC_DIRECTORY/slepc cd $SLEPC_DIRECTORY/slepc ./configure --with-scalapack=1 --download-arpack --download-elpa --download-slepc4py make SLEPC_DIR=$SLEPC_DIRECTORY/slepc PETSC_DIR=$PETSC_DIRECTORY/petsc PETSC_ARCH=arch-linux-c-opt # make SLEPC_DIR=$SLEPC_DIRECTORY/slepc PETSC_DIR=$PETSC_DIRECTORY/petsc check export PYTHONPATH="/opt/slepc/arch-linux-c-opt/lib" %environment # Variables to be used at runtime export LANG=C.UTF-8 export LC_ALL=C.UTF-8 export OMPI_DIR=/opt/ompi export SINGULARITY_OMPI_DIR=$OMPI_DIR export SINGULARITYENV_APPEND_PATH=$OMPI_DIR/bin export SINGULARITYENV_APPEND_LD_LIBARY_PATH=$OMPI_DIR/lib export SINGULARITYENV_APPEND_LD_LIBARY_PATH=/usr/local/lib export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH export PETSC_DIR=/opt/petsc export PETSC_ARCH=arch-linux-c-opt export SLEPC_DIR=$SLEPC_DIRECTORY/slepc export PYTHONPATH="/opt/petsc/arch-linux-c-opt/lib" export PYTHONPATH="/opt/slepc/arch-linux-c-opt/lib" %runscript ‚