Absoft HPC SDK - LAM/MPI


Product Overview

The Absoft High Performance Computing Software Development Kit (HPC SDK) and the Absoft Roll for Platform Rocks both include LAM/MPI at no additional charge as the default MPI implementation. LAM/MPI is a high quality implementation of the Message Passing Interface (MPI) Standard, including all of MPI-1.2 and much of MPI-2 and superior support for SMP environments. LAM/MPI provides high performance on a variety of platforms, from small off-the-shelf single CPU clusters to large SMP machines with high speed networks, even in heterogenous environments. It includes a persistent runtime environment for parallel programs, SMP-aware collectives, one-way communication, C++ bindings, MPI-IO and an extensible component architecture. The LAM/MPI distribution included with the HPC SDK (on POWER, Xeon, and Opteron) is fully configured for the PathScale, IBM XL, Intel and Absoft compilers and optimized for use on each architecture. In addition to high performance, LAM/MPI provides a number of usability features key to developing large scale MPI applications. Intended for production as well as research use, LAM/MPI includes a rich set of features for system administrators, parallel programmers, application users, and parallel computing researchers. More...

Table of Contents Purchase Options

Product information
- Key Benefits
- Key Features
- Product Description
- Special Features
- What's New - in this release
- Ease of Use
- Availability Date

Related information
- Debugger Options
- Compatibility & Companion Products
- Documentation
- Technical Support
- Order Information
- Terms and Conditions
- Additional Information / Notices

HPC SDK Pricing
- HPC SDK on POWER
- HPC SDK on Xeon
- HPC SDK on Opteron


Key Benefits
  • Included at no additional charge with the HPC SDK (on POWER, Xeon, and Opteron)
  • Easily port legacy code to parallel code for use on clusters
  • Fully configured for the PathScale, Intel, IBM XL and Absoft compilers and optimized for each individual architecture
  • Applications can be checkpointed to disk and restarted using a 3rd party single-process checkpoint/restart toolkit
  • Fast job startup - Even for very large number of nodes, MPI application startup is on the order of a couple of seconds
  • Supports TCP, Myrinet and Infiniband for high performance communication
  • When using the SMP-aware collectives, performance increases can be seen with little or no changes in user applications.
  • System Services Interface (SSI) provides an extensible component architecture for LAM/MPI
  • With the Absoft Common Installer, LAM/MPI becomes easy to install and start using right away!
Back to top

Key Features
  • LAM/MPI offers high performance on multiple platforms, including Linux, Sun Solaris, SGI IRIX, IBM AIX, HP-UX, and Mac OS X
  • Supports multiple communication interconnects such as shared memory, Gigabit Ethernet, Infiniband and Myrinet.
  • LAM/MPI implements much of the Interoperable MPI (IMPI) standard, intended to allow an MPI application to execute over multiple MPI implementations. Use of IMPI allows users to obtain the best performance possible, even in a heterogeneous environment.
  • Run-time modification of configuration and environment
  • SMP-aware collectives for improved performance on Multi-processor nodes
  • With LAM/MPI 7.1, almost every parameter in LAM/MPI can be altered at run-time -- environment variables or flags to mpirun -- make tuning much simpler. The addition of LAM/MPI's System Services Interface (SSI) allows RPI (the network transport used for MPI point-to-point communications) selection to be made at run-time rather than compile-time.
  • LAM/MPI includes the System Services Interface (SSI), providing an extensible component architecture for LAM/MPI.

Back to top

Product Description

LAM/MPI is a high quality implementation of the Message Passing Interface (MPI) Standard, including all of MPI-1.2 and much of MPI-2. LAM/MPI provides high performance on a variety of platforms, from small off-the-shelf single CPU clusters to large SMP machines with high speed networks, even in heterogenous environments. It includes a persistent runtime environment for parallel programs, SMP-aware collectives, one-way communication, C++ bindings, MPI-IO and an extensible component architecture. The LAM/MPI distribution included at no additional charge with the HPC SDK is fully configured for the PathScale, Intel, IBM XL and Absoft compilers and optimized for use on each individual architecture. In addition to high performance, LAM/MPI provides a number of usability features key to developing large scale MPI applications. Intended for production as well as research use, LAM/MPI includes a rich set of features for system administrators, parallel programmers, application users, and parallel computing researchers.

History of LAM/MPI

LAM/MPI was originally developed at the Ohio Supercomputing Center. Since then, the original members of the LAM Team moved to other jobs, and LAM became an orphaned project. The Laboratory for Scientific Computing (LSC) at the University of Notre Dame, headed by Dr. Andrew Lumsdaine, adopted LAM and hosted it in its servers.

