Skip to content
Mark Santcroos edited this page Nov 17, 2016 · 29 revisions

Open RunTime Environment from OpenMPI

Toolchain installation

Use GNU compiler, i.e. on Cray's some variant of:

module switch PrgEnv-pgi PrgEnv-gnu # e.g. Titan
# or
module swap PrgEnv-cray PrgEnv-gnu # i.e. Blue Waters

Setup paths:

export OMPI_DIR=$HOME/openmpi
export OMPI_BUILD=$OMPI_DIR/build
export OMPI_INSTALLED=$OMPI_DIR/installed
export OMPI_DOWNLOAD=$OMPI_DIR/download
export OMPI_SOURCE=$OMPI_DIR/src
export TOOLS_PREFIX=$OMPI_DIR/tools
export PATH=$TOOLS_PREFIX/bin:$PATH

Create download directory:

mkdir $OMPI_DOWNLOAD
cd $OMPI_DOWNLOAD

Download following files into $OMPI_DOWNLOAD:

  • autoconf-2.69.tar.gz
  • automake-1.13.3.tar.gz
  • libtool-2.4.2.tar.gz
  • m4-1.4.16.tar.gz

Create source directory:

mkdir -p $OMPI_SOURCE

Install m4:

cd $OMPI_SOURCE
tar -xvzf $OMPI_DOWNLOAD/m4-1.4.16.tar.gz
cd m4-1.4.16
./configure --prefix=$TOOLS_PREFIX
make
make install
cd ..

Install autoconf:

cd $OMPI_SOURCE
tar -xvzf $OMPI_DOWNLOAD/autoconf-2.69.tar.gz
cd autoconf-2.69
./configure --prefix=$TOOLS_PREFIX
make
make install

Install automake:

cd $OMPI_SOURCE
tar -xvzf $OMPI_DOWNLOAD/automake-1.13.3.tar.gz
cd automake-1.13.3
./configure --prefix=$TOOLS_PREFIX
make
make install

Install libtool:

cd $OMPI_SOURCE
tar -xvzf $OMPI_DOWNLOAD/libtool-2.4.2.tar.gz
cd libtool-2.4.2
./configure --prefix=$TOOLS_PREFIX
make
make install

OpenMPI installation

Last know good git commit: 4c9f7af.

Prepare OMPI source code:

cd $OMPI_SOURCE
git clone https://github.com/open-mpi/ompi.git
cd ompi
git checkout 4c9f7af
./autogen.pl

Build and install:

mkdir $OMPI_BUILD
cd $OMPI_BUILD
OMPI_LABEL=nov18
CFLAGS=-O3 CXXFLAGS=-O3 $OMPI_SOURCE/ompi/configure --enable-orterun-prefix-by-default --with-devel-headers --disable-debug --enable-static --prefix=$OMPI_INSTALLED/$OMPI_LABEL
make
make install

Module files

TODO

  • Compare and contrast static vs dynamic linked builds
  • Construct list/table with proper install locations for the various systems
Clone this wiki locally