PGI Guide for OpenMPI

This guide is intended to help build Open MPI version 1.3.2 using PGI 9.0 compilers.

Version Information

This guide was created for use with Open MPI version 1.3.2 using the PGI 9.0 release. This information is for both x64 processors running 64-bit Linux or x86 processors running 32-bit Linux.

Library Notes

Open MPI is a freely available implementation of MPI. Information about MPICH can be found at the Open MPI Home Page

Obtaining the Source Code

Open MPI is freely available for download from the Open MPI 1.3 download page.

Dependencies

There are no known dependencies.

Configuration and Set-up Information

After you have downloaded and unpacked the Open MPI packages, the typical build process is followed. After setting up the environment and determining the final installation directory, you run configure followed by make and finally make install. Please modify this example as needed. Be sure to change the prefix path. We assume the PGI compilers are installed in the default /opt/pgi directory.

cd opemmpi-1.3.2
!for 32-bit
./configure CC=pgcc CXX=pgCC FC=pgf77 F90=pgf90 --prefix=/opt/pgi/linux86/9.0/mpi/openmpi
!for 64-bit
./configure CC=pgcc CXX=pgCC FC=pgf77 F90=pgf90 --prefix=/opt/pgi/linux86-64/9.0/mpi/openmpi

Building Open MPI

To build and install, simply run 'make' and 'make install'.

make
make install

After you have successfully installed the Open MPI library you will need to create a 'hostfile' file with the list of your cluster's host names. For technical Information to run Open MPI programs See the Open MPI FAQs

Running Open MPI

To test your Open MPI installation, the Open MPI package contains several example test programs. First make sure that the Open MPI install bin directory is in your PATH environment variable, and the Open MPI install bin is in your LD_LIBRARY_PATH environment variable. Then build and run the examples.

! for 32-bit
export LD_LIBRARY_PATH=/opt/pgi/linux86/9.0/mpi/openmpi/lib:$LD_LIBRARY_PATH
export PATH=/opt/pgi/linux86/9.0/mpi/openmpi/bin:/opt/pgi/linux86/9.0/bin:$PATH
! for 64-bit
export LD_LIBRARY_PATH=/opt/pgi/linux86-64/9.0/mpi/openmpi/lib:$LD_LIBRARY_PATH
export PATH=/opt/pgi/linux86-64/9.0/mpi/openmpi/bin:/opt/pgi/linux86-64/9.0/bin:$PATH  
cd examples
make >& make.log
! run an example
mpirun -np 4 --hostfile my-hostfile hello_cxx   

Verifying Correctness

Results of the example tests can be found in the make.log above. Review this file for any errors

Using PGDBG with Open MPI

The PGI graphical MPI-parallel debugger, PGDBG, has not been modified to work with Open MPI.

Known Issues and Limitations

General

-pthread

The MPICH build scripts use -pthread which can cause PGI compilers to react poorly. To work around this problem, create or edit a siterc file with these contents:

switch -pthread is replace(-lpthread) positional(linker);

Place the file in $PGI/linux86/9.0/bin/siterc and $PGI/linux86-64/9.0/bin/siterc

Click me