Soon after LAM was adopted by Notre Dame, version 6.2b was released, which contained some unreleased work from the original LAM Team, and a few contributions from the new Notre Dame LAM Team. Version 6.2b proved to be stable and robust in a variety of UNIX environments.

Development on LAM has continued by the Notre Dame LAM Team; the release of 6.3 included several new debugging features for user MPI programs, new environmental controls, and a variety of bug fixes from the original 6.2b release. Debugging parallel programs, which has been problematic in the past, is now much easier due to relaxations in LAM's process model.

In the fall of 2001, Dr. Lumsdaine and the LSC moved to Indiana University. The LSC was renamed the Open Systems Laboratory (OSL) and all LSC projects, including LAM, moved from Notre Dame to Indiana with Dr. Lumsdaine.

LAM/MPI is intended to be an open implementation of MPI. Since version 6.5.5, LAM/MPI has been licensed under the familiar revised BSD license.

Back to top

What's New

LAM 7.1 provides a number of new features designed to improve both the user experience and performance of MPI applications. As with any MPI implementation, no changes to applications should be needed to take advantage of the new features introduced in 7.1.

SSI modules as Dynamic Shared Objects (DSO)
SSI modules can be built as part of the MPI libraries that are linked into user applications or as standalone dynamic shared objects (DSOs). When compiled as DSOs, all SSI modules are installed in $prefix/lib/lam. New modules can be added to or removed from an existing LAM installation simply by putting new DSOs in that directory (there is no need to recompile or relink user applications).

Infiniband Support
With LAM/MPI 7.1 it is possible to make use of the high bandwidth and low latency of Infiniband networks. LAM/MPI provides Infiniband support using the Mellanox Verbs Interface (VAPI). Currenly LAM/MPI uses the Infiniband send/receive protocol for tiny messages and RDMA for long messages. RDMA for tiny messages will be explored in the near future.

Integration with SLURM
LAM/MPI now provides support for SLURM batch queue systems. SLURM contains a native system for launching applications across the nodes that it manages. The LAM/MPI SLURM boot module when used will automatically make use of SLURM's native job interface to start LAM daemons.

BProc 4.0 Support
BProc is a set of kernel modifications, utilities and libraries which allow a user to start processes on other machines in a Beowulf-style cluster. LAM/MPI 7.1 now also supports BProc 4.0.

Improved Collectives
Several collective algorithms have been made SMP aware, to exploit the performance of clusters of SMPs. Shared memory collective algorithms have also been introduced to take advantage of the scenario when all processes are on the same node. By default, usage of shared memory collectives is turned off. See the User Documentation on how to turn this feature on at runtime. Collective operations are now also supported on inter-communicators.

Improved Myrinet Support
LAM/MPI 7.1 now addresses all known Myrinet RPI (gm module) problems, such as - fixing the incorrect handling of timed out packets, performance improvement by removing the "short" message size and just keeping "tiny" and "long" sizes, allowing non-default location of gm library to be specified during installation and so on. Please have a look at the HISTORY file in the LAM/MPI source for an exhaustive list of improvements.

Back to top

MPI-1 Support
LAM/MPI provides a complete implementation of the MPI 1.2 standard, ensuring source-code compatibility with any other implementation of the standard. A recompile of the application is all that is required for execution of any MPI-1 application under LAM/MPI.

MPI-2 Support
LAM/MPI includes support for large portions of the MPI-2 standard. A partial list of the most commonly used features LAM supports is provided below:

  • Process Creation and Management
  • One-sided Communication (partial implementation)
  • MPI I/O (using ROMIO)
  • MPI-2 Miscellany:
    • mpiexec
    • Thread Support (MPI_THREAD_SINGLE - MPI_THREAD_SERIALIZED)
    • User functions at termination
    • Language interoperability
  • C++ Bindings

Checkpoint/Restart
MPI applications running under LAM/MPI can be checkpointed to disk and restarted at a later time. LAM requires a 3rd party single-process checkpoint/restart toolkit for actually checkpointing and restarting a single MPI process - LAM takes care of the parallel coordination. Currently, the Berkeley Labs Checkpoint/Restart package (Linux only) is supported. The infrastructure allows for easy addition of new checkpoint/restart packages.

Fast Job Startup
LAM/MPI utilizes a small, user-level daemon for process control, output forwarding, and out-of-band communication. The user-level daemon is started at the beginning of a session using lamboot, which can use rsh/ssh, TM (OpenPBS / PBS Pro), SLURM, or BProc to remotely start the daemons. Although the time for lamboot to execute can be long on large platforms using rsh/ssh, the start-up time is amortized as applications are executed - mpirun does not use rsh/ssh, instead using the LAM daemons. Even for very large number of nodes, MPI application startup is on the order of a couple of seconds.

High Performance Communication
LAM/MPI provides a number of options for MPI communication with very little overhead. The TCP communication system provides near-TCP stack bandwidth and latency, even at Gigabit Ethernet speeds. Two shared memory communication channels are available, each using TCP for remote-node communication. LAM/MPI 7.1 and later support Myrinet networks using the GM interface. Using Myrinet provides significantly higher bandwidth and lower latency than TCP. LAM/MPI 7.1 also provides support for high-speed, low-latency Infiniband networks using the Mellanox Verbs Interface (VAPI).

Run-time Tuning and RPI Selection
LAM/MPI has always supported a wide number of tuning parameters. Unfortunately, most could only be set at compile time, leading to painful application tuning. With LAM/MPI 7.1, almost every parameter in LAM can be altered at run-time -- environment variables or flags to mpirun -- make tuning much simpler. The addition of LAM's System Services Interface (SSI) allows RPI (the network transport used for MPI point-to-point communications) selection to be made at run-time rather than compile-time. Rather than recompiling LAM 4 times to decide which transport gives best performance for an application, all that is required is a single flag to mpirun.

SMP-Aware Collectives
The use of clusters of SMP machines is a growing trend in the clustering world. With LAM 7.1, many common collective operations are optimized to take advantage of the higher communication speed between processes on the same machine. When using the SMP-aware collectives, performance increases can be seen with little or no changes in user applications. Be sure to read the LAM User's Guide for important information on exploiting the full potential of the SMP-aware collectives.

Integration with PBS
PBS (either OpenPBS or PBS Pro) provides scheduling services for many of the high performance clusters in service today. By using the PBS-specific boot mechanisms, LAM is able to provide process accounting and job cleanup to MPI applications. As an added bonus to MPI users, lamboot execution time is drastically reduced when compared to rsh/ssh.

Integration with BProc
The BProc distributed process space provides a single process space for an entire cluster. It also provides a number of mechanisms for starting applications not available on the compute nodes of a cluster. LAM's BProc support supports booting under the BProc environment, even when LAM is not installed on the compute nodes -- LAM will automatically migrate the required support out to the compute nodes. MPI applications still must be available on all compute nodes (although the -s option to mpirun eliminates this requirement).

Globus Enabled
LAM 7.1 includes beta support for execution in the Globus Grid environment. Be sure to read the release notes in the User's Guide for important restrictions on your Globus environment.

Extensible Component Architecture
LAM 7.1 is the first LAM release to include the System Services Interface (SSI), providing an extensible component architecture for LAM/MPI. Currently, "drop-in" modules are supported for booting the LAM run-time environment, MPI collectives, Checkpoint/Restart, and MPI transport (RPI). Selection of a component is a run-time decision, allowing for user selection of the modules that provide the best performance for a specific application.

Easy Application Debugging
Debugging with LAM/MPI is easy. Support for parallel debuggers such as the Distributed Data Debugging Tool and the Etnus TotalView parallel debugger allows users straight-forward debugging of even the most complicated MPI applications. LAM is also capable of starting standard single-process debuggers for quick debugging of a subset of processes (see the LAM/MPI FAQ). A number of tools, including XMPI are available for communication debugging and analysis.

Interoperable MPI
LAM implements much of the Interoperable MPI (IMPI) standard, intended to allow an MPI application to execute over multiple MPI implementations. Use of IMPI allows users to obtain the best performance possible, even in a hetergenous environment.

Ease of Use

LAM (Local Area Multicomputer) is an open source implementation of the Message Passing Interface (MPI) standard. The MPI standard is the de facto industry standard for parallel applications. It was designed by leading industry and academic researchers, and builds upon two decades of parallel programming experience.

Implementations of MPI (such as LAM) provide an API of library calls that allow users to pass messages between nodes of a parallel application (along with a bunch of other bells and whistles). See the MPI Forum web site for more details about MPI.

LAM/MPI provides users not only with the standard MPI API, but also with several debugging and monitoring tools. While specifically targeted at heterogeneous clusters of UNIX workstations, LAM runs on a wide variety of UNIX platforms, from desktop workstations to large "supercomputers" (and everything in between).

LAM includes a full implementation of the MPI-1 standard as well as many elements of the MPI-2 standard. The release notes for the latest version of LAM include a fuller list of features.

The LAM/MPI Installation Guide and User's Guide (both included with the LAM/MPI distribution and available on the LAM/MPI web site) and lam(7) manual page is helpful in defining what MPI is, and how LAM relates to MPI. Novice users are strongly encouraged to read the User's Guide.

Back to top

Availability Date

December 19 2004
  • Electronic Delivery full Media Documentation for HPC SDK

December 31 2004

  • Mail orders shipped for HPC SDK
Back to top

Order Information

Product name: LAM/MPI for Linux on Power

