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

Singularity.ubuntu-18.04-cuda-10.2-mlnx-ofed-4.6-1.0.1.1-openmpi-3.1.4

Blame
  • user avatar
    Marty Kandes authored
    Another OMB container (and its base container layers) built to assist
    with testing CUDA-enabled OpenMPI to help investigate a problem with
    multi-GPU node support in Expanse's software deployment. Again, these
    containers will also be used to prepare acceptance tests on Expanse for
    the upcoming deployment of Voyager.
    0a6b27e7
    History
    Singularity.ubuntu-18.04-cuda-10.2-mlnx-ofed-4.6-1.0.1.1-openmpi-3.1.4 3.22 KiB
    Bootstrap: oras
    From: ghcr.io/mkandes/naked-singularity:ubuntu-18.04-cuda-10.2-mlnx-ofed-4.6-1.0.1.1
    
    %labels
    
        APPLICATION_NAME ubuntu + cuda + mlnx-ofed + openmpi
        APPLICATION_VERSION 18.04 + 10.2 + 4.6-1.0.1.1 + 3.1.4
        APPLICATION_URL https://www.open-mpi.org
    
        AUTHOR_NAME Marty Kandes
        AUTHOR_EMAIL mkandes@sdsc.edu
    
        LAST_UPDATED 20210909
    
    %setup
    
    %environment
    
        # Set OpenMPI major, minor, and revision numbers, root and
        # installation directories
        export OMPI_MAJOR='3'
        export OMPI_MINOR='1'
        export OMPI_REVISION='4'
        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='10'
        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='3'
        export OMPI_MINOR='1'
        export OMPI_REVISION='4'
        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