diff --git a/README.md b/README.md index 1eceb4ac12f379078d1127d6c2a68cab1ff96a6c..ee0cce9e4d66cae11ad412d5971a6941922ff562 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,8 @@ University of California, San Diego ## Version -1.9.8 +1.9.9 ## Last Updated -Sunday, October 3rd, 2021 +Friday, October 22nd, 2021 diff --git a/definition-files/ubuntu/Singularity.ubuntu-18.04-cuda-11.2-mlnx-ofed-4.7-3.2.9.0-openmpi-3.1.6 b/definition-files/ubuntu/Singularity.ubuntu-18.04-cuda-11.2-mlnx-ofed-4.7-3.2.9.0-openmpi-3.1.6 new file mode 100644 index 0000000000000000000000000000000000000000..54c5778faf6f59e2cf55f541ba6fca6b89fcd23f --- /dev/null +++ b/definition-files/ubuntu/Singularity.ubuntu-18.04-cuda-11.2-mlnx-ofed-4.7-3.2.9.0-openmpi-3.1.6 @@ -0,0 +1,140 @@ +Bootstrap: oras +From: ghcr.io/mkandes/naked-singularity:ubuntu-18.04-cuda-11.2-mlnx-ofed-4.7-3.2.9.0 + +%labels + + APPLICATION_NAME ubuntu + cuda + mlnx-ofed + openmpi + APPLICATION_VERSION 18.04 + 11.2 + 4.7-3.2.9.0 + 3.1.6 + APPLICATION_URL https://www.open-mpi.org + + AUTHOR_NAME Marty Kandes + AUTHOR_EMAIL mkandes@sdsc.edu + + LAST_UPDATED 20211022 + +%setup + +%environment + + # Set OpenMPI major, minor, and revision numbers, root and + # installation directories + export OMPI_MAJOR='3' + export OMPI_MINOR='1' + export OMPI_REVISION='6' + export OMPI_VERSION="${OMPI_MAJOR}.${OMPI_MINOR}.${OMPI_REVISION}" + export OMPI_ROOT_DIR='/opt/openmpi' + export OMPI_INSTALL_DIR="${OMPI_ROOT_DIR}/${OMPI_VERSION}" + + # Set paths to OpenMPI binaries and libraries + export PATH="${OMPI_INSTALL_DIR}/bin:${PATH}" + export LD_LIBRARY_PATH="${OMPI_INSTALL_DIR}/lib:${LD_LIBRARY_PATH}" + +%post -c /bin/bash + + # Set operating system mirror URL + export MIRRORURL='http://us.archive.ubuntu.com/ubuntu' + + # Set operating system version + export OSVERSION='bionic' + + # Set system locale + export LC_ALL='C' + + # Set debian frontend interface + export DEBIAN_FRONTEND='noninteractive' + + # Set NVIDIA driver and CUDA versions + export CUDA_DRIVER_MAJOR='460' + export CUDA_DRIVER_MINOR='32' + export CUDA_DRIVER_REVISION='03' + export CUDA_DRIVER_VERSION="${CUDA_DRIVER_MAJOR}.${CUDA_DRIVER_MINOR}.${CUDA_DRIVER_REVISION}" + + export CUDA_MAJOR='11' + export CUDA_MINOR='2' + export CUDA_REVISION='2' + export CUDA_VERSION="${CUDA_MAJOR}.${CUDA_MINOR}.${CUDA_REVISION}" + + export CUDNN_MAJOR='8' + export CUDNN_MINOR='1' + export CUDNN_REVISION='1.33' + export CUDNN_VERSION="${CUDNN_MAJOR}.${CUDNN_MINOR}.${CUDNN_REVISION}" + + export NCCL_MAJOR='2' + export NCCL_MINOR='8' + export NCCL_REVISION='4' + export NCCL_VERSION="${NCCL_MAJOR}.${NCCL_MINOR}.${NCCL_REVISION}" + + export TENSORRT_MAJOR='8' + export TENSORRT_MINOR='0' + export TENSORRT_REVISION='3' + export TENSORRT_VERSION="${TENSORRT_MAJOR}.${TENSORRT_MINOR}.${TENSORRT_REVISION}" + + # Set paths to CUDA binaries and libraries + export CUDA_HOME="/usr/local/cuda-${CUDA_MAJOR}.${CUDA_MINOR}" + + export CUDNN_INCLUDE='/usr/include' + export CUDNN_LIB='/usr/lib/x86_64-linux-gnu' + + export NCCL_INCLUDE='/usr/include' + export NCCL_LIB='/usr/lib/x86_64-linux-gnu' + + export TENSORRT_INCLUDE='/usr/include' + export TENSORRT_LIB='/usr/lib/x86_64-linux-gnu' + + export PATH="${CUDA_HOME}/bin${PATH:+:${PATH}}" + export LD_LIBRARY_PATH="${CUDA_HOME}/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" + export LD_LIBRARY_PATH="${CUDNN_LIB}:${LD_LIBRARY_PATH}" + export LD_LIBRARY_PATH="${NCCL_LIB}:${LD_LIBRARY_PATH}" + export LD_LIBRARY_PATH="${TENSORRT_LIB}:${LD_LIBRARY_PATH}" + + # DO NOT Upgrade all software packages to their latest versions + # apt-get -y update && apt-get -y upgrade + + # Install OpenMPI dependencies + apt-get -y install zlib1g-dev + + # Set OpenMPI major, minor, and revision numbers, root and + # installation directories + export OMPI_ROOT_URL='https://download.open-mpi.org/release/open-mpi' + export OMPI_MAJOR='3' + export OMPI_MINOR='1' + export OMPI_REVISION='6' + export OMPI_VERSION="${OMPI_MAJOR}.${OMPI_MINOR}.${OMPI_REVISION}" + export OMPI_ROOT_DIR='/opt/openmpi' + export OMPI_INSTALL_DIR="${OMPI_ROOT_DIR}/${OMPI_VERSION}" + + cd /tmp + + # Download, build, and install OpenMPI + wget "${OMPI_ROOT_URL}/v${OMPI_MAJOR}.${OMPI_MINOR}/openmpi-${OMPI_VERSION}.tar.gz" + tar -xf "openmpi-${OMPI_VERSION}.tar.gz" + cd "openmpi-${OMPI_VERSION}" + ./configure --prefix="${OMPI_INSTALL_DIR}" --enable-shared \ + --disable-silent-rules --disable-builtin-atomics --enable-static \ + --without-hcoll --without-psm --without-knem --without-psm2 \ + --with-verbs=/usr --without-ofi --without-mxm --without-fca \ + --without-xpmem --without-ucx --without-cma --without-slurm \ + --without-tm --without-loadleveler --without-alps --without-lsf \ + --without-sge --disable-memchecker --disable-java \ + --disable-mpi-java --with-cuda --enable-mpi-cxx \ + --enable-cxx-exceptions + make all install + + cd /tmp + + # Remove OpenMPI build directory and source tarball + rm -rf "openmpi-${OMPI_VERSION}" + rm "openmpi-${OMPI_VERSION}.tar.gz" + + # Cleanup + apt-get -y autoremove --purge + apt-get -y clean + + # Update database for mlocate + updatedb + +%files + +%runscript + +%test