Bootstrap: docker From: ubuntu:latest %arguments NPROCS=4 OPENMPI_VERSION=4.1.6 OSU_MICRO_BENCHMARKS_VERSION=7.4 %post ### Install OpenMPI dependencies apt-get update apt-get install -y wget bash gcc gfortran g++ make file bzip2 ca-certificates libucx-dev ### Build OpenMPI OPENMPI_VERSION_SHORT=$(echo {{ OPENMPI_VERSION }} | cut -f 1-2 -d '.') cd /opt mkdir ompi wget -q https://download.open-mpi.org/release/open-mpi/v${OPENMPI_VERSION_SHORT}/openmpi-{{ OPENMPI_VERSION }}.tar.bz2 tar -xvf openmpi-{{ OPENMPI_VERSION }}.tar.bz2 # Compile and install cd openmpi-{{ OPENMPI_VERSION }} ./configure --prefix=/opt/ompi --with-ucx=/usr make -j{{ NPROCS }} make install cd .. rm -rf openmpi-{{ OPENMPI_VERSION }} openmpi-{{ OPENMPI_VERSION }}.tar.bz2 ### Build example application export OMPI_DIR=/opt/ompi export PATH="$OMPI_DIR/bin:$PATH" export LD_LIBRARY_PATH="$OMPI_DIR/lib:$LD_LIBRARY_PATH" # Build osu benchmarks cd /opt wget -q http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-{{ OSU_MICRO_BENCHMARKS_VERSION }}.tar.gz tar xf osu-micro-benchmarks-{{ OSU_MICRO_BENCHMARKS_VERSION }}.tar.gz cd osu-micro-benchmarks-{{ OSU_MICRO_BENCHMARKS_VERSION }} ./configure --prefix=/opt/osu-micro-benchmarks CC=/opt/ompi/bin/mpicc CFLAGS=-O3 make -j{{ NPROCS }} make install cd .. rm -rf osu-micro-benchmarks-{{ OSU_MICRO_BENCHMARKS_VERSION }} osu-micro-benchmarks-{{ OSU_MICRO_BENCHMARKS_VERSION }}.tar.gz %environment export OMPI_DIR=/opt/ompi export PATH="$OMPI_DIR/bin:$PATH" export LD_LIBRARY_PATH="$OMPI_DIR/lib:$LD_LIBRARY_PATH" export MANPATH="$OMPI_DIR/share/man:$MANPATH" %runscript /opt/osu-micro-benchmarks/libexec/osu-micro-benchmarks/mpi/pt2pt/osu_bw