Select Git revision
benchmark_cubulation-checkpoint.ipynb
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