MPI Related Tools and Libraries
-
Pallas
- Pallas is a leading independent software company specializing in High
Performance Computing (HPC). Pallas assisted many organizations in
migrating from sequential to parallel computing. Customers of Pallas come
from all fields: hardware manufacturers, software vendors, end users. Each
of these has benefited from Pallas's unique experience in the development
and tuning of parallel applications.
In the field of MPI development tools and implementations, Pallas
contributions comprise:
- VAMPIR - MPI performance visualization and analysis
- VAMPIRtrace - MPI profiling instrumentation
- DIMEMAS - MPI application performance prediction
- MPI-2 - first industrial MPI-2 implementation in nov. 1997
VAMPIR is currently the most succesful MPI tool product (see also
"Supercomputer European Watch", July 1997), or check references at
http://www.cs.utk.edu/~browne/perftools-review
http://www.tc.cornell.edu/UserDoc/Software/PTools/vampir/
-
ScaLAPACK
- The ScaLAPACK
library includes a subset of LAPACK (Linear
Algebra PACKage) routines redesigned for distributed memory
MIMD parallel computers. It is currently written in a SPMD stype
using explicit message passing for interprocessor communication. The
goal is to have ScaLAPACK routines resemble their LAPACK equivalents
as much as possible.
-
PGAPack
- PGAPack
is a general-purpose, data-structure-neutral, parallel
genetic algorithm library. It is intended to provide
most capabilities desired in a genetic algorithm library, in an
integrated, seamless, and portable manner.
-
ARCH
- ARCH is
a C++-based object-oriented library of tools for
parallel programming on machines using the MPI (message passing
interface) communication library. Detailed technical information
about ARCH is available as a
Cornell Theory Center Technical Report (CTC95TR288).
is also available.
-
OOMPI
- OOMPI
is an object oriented interface to the MPI-1 standard. While
OOMPI remains faithful to all the MPI-1 functionality, it offers
new object oriented abstractions which promise to expedite the MPI
programming process by allowing programmers to take full advantage of
C++ features.
-
XMPI: A Run/Debug GUI for MPI
- XMPI
is an X/Motif based graphical user interface for running and
debugging MPI programs. It is implemented on top of LAM, an MPI
cluster computing environment, but the interface is generally
independent of LAM operating concepts. You write an MPI application in
one or more MPI programs, tell XMPI about these programs and where
they are to be run, then snapshot the synchronization status of MPI
processes throughout the application execution.
-
Aztec: An Iterative Sparse Linear Solver Package
- Aztec
is an iterative library that greatly simplifies the
parallelization process when solving a sparse linear system of
equations Ax = b where A is a user supplied nxn sparse matrix, b is a
user supplied vector of length n and x is a vector of length n to be
computed. Aztec is intended as a software tool for users who want to
avoid cumbersome parallel programming details but who have large
sparse linear systems which require an efficiently utilized parallel
processing system.
-
MPIMap
- MPIMap, from
Lawrence Livermore National Laboratory, lets programmers visualize MPI
datatypes. It uses Tcl/Tk, and it runs on parallel computers that use
the MPICH implmentation of MPI. The tool lets you select one of MPI's
type constructors (such as MPI_Type_vector or MPI_Type_struct) and
enter the parameters to the constructor call. It then calls MPI to
generate the new type, extracts the type map from the resulting
structure, and presents a graphical display of the type map, showing
the offset and basic type of each element.
-
STAR/MPI
-
STAR/MPI is a system to allow binding of MPI to a generic (STAR)
interactive language. GCL/MPI is intended as an easy-to-use master-slave distributed architecture.
It combines the feedback of an interactive language (the GCL or AKCL dialect
of LISP) with the the use of MPI to take advantage of networks of
workstations.
-
Parallel Implementation of BLAS
- The
sB_BLAS package is a collection of parallel implementations
of the level 3 Basic Linear Algebra Subprograms. All codes were
written using MPI. A
paper describing this work is also available.
-
BLACS (Basic Linear Algebra Communication Subprograms) for MPI
- An "alpha test release" of the BLACS for MPI is available from
the University of Tennessee, Knoxville. For more information
contact R. Clint Whaley (rwhaley@cs.utk.edu).
-
NAG Parallel Library
- The NAG Parallel Library
is a library of numerical routines specifically produced for distributed memory
parallel machines. This library is available under MPI [or PVM] message-passing
mechanisms. It also performs well on shared memeory machines whenever efficient
implementations of MPI [or PVM] are available. It includes the following areas:
Optimisation, Dense linear algebra [including ScaLAPACK], Sparse linear algebra,
Random number generators, Quadrature, Input/Output, data distribution,
Support/utility routines.
-
DQS (Distributed Queueing System)
- DQS
now supports the launch
of MPICH (Argonne/Miss State Version of MPI) jobs and is available
by anonymous ftp.
-
Interprocessor Collective Communication (iCC)
- The Interprocessor
Collective Communication (iCC) research project started as a
research project into techniques required to develop high performance
implementations of the MPI collective communication calls.
-
PETSc Scientific Computing Libraries
-
PETSc stands for "Portable Extensible Tools for Scientific
computing." It is a library of routines for both uni- and
parallel-processor computing.
-
MSG Toolkit
-
Message-passing tools for Structured Grid communications
(MSG) is a MPI-based library intended to simplify
coding of data exchange within FORTRAN 77 codes performing data
transfers on distributed Cartesian grids. More information, the
source code, and the user's guide are available at the above
site.
-
Para++
- The
Para++ project provides a C++ interface to the MPI and PVM
message passing libraries. Their approach is to overload input
and output operators to do communication. Communication looks
like standard C++ IO.
-
Amelia Vector Template Library
- The Amelia
Vector Template Livrary (AVTL) is a polymorphic collection library for
distributed memory parallel computers. It is based on ideas from the
Standard Template Library (STL) and uses MPI for communication.
-
Parallel FFTW
- FFTW, a
high-performance, portable C library for performing FFTs in one or more
dimensions, includes
parallel, multi-dimensional FFT routines for MPI. The transforms
operate in-place for arbitrary-size arrays (of any dimensionality
greater than one) distributed across any number of processors.
Free for non-commercial use.
-
Cononical Classes for Concurrency Control
- The Cononical Classes
for Concurrency Control library contains a set of C++ classes which
implement a variety of synchronization and data transmission
paradigms. It currently supports both Intel's NX and MPI.
-
MPI Cubix
- MPI Cubix
is an I/O library for MPI applications. The semantics and
language binding reflect POSIX in its sequential aspects and MPI in its
parallel aspects. The library is built on a few POSIX I/O functions
and each of the POSIX-like Cubix functions translate directly to a
POSIX operation on a file system somewhere in the parallel machine.
The library is also built on MPI and is therefore portable to any
machine that supports both MPI and POSIX.
-
MPIX Intercommunicator Extensions
- The
MPIX Intercommunicator Extension library contains
a set of extensions to MPI that allow many functions that previously
only worked with intracommunicators to work with intercommunicators.
Extensions include support for additional intercommunciator construction
operations and intercommunicator collective operations.
-
mpC
- mpC ,
developed and implemented on the top of MPI, is a
programming environment facilitating and
supporting efficiently portable modular parallel
programming. mpC does not compete with MPI, but tries to
strengthen its advantages (portable modular programming)
and to weaken its disadvantages (a low level of parallel
primitives and difficulties with efficient portability;
efficient portability means that an application running
efficiently on a particular multiprocessor will run
efficiently after porting to other multiprocessors).
In fact, users can consider mpC as a tool facilitating the
development of complex and/or efficiently portable MPI
applications.
-
MPIRUN
-
Sam Fineberg is working on support for running multidisciplinary codes
using MPI which he calls MPIRUN.
-
You can retrieve the
MPIRUN software.
-
How to use MPIRUN on the NAS Parallel Systems
-
Multidisciplinary/Multizonal applications using MPIRUN
Last modified: Wed Oct 18 15:33:24 CDT 2000
-- Accesses since Thu May 18, 1995: