Results 1 - 10
of
16
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
MPI: A Message-Passing Interface Standard
, 1994
"... process naming to allow libraries to describe their communication in terms suitable to their own data structures and algorithms, ffl The ability to "adorn" a set of communicating processes with additional user-defined attributes, such as extra collective operations. This mechanism should provide a ..."
Abstract
-
Cited by 250 (0 self)
- Add to MetaCart
process naming to allow libraries to describe their communication in terms suitable to their own data structures and algorithms, ffl The ability to "adorn" a set of communicating processes with additional user-defined attributes, such as extra collective operations. This mechanism should provide a means for the user or library writer effectively to extend a message-passing notation. In addition, a unified mechanism or object is needed for conveniently denoting communication context, the group of communicating processes, to house abstract process naming, and to store adornments. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 5.1. INTRODUCTION 131 5.1.2 MPI's Support for Libraries The corresponding concepts that MPI provides, specifically to support robust libraries, are as follows: ffl Contexts of communication, ffl Groups of processes, ffl Virtual topologies, ffl Attribute caching, ffl Commun...
The Data-Distribution-Independent Approach to Scalable Parallel Libraries
, 1995
"... this document in the required format ..."
Document for a Standard Message-Passing Interface
, 1997
"... Introduction Current Status: No votes Collective communication capabilities are here for MPI-2, covering these areas: ffl Extension of MPI collective operations to intercommunicators ffl Extension of MPI collective operations to in-place buffers. ffl Two-phase collective communication of a limi ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
Introduction Current Status: No votes Collective communication capabilities are here for MPI-2, covering these areas: ffl Extension of MPI collective operations to intercommunicators ffl Extension of MPI collective operations to in-place buffers. ffl Two-phase collective communication of a limited form and a limited set of operations. ffl A generalized all-to-all collective operation 6.2 Two-phase Collective Communication Current Status: no votes In some applications, better performance can be achieved by separating the initiation and completion of a collective operation. For example, in some numerical applications, better performance can be achieved by overlapping other work (both computation and communication) with an MPI Allreduce. At the same time, the full generality of non-blocking collectiv
The Multicomputer Toolbox - First-Generation Scalable Libraries
, 1993
"... "First-generation" scalable parallel libraries have been achieved, and are maturing, within the Multicomputer Toolbox. The Toolbox includes sparse, dense, iterative linear algebra, a stiff ODE/DAE solver, and an open software technology for additional numerical algorithms, plus an inter-architecture ..."
Abstract
-
Cited by 10 (8 self)
- Add to MetaCart
"First-generation" scalable parallel libraries have been achieved, and are maturing, within the Multicomputer Toolbox. The Toolbox includes sparse, dense, iterative linear algebra, a stiff ODE/DAE solver, and an open software technology for additional numerical algorithms, plus an inter-architecture Makefile mechanism for building applications. We have devised C-based strategies for useful classes of distributed data structures, including distributed matrices and vectors. The underlying Zipcodemessage passing system has enabled process-grid abstractions of multicomputers, communication contexts, and process groups, all characteristics needed for building scalable libraries, and scalable application software. We describe the data-distribution-independent approach to building scalable libraries, which is needed so that applications do not unnecessarily have to redistribute data at high expense. We discuss the strategy used for implementing data-distribution mappings. We also describe hig...
The Multicomputer Toolbox: Current and Future Directions
- Proceedings of the Scalable Parallel Libraries Conference. IEEE Computer
, 1993
"... The Multicomputer Toolbox is a set of "firstgeneration " scalable parallel libraries. The Toolbox includes sparse, dense, direct and iterative linear algebra, a stiff ODE/DAE solver, and an open software technology for additional numerical algorithms. The Toolbox has an object-oriented design; C-bas ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
The Multicomputer Toolbox is a set of "firstgeneration " scalable parallel libraries. The Toolbox includes sparse, dense, direct and iterative linear algebra, a stiff ODE/DAE solver, and an open software technology for additional numerical algorithms. The Toolbox has an object-oriented design; C-based strategies for classes of distributed data structures (including distributed matrices and vectors) as well as uniform calling interfaces are defined. At a high level in the Toolbox, data-distributionindependence (DDI) support is provided. DDI is needed to build scalable libraries, so that applications do not have to redistribute data before calling libraries. Data-distribution-independent mapping functions implement this capability. Data-distribution-independent algorithms are sometimes more efficient than fixeddata -distribution counterparts, because redistribution of data can be avoided. Underlying the system is a "performance and portability layer," which includes interfaces to sequent...
Explicit Parallel Programming in C++ based on the Message-Passing Interface (MPI)
, 1996
"... Introduction Explicit parallel programming using the Message Passing Interface (MPI), a de facto standard created by the MPI Forum [15], is quickly becoming the strategy of choice for performance-portable parallel application programming on multicomputers and networks of workstations, so it is inev ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
Introduction Explicit parallel programming using the Message Passing Interface (MPI), a de facto standard created by the MPI Forum [15], is quickly becoming the strategy of choice for performance-portable parallel application programming on multicomputers and networks of workstations, so it is inevitably of interest to C++ programmers who use such systems. MPI programming is currently undertaken in C and/or Fortran-77, via the language bindings defined by the MPI Forum [15]. While the committee deferred the job of defining a C++ binding for MPI to MPI-2 [16], it is already possible to develop parallel programs in C++ using MPI, with the added help of one of several support libraries [2, 6, 13]. These systems all strive to enable immediate C++ programming based on MPI. The first such enabling system, MPI++, is the focus of this chapter. MPI++ was an early effort on our part to let us leverage MPI while programming in C++. Here this system is, to a large extent, our vehicle to i
Inter-communicator Extensions to MPI in the MPIX (MPI eXtension) Library
, 1994
"... MPI is the new standard for multicomputer and cluster message passing introduced by the Message-Passing Interface Forum (MPIF) in April 1994. This paper describes the current inter-communicator interface found in MPI and the reasons for its current design. We also motivate the need for additional in ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
MPI is the new standard for multicomputer and cluster message passing introduced by the Message-Passing Interface Forum (MPIF) in April 1994. This paper describes the current inter-communicator interface found in MPI and the reasons for its current design. We also motivate the need for additional inter-communicator operations and introduce the extensions we have included in MPIX (MPI eXtension Library), a library of extensions to MPI that we are currently developing. Inter-communicators may be used for a variety of purposes such as in client/server applications (i.e., I/O and graphics servers) and for process management in dynamic process environments and multi-protocol implementations; MPI's definitions are unnecessarily restrictive, so we extend them here. We discuss the inter-communicator collective operations defined in MPIX and illustrate their use. We also discuss additional inter-communicator construction routines not in the original MPI interface, but that are provided in MPIX....
Efficient MultiThreaded User-Space Transport for Network Computing: Design and Test of the TRAP Protocol
- Journal of Parallel and Distributed Computing
, 1997
"... We present a novel user-space and transaction-oriented protocol for use in high-performance distributed computing applications. The TRAP protocol is designed to support low-latency communication in multithreaded message-passing libraries. To demonstrate the viability of TRAP, we implemented and test ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
We present a novel user-space and transaction-oriented protocol for use in high-performance distributed computing applications. The TRAP protocol is designed to support low-latency communication in multithreaded message-passing libraries. To demonstrate the viability of TRAP, we implemented and tested the fully operational protocol and conducted several experiments comparing its runtime performance with that of popular communication libraries. For fairness, the experiments did not exploit the TRAP protocol's multithreading capability at the application level. The results show that a TRAP-based communication library can, in various scenarios, outperform extant libraries based on in-kernel or user-level protocols. The results of these experiments also show that the TRAP protocol exhibits scalability characteristics, with respect to number of computing and communicating nodes, that is superior to regular in-kernel TCP/IP and other user-space protocol implementations. Keywords: Network Com...
Migrating from PVM to MPI, part I: The Unify System
"... This paper presents a new kind of portability system, Unify, which modifies the PVM message passing system to provide (currrently a subset of) the Message Passing Interface (MPI) standard notation for message passing. Unify is designed to reduce the effort of learning MPI while providing a sensible ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
This paper presents a new kind of portability system, Unify, which modifies the PVM message passing system to provide (currrently a subset of) the Message Passing Interface (MPI) standard notation for message passing. Unify is designed to reduce the effort of learning MPI while providing a sensible means to make use of MPI libraries and MPI calls while applications continue to run in the PVM environment. We are convinced that this strategy will reduce the costs of porting completely to MPI, while providing a gradual environment within which to evolve. Furthermore, it will permit immediate use of MPI-based parallel libraries in applications, even those that use PVM for user code. We describe several paradigms for supporting MPI and PVM message passing notations in a single environment, and note related work on MPI and PVM implementations. We show the design options that existed within our chosen paradigm (which is an MPI interface added to the base PVM system), and why we chose that par...