Product part number(s):

        LMPL3CSS         LAM/MPI 7.1.1 for 32-bit Linux on Power HPC SDK · Commercial
        LMPL4CSS         LAM/MPI 7.1.1 for 64-bit Linux on Power HPC SDK · Commercial

        LMPL3ASS         LAM/MPI 7.1.1 for 32-bit Linux on Power HPC SDK · Academic
        LMPL4ASS         LAM/MPI 7.1.1 for 64-bit Linux on Power HPC SDK · Academic

Pricing:
- POWER
- Xeon
- Opteron

Orders: Contact sales

Back to top

Terms and Conditions

Please see the HPC SDK Terms and Conditions for more information.

Software License for LAM/MPI

Copyright (c) 2001-2004 The Trustees of Indiana University. All rights reserved.
Copyright (c) 1998-2001 University of Notre Dame. All rights reserved.
Copyright (c) 1994-1998 The Ohio State University. All rights reserved.

Indiana University has the exclusive rights to license this product under the following license.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. All redistributions of source code must retain the above copyright notice, the list of authors in the original source code, this list of conditions and the disclaimer listed in this license;
  2. All redistributions in binary form must reproduce the above copyright notice, this list of conditions and the disclaimer listed in this license in the documentation and/or other materials provided with the distribution;
  3. Any documentation included with all redistributions must include the following acknowledgement:
    "This product includes software developed at the Ohio Supercomputer Center at The Ohio State University, the University of Notre Dame and the Pervasive Technology Labs at Indiana University with original ideas contributed from Cornell University. For technical information contact Andrew Lumsdaine at the Pervasive Technology Labs at Indiana University. For administrative and license questions contact the Advanced Research and Technology Institute at 1100 Waterway Blvd. Indianapolis, Indiana 46202, phone 317-274-5905, fax 317-274-5902."
    Alternatively, this acknowledgement may appear in the software itself, and wherever such third-party acknowledgments normally appear.
  4. The name "LAM" or "LAM/MPI" shall not be used to endorse or promote products derived from this software without prior written permission from Indiana University. For written permission, please contact Indiana University Advanced Research & Technology Institute.
  5. Products derived from this software may not be called "LAM" or "LAM/MPI", nor may "LAM" or "LAM/MPI" appear in their name, without prior written permission of Indiana University Advanced Research & Technology Institute.

Indiana University provides no reassurances that the source code provided does not infringe the patent or any other intellectual property rights of any other entity. Indiana University disclaims any liability to any recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise.

LICENSEE UNDERSTANDS THAT SOFTWARE IS PROVIDED "AS IS" FOR WHICH NO WARRANTIES AS TO CAPABILITIES OR ACCURACY ARE MADE. INDIANA UNIVERSITY GIVES NO WARRANTIES AND MAKES NO REPRESENTATION THAT SOFTWARE IS FREE OF INFRINGEMENT OF THIRD PARTY PATENT, COPYRIGHT, OR OTHER PROPRIETARY RIGHTS. INDIANA UNIVERSITY MAKES NO WARRANTIES THAT SOFTWARE IS FREE FROM "BUGS", "VIRUSES", "TROJAN HORSES", "TRAP DOORS", "WORMS", OR OTHER HARMFUL CODE. LICENSEE ASSUMES THE ENTIRE RISK AS TO THE PERFORMANCE OF SOFTWARE AND/OR ASSOCIATED MATERIALS, AND TO THE PERFORMANCE AND VALIDITY OF INFORMATION GENERATED USING SOFTWARE.

Indiana University has the exclusive rights to license this product under this license.

Back to top

Compatibility & Companion Products

Fortran 95 for Linux on POWER™ and x64
IBM XL Fortran for Linux on POWER™
IBM XL C/C++ for Linux on POWER™
PathScale EKOPath™ Compiler Suite Intel Fortran Compiler for Linux
Intel C/C++ Compiler for Linux
HPC SDK for Linux on POWER™, Xeon, and Opteron
Absoft Common Installer for Linux on POWER™
Absoft Modules Environment for Linux on POWER™
Common License Manager for Linux on POWER™

Additional third party products can be found on Fortran resources.


Back to top

Technical Support

Full technical support from friendly technicians is included at no additional charge with each new product from Absoft. To ensure your software continues running at maximum efficiency, all registered Absoft customers can download service packs and quick fixes at no charge. Customers and partners can subscribe to Absoft's free electronic mailing list to receive electronic bulletins and update notices advising of new updates, changes in product releases, new product announcements and other news.

Back to top

Documentation

User Guide

Product Literature
Presentations
White Papers

Back to top

Debugger Options
  • Fx2 Debugger - now included with HPC SDK

Back to top

Additional Information / Notices

None

Back to top

Pricing

- POWER
- Xeon
- Opteron

Back to top