Built-in support for OpenMPI:

This release comes with an experimental support for the OpenMPI library. We have added the library into our release system in order to make its simple to develop portable MPI applications for ourselves as well as to make the very same process easier for our users. Please, read notes below to learn about specific requirements fo developing the MPI applications within our releases.

Features available with our build of the library:

One can find a complete list of features supported in the build by running the following command from the release:

% sit_setup
% ompi_info
                 Package: Open MPI psrel@psdev106 Distribution
                Open MPI: 1.8.1
  Open MPI repo revision: r31483
   Open MPI release date: Apr 22, 2014
                Open RTE: 1.8.1
  Open RTE repo revision: r31483
   Open RTE release date: Apr 22, 2014
                    OPAL: 1.8.1
      OPAL repo revision: r31483
       OPAL release date: Apr 22, 2014
                 MPI API: 3.0
            Ident string: 1.8.1
                  Prefix: /reg/g/psdm/sw/external/openmpi/1.8.1/x86_64-rhel5-gcc41-opt
 Configured architecture: x86_64-unknown-linux-gnu
...
 

Please, let us know if anything else would need to be added/changes in the installation. We will evaluate your request to see if we could make it possible.

Developing C++ applications:

To begin using MPI in a C/C++ application one should include the following header:

#include "openmpi/mpi.h"

Note that typical examples found in various MPI documentation portals would usually suggest to include this header as:

#include <mpi.h>

If you have an existing application which needs to be integrated into our release then you will have to modify your source code accordingly.

If you exported this release off-SLAC

If you have installed a release in a non-standard locations (rather than at /reg/g/psdm) at your site/computer then the MPI application won't be able to find certain files. That's because the installation path for the library is hard-wired into OpenMPI binaries and libraries at a time when the library is being built. This problem is explained in this OpenMPI FAQ. A solution to this problem is to find a location where the library is installed within your release and set an environment variable OPAL_PREFIX overriding the base path. Here is how this variable could be set at SLAC for RHEL5 if you're using TCSH.

setenv OPAL_PREFIX /reg/g/psdm/sw/external/openmpi/1.8.1/x86_64-rhel5-gcc41-opt/

site setup warning

The above shown environment variable is not needed at SLAC or if the software is installed at /reg/g/psdm.

Improvements and bug fixes in pyana:

  • Fixed a bug in pyana which was causing the framework to crash in the multiprocessing mode (running an application with option -p N)

  • Added support for XTC type BldEBeamV6

deprecated software warning

The pyana framework is no longer officially supported. Please, take some time to migrate your application to the psana modules framework as soon as possible.

Other improvements:

  • Fixed a bug in the command line calibration tool which was assuming a wrong default path to the calibration directory
  • The Python library mpi4py has been rebuilt with OpenMPI 1.8.1 incorporated into the release
  • No labels