Skip to content
Snippets Groups Projects
Commit 2409b188 authored by Marty Kandes's avatar Marty Kandes
Browse files

Remove all def files that depend on OpenMPI 4.0.4

Removed all container definition files that depend on OpenMPI 4.0.4 due
to the bug/issue described in commits 210cd3ed and 8c59ea28. While OpenMPI
4.0.4 is currently the base OpenMPI version deployed on Expanse @ SDSC,
running Singularity containers with OpenMPI 4.0.5 against OpenMPi 4.0.4
on the host has not been a problem. Moreover, we will plan to update the
base OpenMPI version on Expanse to OpenMPI 4.0.5 on next update of Spack
instances (in the next month or two).
parent ddef565d
Branches
No related tags found
No related merge requests found
Bootstrap: shub
From: mkandes/naked-singularity:ubuntu-18.04-openmpi-4.0.4
%labels
APPLICATION_NAME High-Performance Linpack (HPL)
APPLICATION_VERSION 2.3
APPLICATION_URL https://www.netlib.org/benchmark/hpl
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20210318
%setup
%environment
# Set OpenBLAS version number, target architecture, maximum number
# of threads, root and installation directories
export OPENBLAS_REPO_URL='https://github.com/xianyi/OpenBLAS.git'
export OPENBLAS_VERSION='0.3.14'
export OPENBLAS_ROOT_DIR='/opt/openblas'
export OPENBLAS_INSTALL_DIR="${OPENBLAS_ROOT_DIR}/${OPENBLAS_VERSION}"
export OPENBLAS_USE_OPENMP=1
export OPENBLAS_DYNAMIC_ARCH=1
export OPENBLAS_TARGET_ARCH='HASWELL'
export OPENBLAS_MAX_NUM_THREADS=256
# Set path to OpenBLAS libraries
export LD_LIBRARY_PATH="${OPENBLAS_INSTALL_DIR}/lib:${LD_LIBRARY_PATH}"
# Set HPL version number, target architecture, root and installation
# directories
export HPL_ROOT_URL='http://www.netlib.org/benchmark/hpl'
export HPL_VERSION='2.3'
export HPL_ARCH='linux64'
export HPL_ROOT_DIR='/opt/hpl'
export HPL_INSTALL_DIR="${HPL_ROOT_DIR}/${HPL_VERSION}"
# Set path to HPL binary
export PATH="${HPL_INSTALL_DIR}/bin:${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 Mellanox OFED version, operating system, and hardware platform
export MLNX_ROOT_URL='http://www.mellanox.com/downloads/ofed'
export MLNX_OFED_VERSION='4.7-3.2.9.0'
export MLNX_OS_VERSION='ubuntu18.04'
export MLNX_PLATFORM='x86_64'
# 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='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}"
# Upgrade all software packages to their latest versions
apt-get -y update && apt-get -y upgrade
cd /tmp
# Set OpenBLAS version number, target architecture, maximum number
# of threads, root and installation directories
export OPENBLAS_REPO_URL='https://github.com/xianyi/OpenBLAS.git'
export OPENBLAS_VERSION='0.3.14'
export OPENBLAS_ROOT_DIR='/opt/openblas'
export OPENBLAS_INSTALL_DIR="${OPENBLAS_ROOT_DIR}/${OPENBLAS_VERSION}"
export OPENBLAS_USE_OPENMP=1
export OPENBLAS_DYNAMIC_ARCH=1
export OPENBLAS_TARGET_ARCH='HASWELL'
export OPENBLAS_MAX_NUM_THREADS=256
# Download, build, and install OpenBLAS
git clone "${OPENBLAS_REPO_URL}"
cd OpenBLAS
git checkout "v${OPENBLAS_VERSION}"
if (( "${OPENBLAS_DYNAMIC_ARCH}" == 1 )); then
make FC='gfortran' BINARY=64 USE_OPENMP="${OPENBLAS_USE_OPENMP}" DYNAMIC_ARCH=1 NUM_THREADS="${OPENBLAS_MAX_NUM_THREADS}"
else
make FC='gfortran' BINARY=64 USE_OPENMP="${OPENBLAS_USE_OPENMP}" TARGET="${OPENBLAS_TARGET_ARCH}" NUM_THREADS="${OPENBLAS_MAX_NUM_THREADS}"
fi
make PREFIX="${OPENBLAS_INSTALL_DIR}" install
# Set path to OpenBLAS libraries
export LD_LIBRARY_PATH="${OPENBLAS_INSTALL_DIR}/lib:${LD_LIBRARY_PATH}"
cd /tmp
# Remove OpenBLAS build directory
rm -rf OpenBLAS
# Set HPL version number, target architecture, root and installation
# directories
export HPL_ROOT_URL='http://www.netlib.org/benchmark/hpl'
export HPL_VERSION='2.3'
export HPL_ARCH='linux64'
export HPL_ROOT_DIR='/opt/hpl'
export HPL_INSTALL_DIR="${HPL_ROOT_DIR}/${HPL_VERSION}"
# Download, build, and install HPL
wget "${HPL_ROOT_URL}/hpl-${HPL_VERSION}.tar.gz"
tar -xf "hpl-${HPL_VERSION}.tar.gz"
cd "hpl-${HPL_VERSION}/setup"
source make_generic
mv Make.UNKNOWN Make.linux64
sed -i 's/ARCH = UNKNOWN/ARCH = linux64/' Make.linux64
sed -i 's/TOPdir = $(HOME)\/hpl/TOPdir =/' Make.linux64
sed -i "s/TOPdir =/TOPdir = \/opt\/hpl\/${HPL_VERSION}/" Make.linux64
sed -i 's/MPdir = /MPdir = \/opt\/openmpi/4.0.4/' Make.linux64
sed -i 's/MPinc = /MPinc = -I$(MPdir)\/include/' Make.linux64
sed -i 's/MPlib = /MPlib = $(MPdir)\/lib\/libmpi.so/' Make.linux64
sed -i "s/LAdir = /LAdir = \/opt\/openblas\/${OPENBLAS_VERSION}/" Make.linux64
sed -i 's/LAinc = /LAinc = -I$(LAdir)\/include/' Make.linux64
sed -i 's/LAlib = -lblas/LAlib = $(LAdir)\/lib\/libopenblas.a/' Make.linux64
sed -i 's/LINKER = mpif77/LINKER = mpicc/' Make.linux64
cp Make.linux64 ../
cd ../
export LDFLAGS="-L${OPENBLAS_INSTALL_DIR}/lib"
./configure --prefix="${HPL_INSTALL_DIR}"
make arch='linux64'
make install
cd /tmp
# Remove HPL build directory and source tarball
rm -rf "hpl-${HPL_VERSION}"
rm "hpl-${HPL_VERSION}.tar.gz"
# Cleanup
apt-get -y autoremove --purge
apt-get -y clean
# Update database for mlocate
updatedb
%files
%runscript
%test
Bootstrap: shub
From: mkandes/naked-singularity:ubuntu-18.04-openmpi-4.0.4
%labels
APPLICATION_NAME OSU Micro-Benchmarks
APPLICATION_VERSION 5.7
APPLICATION_URL http://mvapich.cse.ohio-state.edu/benchmarks
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20210305
%setup
%environment
# Set OMB major and minor version numbers, root and
# installation directories
export OMB_ROOT_URL='http://mvapich.cse.ohio-state.edu/download/mvapich'
export OMB_MAJOR='5'
export OMB_MINOR='7'
export OMB_VERSION="${OMB_MAJOR}.${OMB_MINOR}"
export OMB_ROOT_DIR='/opt/omb'
export OMB_INSTALL_DIR="${OMB_ROOT_DIR}/${OMB_VERSION}"
# Set paths to OSU Microbenchmarks binaries
export PATH="${OMB_INSTALL_DIR}/collective:${PATH}"
export PATH="${OMB_INSTALL_DIR}/one-sided:${PATH}"
export PATH="${OMB_INSTALL_DIR}/pt2pt:${PATH}"
export PATH="${OMB_INSTALL_DIR}/startup:${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 Mellanox OFED version, operating system, and hardware platform
export MLNX_ROOT_URL='http://www.mellanox.com/downloads/ofed'
export MLNX_OFED_VERSION='4.7-3.2.9.0'
export MLNX_OS_VERSION='ubuntu18.04'
export MLNX_PLATFORM='x86_64'
# 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='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}"
# Upgrade all software packages to their latest versions
apt-get -y update && apt-get -y upgrade
cd /tmp
# Set OMB major and minor version numbers, root and
# installation directories
export OMB_ROOT_URL='http://mvapich.cse.ohio-state.edu/download/mvapich'
export OMB_MAJOR='5'
export OMB_MINOR='7'
export OMB_VERSION="${OMB_MAJOR}.${OMB_MINOR}"
export OMB_ROOT_DIR='/opt/omb'
export OMB_INSTALL_DIR="${OMB_ROOT_DIR}/${OMB_VERSION}"
# Download, build, and install OSU Microbenchmarks
wget "${OMB_ROOT_URL}/osu-micro-benchmarks-${OMB_VERSION}.tar.gz"
tar -xf "osu-micro-benchmarks-${OMB_VERSION}.tar.gz"
cd "osu-micro-benchmarks-${OMB_VERSION}"
./configure --prefix="${OMB_INSTALL_DIR}" CC='mpicc' CXX='mpicxx'
make
make install
# Reorganize OSU Microbenchmarks directory structure
cd "${OMB_INSTALL_DIR}"
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
cd /tmp
# Remove OMB build directory and source tarball
rm -rf "osu-micro-benchmarks-${OMB_VERSION}"
rm "osu-micro-benchmarks-${OMB_VERSION}.tar.gz"
# Cleanup
apt-get -y autoremove --purge
apt-get -y clean
# Update database for mlocate
updatedb
%files
%runscript
%test
Bootstrap: shub
From: mkandes/naked-singularity:ubuntu-18.04
%labels
APPLICATION_NAME ubuntu + openmpi
APPLICATION_VERSION 18.04 + 4.0.4
APPLICATION_URL https://www.open-mpi.org
AUTHOR_NAME Marty Kandes
AUTHOR_EMAIL mkandes@sdsc.edu
LAST_UPDATED 20210223
%setup
%environment
# Set Mellanox OFED version, operating system, and hardware platform
export MLNX_ROOT_URL='http://www.mellanox.com/downloads/ofed'
export MLNX_OFED_VERSION='4.7-3.2.9.0'
export MLNX_OS_VERSION='ubuntu18.04'
export MLNX_PLATFORM='x86_64'
# 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='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'
# Upgrade all software packages to their latest versions
apt-get -y update && apt-get -y upgrade
# Install all dependencies and/or prerequisites for Mellanox OFED
apt-get -y install bison
apt-get -y install chrpath
apt-get -y install debhelper
apt-get -y install dpatch
apt-get -y install flex
apt-get -y install graphviz
apt-get -y install libnl-3-dev
apt-get -y install libnl-route-3-200
apt-get -y install tcl-dev
apt-get -y install tk-dev
apt-get -y install swig
cd /tmp
# Set Mellanox OFED version, operating system, and hardware platform
export MLNX_ROOT_URL='http://www.mellanox.com/downloads/ofed'
export MLNX_OFED_VERSION='4.7-3.2.9.0'
export MLNX_OS_VERSION='ubuntu18.04'
export MLNX_PLATFORM='x86_64'
# Download and install Mellanox OFED drivers and supporting
# libraries for userspace access to Ethernet, RDMA, and Infiniband.
# https://docs.mellanox.com/pages/releaseview.action?pageId=15049785
wget "${MLNX_ROOT_URL}/MLNX_OFED-${MLNX_OFED_VERSION}/MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-${MLNX_OS_VERSION}-${MLNX_PLATFORM}.tgz"
tar -xf "MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-${MLNX_OS_VERSION}-${MLNX_PLATFORM}.tgz"
cd "MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-${MLNX_OS_VERSION}-${MLNX_PLATFORM}"
./mlnxofedinstall --user-space-only --without-fw-update --force
cd /tmp
# Remove Mellanox OFED archive directory and tarball
rm -rf "MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-${MLNX_OS_VERSION}-${MLNX_PLATFORM}"
rm "MLNX_OFED_LINUX-${MLNX_OFED_VERSION}-${MLNX_OS_VERSION}-${MLNX_PLATFORM}.tgz"
# Install additional tools
apt-get -y install numactl
apt-get -y install libnuma-dev
# Install OpenMPI dependencies
apt-get -y install zlib1g-dev
cd /tmp
# 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='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}"
# 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}" --without-verbs
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment