OpenMPI 4.0.2

Webpage

https://www.open-mpi.org/

Version

  • 4.0.2

Build Environment

  • gcc 4.8.5, 4.9.2, 5.3.1, 6.3.1, 7.3.1, 8.3.1
  • intel compiler 15, 17, 18, 19
  • PBS Pro 14.1.0
  • libpsm2 10.3.3
  • libpsm2-devel 10.3.3

Files Required

  • openmpi-4.0.0.tar.bz2

Build Procedure (gcc)

#!/bin/sh

VERSION=4.0.2
VERSION_SHORT="402"
WORKDIR=/work/users/${USER}
TARBALL=/home/users/${USER}/openmpi-${VERSION}.tar.bz2
PBSROOT=/local/apl/lx/pbs14

PARALLEL=12

#-----------------------------------------------------------------------
umask 0022

cd ${WORKDIR}
if [ -d openmpi-${VERSION} ]; then
  mv openmpi-${VERSION} openmpi_erase
  rm -rf openmpi-${VERSION} &
fi

tar jxf ${TARBALL}
cd openmpi-${VERSION}

# GCC 4.8
module purge
INSTALLDIR=/local/apl/lx/openmpi${VERSION_SHORT}
mkdir rccs-gcc && cd rccs-gcc
../configure --prefix=${INSTALLDIR} \
             --with-tm=${PBSROOT} \
             --enable-mpi-cxx \
             --enable-mpi1-compatibility \
             --with-psm2
make -j ${PARALLEL} && make install && make check
cd ../

# GCC 4.9
module purge
module load scl/devtoolset-3
INSTALLDIR=/local/apl/lx/openmpi${VERSION_SHORT}-gnu4.9
mkdir rccs-gcc49 && cd rccs-gcc49
../configure --prefix=${INSTALLDIR} \
             --with-tm=${PBSROOT} \
             --enable-mpi-cxx \
             --enable-mpi1-compatibility \
             --with-psm2
make -j ${PARALLEL} && make install && make check
cd ../

# GCC 5.3
module purge
module load scl/devtoolset-4
INSTALLDIR=/local/apl/lx/openmpi${VERSION_SHORT}-gnu5.3
mkdir rccs-gcc53 && cd rccs-gcc53
../configure --prefix=${INSTALLDIR} \
             --with-tm=${PBSROOT} \
             --enable-mpi-cxx \
             --enable-mpi1-compatibility \
             --with-psm2
make -j ${PARALLEL} && make install && make check
cd ../

# GCC 6.3
module purge
module load scl/devtoolset-6
INSTALLDIR=/local/apl/lx/openmpi${VERSION_SHORT}-gnu6.3
mkdir rccs-gcc63 && cd rccs-gcc63
../configure --prefix=${INSTALLDIR} \
             --with-tm=${PBSROOT} \
             --enable-mpi-cxx \
             --enable-mpi1-compatibility \
             --with-psm2
make -j ${PARALLEL} && make install && make check
cd ../

# GCC 7.3
module purge
module load scl/devtoolset-7
INSTALLDIR=/local/apl/lx/openmpi${VERSION_SHORT}-gnu7.3
mkdir rccs-gcc73 && cd rccs-gcc73
../configure --prefix=${INSTALLDIR} \
             --with-tm=${PBSROOT} \
             --enable-mpi-cxx \
             --enable-mpi1-compatibility \
             --with-psm2
make -j ${PARALLEL} && make install && make check
cd ../

# GCC 8.3
module purge
module load scl/devtoolset-8
INSTALLDIR=/local/apl/lx/openmpi${VERSION_SHORT}-gnu8.3
mkdir rccs-gcc83 && cd rccs-gcc83
../configure --prefix=${INSTALLDIR} \
             --with-tm=${PBSROOT} \
             --enable-mpi-cxx \
             --enable-mpi1-compatibility \
             --with-psm2
make -j ${PARALLEL} && make install && make check
cd ../

Build Procedure (intel)

#!/bin/sh

VERSION=4.0.2
VERSION_SHORT="402"
WORKDIR=/work/users/${USER}
TARBALL=/home/users/${USER}/openmpi-${VERSION}.tar.bz2
PBSROOT=/local/apl/lx/pbs14

PARALLEL=12

#-----------------------------------------------------------------------
umask 0022

cd ${WORKDIR}
if [ -d openmpi-${VERSION} ]; then
  mv openmpi-${VERSION} openmpi_erase
  rm -rf openmpi-${VERSION} &
fi

tar jxf ${TARBALL}
cd openmpi-${VERSION}

# intel 2015
module purge
module load intel_parallelstudio/2015update1
INSTALLDIR=/local/apl/lx/openmpi${VERSION_SHORT}-intel15
mkdir rccs-intel15 && cd rccs-intel15
CC=icc CXX=icpc FC=ifort \
  ../configure --prefix=${INSTALLDIR} \
               --with-tm=${PBSROOT} \
               --enable-mpi-cxx \
               --enable-mpi1-compatibility \
               --with-psm2
make -j ${PARALLEL} && make install && make check
cd ../

# intel 2017
module purge
module load intel_parallelstudio/2017update8
INSTALLDIR=/local/apl/lx/openmpi${VERSION_SHORT}-intel17
mkdir rccs-intel17 && cd rccs-intel17
CC=icc CXX=icpc FC=ifort \
  ../configure --prefix=${INSTALLDIR} \
               --with-tm=${PBSROOT} \
               --enable-mpi-cxx \
               --enable-mpi1-compatibility \
               --with-psm2
make -j ${PARALLEL} && make install && make check
cd ../

# intel 2018
module purge
module load intel_parallelstudio/2018update4
#INSTALLDIR=/local/apl/lx/openmpi${VERSION_SHORT}-intel18
INSTALLDIR=/local/apl/lx/openmpi${VERSION_SHORT}-intel
mkdir rccs-intel18 && cd rccs-intel18
CC=icc CXX=icpc FC=ifort \
  ../configure --prefix=${INSTALLDIR} \
               --with-tm=${PBSROOT} \
               --enable-mpi-cxx \
               --enable-mpi1-compatibility \
               --with-psm2
make -j ${PARALLEL} && make install && make check
cd ../

# intel 2019
module purge
module load intel_parallelstudio/2019update5
INSTALLDIR=/local/apl/lx/openmpi${VERSION_SHORT}-intel19
mkdir rccs-intel19 && cd rccs-intel19
CC=icc CXX=icpc FC=ifort \
  ../configure --prefix=${INSTALLDIR} \
               --with-tm=${PBSROOT} \
               --enable-mpi-cxx \
               --enable-mpi1-compatibility \
               --with-psm2
make -j ${PARALLEL} && make install && make check
cd ../

Notes

  • cxx and legacy mpi1 (required by scalapack) supports are enabled for this build.
  • please set environment variable "OMPI_MCA_btl_openib_allow_ib" to 1. (This variable is added in the module files mpi/openmpi/4.0.2/*.)
    • setenv OMPI_MCA_btl_openib_allow_ib 1 (csh)
    • export OMPI_MCA_btl_openib_allow_ib=1 (bash)