Results 1 -
4 of
4
A high-performance, portable implementation of the MPI message passing interface standard
- Parallel Computing
, 1996
"... MPI (Message Passing Interface) is a specification for a standard library for message passing that was defined by the MPI Forum, a broadly based group of parallel computer vendors, library writers, and applications specialists. Multiple implementations of MPI have been developed. In this paper, we d ..."
Abstract
-
Cited by 651 (37 self)
- Add to MetaCart
MPI (Message Passing Interface) is a specification for a standard library for message passing that was defined by the MPI Forum, a broadly based group of parallel computer vendors, library writers, and applications specialists. Multiple implementations of MPI have been developed. In this paper, we describe MPICH, unique among existing implementations in its design goal of combining portability with high performance. We document its portability and performance and describe the architecture by which these features are simultaneously achieved. We also discuss the set of tools that accompany the free distribution of MPICH, which constitute the beginnings of a portable parallel programming environment. A project of this scope inevitably imparts lessons about parallel computing, the specification being followed, the current hardware and software environment for parallel computing, and project management; we describe those we have learned. Finally, we discuss future developments for MPICH, including those necessary to accommodate extensions to the MPI Standard now being contemplated by the MPI Forum. 1
Sowing MPICH: A Case Study in the Dissemination of a Portable Environment for Parallel Scientific Computing
- IJSA
, 1996
"... MPICH is an implementation of the MPI specification for a standard message-passing library interface. In this article we focus on the lessons learned from preparing MPICH for diverse parallel computing environments. These lessons include how to prepare software for configuration in unknown environme ..."
Abstract
-
Cited by 16 (10 self)
- Add to MetaCart
MPICH is an implementation of the MPI specification for a standard message-passing library interface. In this article we focus on the lessons learned from preparing MPICH for diverse parallel computing environments. These lessons include how to prepare software for configuration in unknown environments; how to structure software to absorb contributions by others; how to automate the preparation of man pages, Web pages, and other documentation; how to automate prerelease testing for both correctness and performance; and how to manage the inevitable problem reports with a minimum of resources for support.
Exploiting Existing Software in Libraries: Successes, Failures, and Reasons Why
, 1998
"... The PETSc (Portable Extensible Tools for Scientific computing) library arose from research into domain decomposition methods which require combining many different solutions in a single application. The initial efforts tried to use existing numerical software but had limited success. The problems ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
The PETSc (Portable Extensible Tools for Scientific computing) library arose from research into domain decomposition methods which require combining many different solutions in a single application. The initial efforts tried to use existing numerical software but had limited success. The problems include everything from faulty assumptions about the computing environment (e.g., how many processes there are) to implicit (yet deadly) global state. More recently, PETSc and PVODE have found a way to cooperate, and new techniques that exploit dynamically linked libraries offer a more general approach to interoperable components. The paper highlights some of the issues in building sharable component software and discussing mistakes still often made in designing, maintaining, documenting, and testing components.

