PGI Guide for OpenMPI

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

Version Information

This guide was created for the 1.4.1 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

openmpi-1.4.1.tar.gz source code can be downloaded from http://www.open-mpi.org/software/ompi/v1.4

Prerequisites

None

Building Open MPI

  1. Untar the OpenMPI package:

       tar -xvzf openmpi-1.4.1.tar.gz
       cd openmpi-1.4.1
    
  2. Set the environment for the code:

    For PGI 2010 version 10.4 and above:

       env CC=pgcc FC=pgfortran F77=pgfortran CXX=pgcpp CFLAGS=-fast FCFLAGS=-fast \
       FFLAGS=-fast CXXFLAGS=-fast ./configure --prefix=/usr/local/openmpi >& configure.log
    

    For PGI 2010 version 10.3 and below on systems running glibc 4.3:

       env CC=pgcc FC=pgfortran F77=pgfortran CXX=pgcpp CFLAGS="-fast -I/usr/include" \
       FCFLAGS=-fast FFLAGS=-fast CXXFLAGS=-fast ./configure --prefix=/usr/local/openmpi \
       >& configure.log
    

    For PGI 2010 version 10.3 and below on older Linux distributions:

      env CC=pgcc FC=pgfortran F77=pgfortran CXX=pgcpp CFLAGS=-fast FCFLAGS=-fast FFLAGS=-fast \
      CXXFLAGS=-fast ./configure --prefix=/usr/local/openmpi >& configure.log
    
  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

None

Click me