The DORII Middleware. Open MPI

Overview and general information

Open MPI is a relatively new MPI implementation. The project started in 2003 by the developers of LAM-MPI (Indiana University), LA-MPI (Los Alamos) and FT-MPI (University of Tennessee). In 2004 HLRS, the developers of PACX-MPI, joined the project. Some of the Open MPI goals are:

  • Merge the best ideas of all 4 MPI implementations into a new MPI implementation.
  • Concentration of resources. Instead of implementing/maintaining several independent MPI implementations have only one.
  • Have a state-of-the-art modular component-based software project written from scratch.
  • Allow easy extension of new features
  • Avoid of the forking problem.
  • Get rid of legacy code.
  • Production-quality software.
  • Research platform.
  • Many Operating Systems and platforms should be supported.
  • Support for heterogeneous environments.
  • Fault tolerance

In 2005, the first public release 1.0 was made. Since the first release continuous progress has been made. The current stable release is 1.2.8 and the major release 1.3 is coming soon. Since the first release of the project it has grown up to 15 members and several additional contributors by the end of 2008. These members come from different scientific domains and research areas as well as industrial/commercial partners (IBM, Cisco, Sun, Myricom, Mellanox, etc.).

Arcitecture details

The Open MPI project itself can be partitioned into 3 logical layers:

Open MPI is based on a component architecture. Component architecture means that for every functionality (e.g. starting processes, sending/receiving data, …) a specific formalized interface is defined. The specified functionality is implemented by different components in different ways. This “black box” approach allows developers to write code that is independent of the current implementation and therefore increase the abstraction. In the current development version of Open MPI almost 30 different kinds of components are defined. When an Open MPI program is started Open MPI will dynamically analyse the system and then “compose” the matching components to the best possible runtime configuration. If for example a system has an Ethernet and a Myricom interconnect, Open MPI will load the corresponding Ethernet component (TCP) and the corresponding Myrinet component (MX or GM). If there are other components available that do not match the current system (e.g. Infiniband) then Open MPI will ignore these components. This dynamic approach of composing the MPI components on demand allows Open MPI to be very flexible and to offer some special features. It is possible to load and use multiple transport systems at the same time. If data needs to be exchanged between processes Open MPI will always try to use the most performant transfer mechanism that is available. If for example one process sends data to another one and both processes are located on the same memory, Open MPI will send the data via the shared memory module. If shared memory transfer is not an option, the next best module will be used. As far as fault tolerance is concerned, the loss of some components (associated resources, e.g a cable or switch failure) at runtime can be tolerated as long as the remaining components offer enough functionality. For example, it is possible to finish a run if the Infiniband network in use becomes unavailable (e.g. failing cable) as long as there is another transport layer (e.g. sockets) available to reach every process in the job.

Installation

Open MPI is being installed on all DORII sites which support parallel jobs. The actual status of the installation is listed in the following table:

CE Version Details
HG-06-EKT (ce01.athena.hellasgrid.gr) 1.3 32-bit version at /opt/openmpi/1.3-i386 and 64-bit version at /opt/openmpi/1.3-x86_64

Documentation and technical support

More details about Open MPI can be found at http://www.openmpi.org/ For technical support or reporting troubleshoots please refer to the DORII Helpdesk sercice available at https://dorii-helpdesk.grid.elettra.trieste.it/

Back to top
DORII project receives funding from the EC's Seventh Framework Programme (FP7/2007-2013) under grant agreement n° RI-211693.