PGI Guide for OpenMPI

This guide is intended to help build the OpenMPI libraries using the PGI 2011 compilers.

Version Information

This guide was created for the 1.4.3 release of the OpenMPI libraries. This information is for both x64 processors running 64-bit Linux or x86 processors running 32-bit Linux.

Library Notes

OpenMPI is freely available. The OpenMPI webpage is at http://www.openmpi.org. From the webpage:

A High Performance Message Passing Library

The Open MPI Project is an open source MPI-2 implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available. Open MPI offers advantages for system and software vendors, application developers and computer science researchers.

Features implemented or in short-term development for Open MPI include:

  • Full MPI-2 standards conformance
  • Thread safety and concurrency
  • Dynamic process spawning
  • Network and process fault tolerance
  • Support network heterogeneity
  • Single library supports all networks
  • Run-time instrumentation
  • Many job schedulers supported
  • Many OS's supported (32 and 64 bit)
  • Production quality software
  • High performance on all platforms
  • Portable and maintainable
  • Tunable by installers and end-users
  • Component-based design, documented APIs
  • Active, responsive mailing list
  • Open source license based on the BSD license

Obtaining the Source Code

Downloaded the openmpi-1.4.3.tar.bz2 source code from the openMPI website at http://www.open-mpi.org/software/ompi/v1.4

Prerequisites

None

Building OpenMPI

  1. Untar the OpenMPI package:

      tar -xvjf openmpi-1.4.3.tar.bz2
      cd openmpi-1.4.3
  2. Set the environment for the code:

      env CC=pgcc FC=pgfortran F77=pgfortran CXX=pgcpp CFLAGS=-fast FCFLAGS=-fast \
      FFLAGS=-fast CXXFLAGS=-fast ./configure --prefix=/usr/local/openmpi
    
  3. Build the code:

      make >& make.log
    
  4. Check the build:

      make check
    
  5. Install the code:

      sudo su
      make install
    

Known Issues and Limitations

OpenMPI can be built with support for a wide range of cluster interconnects The command configure --help will list all of the configuration options.

The build system used, running Ubuntu, had an issue with the installation which appears to be a Ubuntu issue:

  /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.4.1/crtbeginS.o: no such file or directory
  (the current version of gcc installed is 4.4.3)

Creating a link to to 4.4.1 in /usr/lib/gcc/x86_64-linux-gnu is a quick way through the issue:

  cd /usr/lib/gcc/x86_64-linux-gnu; ln -s 4.4 4.4.1
Click me