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... |
|
- 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 |
 |
|
 |
- 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.
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
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.
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
December 19 2004
- Electronic Delivery full Media
Documentation for HPC SDK
December 31 2004
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
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:
- 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;
- 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;
- 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.
- 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.
- 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
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
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
- Fx2
Debugger - now included with HPC SDK
Back
to top
|