Skip to content
Snippets Groups Projects
Select Git revision
  • 0cac38a918db1796f60a626197eb20608a9b6a36
  • master default protected
2 results

README

Blame
  • Singularity.ubuntu-18.04-cuda-11.2-mlnx-ofed-4.7-3.2.9.0-openmpi-4.0.5 3.22 KiB
    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 + 4.0.5
        APPLICATION_URL https://www.open-mpi.org
    
        AUTHOR_NAME Marty Kandes
        AUTHOR_EMAIL mkandes@sdsc.edu
    
        LAST_UPDATED 20210924
    
    %setup
    
    %environment
    
        # Set OpenMPI major, minor, and revision numbers, root and
        # installation directories
        export OMPI_MAJOR='4'
        export OMPI_MINOR='0'
        export OMPI_REVISION='5'
        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 CUDA version
        export CUDA_MAJOR='11'
        export CUDA_MINOR='2'
        export CUDA_VERSION="${CUDA_MAJOR}.${CUDA_MINOR}"
    
        # Set paths to CUDA binaries and libraries
        export CUDA_HOME="/usr/local/cuda-${CUDA_VERSION}"
        export PATH="${CUDA_HOME}/bin${PATH:+:${PATH}}"
        export LD_LIBRARY_PATH="${CUDA_HOME}/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}"
    
        # 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='4'
        export OMPI_MINOR='0'
        export OMPI_REVISION='5'
        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