Skip to content
Snippets Groups Projects
Select Git revision
  • 854e67d8e7993959e719b4474c078c902db68002
  • master default protected
  • v1.1.0
  • v1.0.0
4 results

benchmark_cubulation-checkpoint.ipynb

Blame
  • centos-openmpi.def 4.50 KiB
    Bootstrap: yum 
    OSVersion: 7
    MirrorURL: http://mirror.centos.org/centos-7/7/os/x86_64/
    Include: yum
    
    %labels
    
        APPLICATION_NAME centos + openmpi
        APPLICATION_VERSION 7.7.1908 + 3.1.4
        APPLICATION_URL https://www.open-mpi.org/
    
        SINGULARITY_VERSION 2.6.1
        SINGULARITY_IMAGE_SIZE 4096
    
        AUTHOR_NAME Marty Kandes
        AUTHOR_EMAIL mkandes@sdsc.edu
    
        LAST_UPDATED 20200228
    
    %setup
    
    %environment
    
        # Set system locale
        export LC_ALL=C
    
        # Set paths to OpenMPI binaries and libraries
        export PATH="/opt/openmpi-3.1.4/bin:${PATH}"
        export LD_LIBRARY_PATH="/opt/openmpi-3.1.4/lib:${LD_LIBRARY_PATH}"
    
        # Set paths to OSU Microbenchmarks binaries
        export PATH="/opt/omb-5.6.2/collective:${PATH}"
        export PATH="/opt/omb-5.6.2/one-sided:${PATH}"
        export PATH="/opt/omb-5.6.2/pt2pt:${PATH}"
        export PATH="/opt/omb-5.6.2/startup:${PATH}"
    
        # Set default miniconda environment
        export PATH="/opt/miniconda3/bin:${PATH}"
    
    %post -c /bin/bash
    
        # Set system locale
        export LC_ALL=C
    
        # Add repositories
        yum -y install epel-release
    
        # Install system metapackages
        yum -y groupinstall "Development Tools"
        yum -y groupinstall "Additional Development"
        yum -y groupinstall "Compatibility Libraries"
    
        # Update all packages to their latest versions
        yum -y update
    
        # Install common packages
        yum -y install bc
        yum -y install cmake
        yum -y install curl
        yum -y install mlocate
        yum -y install rsync
        yum -y install time
        yum -y install wget
        yum -y install which
    
        # Install expect to automate responses for interactive build questions
        yum -y install expect
    
        # Use /tmp to store temporary files within the container during the
        # bootstraping process
        cd /tmp
    
        # Install miniconda3
        wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
        chmod +x Miniconda3-latest-Linux-x86_64.sh
        ./Miniconda3-latest-Linux-x86_64.sh -b -p /opt/miniconda3
    
        # Install basic drivers for user space access to Ethernet, RDMA,
        # and Infiniband. See https://community.mellanox.com/docs/DOC-2431
        yum -y install dkms
        yum -y install infiniband-diags
        yum -y install infiniband-diags-devel
        yum -y install libibverbs
        yum -y install libibverbs-devel
        yum -y install ibacm
        yum -y install librdmacm
        yum -y install librdmacm-devel
        yum -y install libmlx4
        yum -y install libmlx5
        yum -y install msflint
        yum -y install libibcm
        yum -y install libibmad
        yum -y install libibmad-devel
        yum -y install libibumad
        yum -y install libibumad-devel
        yum -y install opensm
        yum -y install srptools
    
        # Install additional tools
        yum -y install ibutils
        yum -y install libibverbs-utils
        yum -y install rdmacm-utils
        yum -y install librdmacm-utils
        yum -y install perftest
        yum -y install numactl
    
        # Install libnl
        yum -y install libnl3
        yum -y install libnl3-devel
    
        # Install OpenMPI dependencies
        yum -y install zlib
        yum -y install zlib-devel
    
        # Download, build, and install OpenMPI
        wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.4.tar.gz
        tar -xzvf openmpi-3.1.4.tar.gz
        cd openmpi-3.1.4
        ./configure --prefix=/opt/openmpi-3.1.4
        make all install
    
        # Set paths to OpenMPI binaries and libraries
        export PATH="/opt/openmpi-3.1.4/bin:${PATH}"
        export LD_LIBRARY_PATH="/opt/openmpi-3.1.4/lib:${LD_LIBRARY_PATH}"
    
        cd /tmp
    
        # Download, build, and install OSU Microbenchmarks
        wget http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-5.6.2.tar.gz
        tar -xzvf osu-micro-benchmarks-5.6.2.tar.gz
        cd osu-micro-benchmarks-5.6.2
        ./configure --prefix='/opt/omb-5.6.2' CC='mpicc' CXX='mpicxx'
        make
        make install
    
        # Reorganize OSU Microbenchmarks directory structure
        cd /opt/omb-5.6.2
        mv libexec/osu-micro-benchmarks/mpi/collective ./
        mv libexec/osu-micro-benchmarks/mpi/one-sided ./
        mv libexec/osu-micro-benchmarks/mpi/pt2pt ./
        mv libexec/osu-micro-benchmarks/mpi/startup ./
        rm -rf libexec
    
        # Set paths to OSU Microbenchmarks binaries
        export PATH="/opt/omb-5.6.2/collective:${PATH}"
        export PATH="/opt/omb-5.6.2/one-sided:${PATH}"
        export PATH="/opt/omb-5.6.2/pt2pt:${PATH}"
        export PATH="/opt/omb-5.6.2/startup:${PATH}"
    
        # Clean up /tmp directory
        cd /tmp
        rm Miniconda3-latest-Linux-x86_64.sh
        rm *.deb
        rm -rf openmpi-3.1.4*
        rm -rf osu-micro-benchmarks-5.6.2*
    
        # Update database for mlocate
        updatedb
    
    %files
    
    %runscript
    
    %test