Modern networked computing environments and applications often require---or can benefit from---the use of multiple communication substrates, transport mechanisms, and protocols, chosen according to where communication is directed, what is communicated, or when communication is performed. We propose techniques that allow multiple communication methods to be supported transparently in a single application, with either automatic or user-specified selection criteria guiding the methods used for each communication. We explain how communication link and remote service request mechanisms facilitate the specification and implementation of multimethod communication. These mechanisms have been implemented in the Nexus multithreaded runtime system, and we use this system to illustrate solutions to various problems that arise when implementing multimethod communication. We also illustrate the application of our techniques by describing a multimethod, multithreaded implementation of the Message Passing Interface (MPI) standard, constructed by integrating Nexus with the Argonne MPICH library. Finally, we present the results of experimental studies that reveal performance characteristics of multimethod communication, the Nexus-based MPI implementation, and a large scientific application running in a heterogeneous networked environment. 1
|
864
|
Implementing remote procedure calls
– Birrell, Nelson
- 1984
|
|
739
|
Using MPI: Portable Parallel Programming with the Message Passing Interface, 2nd edition
– Gropp, Lusk, et al.
- 1999
|
|
734
|
Applied Cryptography
– Schneier
- 1996
|
|
499
|
A highperformance, portable implementation of the MPI Message-Passing Interface standard
– Gropp, Lusk, et al.
- 1996
|
|
301
|
Internetworking with TCP/IP
– Comer
- 1991
|
|
291
|
High Performance Messaging on Workstations: Illinois Fast Messages (FM) for Myrinet
– Pakin, Lauria, et al.
- 1995
|
|
208
|
C.—“Gigabit Networking
– Partridge
- 1994
|
|
207
|
The Nexus approach to integrating multithreading and communication
– Foster, Kesselman, et al.
- 1996
|
|
204
|
Programming languages for distributed computing systems
– Bal, Steiner, et al.
- 1989
|
|
157
|
A dynamic network architecture
– O’Malley, Peterson
- 1992
|
|
147
|
Fortran M: A language for modular parallel programming
– Foster, Chandy
- 1992
|
|
110
|
Monitors, Message, and Clusters: The p4 Parallel Programming System
– Butler, Lusk
- 1994
|
|
96
|
A framework for protocol composition in Horus
– Renesse, Birman, et al.
- 1995
|
|
92
|
Design and Performance of Horus: A Lightweight Group Communication System
– Renesse, Takako, et al.
- 1994
|
|
74
|
On the design of Chant: A talking threads package
– Haines, Cronk, et al.
- 1994
|
|
74
|
Culler Active Message Applications Programming Interface and Communication Subsystem Organization
– Mainwaring, E
- 1996
|
|
64
|
Active Messages: a Mechanism for Integrated Communication and Computation
– Eicken, Culler
- 1992
|
|
58
|
CC++: A declarative concurrent object oriented programming notation
– Chandy, Kesselman
- 1993
|
|
55
|
PVM: Parallel virtual machine--A user's guide and tutorial for networked parallel computing
– Geist, Beguelin, et al.
- 1994
|
|
55
|
Optimistic active messages: A mechanism for scheduling communication with computation
– Wallach, Hsieh, et al.
- 1995
|
|
51
|
Panda: A portable platform to support parallel programming languages
– Bhoedjang, Ruhl, et al.
- 1993
|
|
45
|
Overview of the I-WAY: Wide area visual supercomputing
– DeFanti, Foster, et al.
- 1996
|
|
39
|
A structured TCP in Standard ML
– Biagioni
- 1994
|
|
38
|
TPVM: Distributed concurrent computing with lightweight processes
– Ferrari, Sunderam
- 1998
|
|
35
|
Flexible protocol stacks
– Tschudin
- 1991
|
|
33
|
Improving the Performance of Message-Passing Applications by Multithreading
– Felten, McNamee
- 1992
|
|
29
|
An abstract device definition to support the implementation of a high-level message-passing interface
– Gropp, Lusk
- 1993
|
|
28
|
Design and performance of a scalable parallel community climate model
– Drake, Foster, et al.
- 1995
|
|
26
|
Near-Real-Time Satellite Image Processing: Metacomputing in CC
– Lee, Kesselman, et al.
- 1996
|
|
25
|
Sharing visualization experiences among remote virtual environments
– Disz, Papka, et al.
- 1995
|
|
24
|
Multimethod communication for high-performance metacomputing applications
– Foster, Geisler, et al.
- 1996
|
|
23
|
Remote engineering tools for the design of pollution control systems for commercial boilers
– Diachin, Freitag, et al.
- 1996
|
|
22
|
Mpich working note: Creating a new mpich device using the channel interface
– Gropp, Lusk
|
|
20
|
Interconnecting Heterogeneous Computer Systems". Proc. European UNIX systems User Group A u w '86
– Black, Lazowska
- 1986
|
|
19
|
A secure communications infrastructure for high-performance distributed computing
– Foster, Karonis, et al.
- 1997
|
|
17
|
MPI on the I-WAY: A wide-area, multimethod implementation of the Message Passing Interface
– Foster, Geisler, et al.
- 1996
|
|
11
|
Ropes: Support for Collective Operations Among Distributed Threads
– Haines, Mehrotra, et al.
- 1995
|
|
9
|
et al. Distribution of a Coupled-ocean General Circulation Model across high-speed networks
– Mechoso
- 1991
|
|
6
|
et al. Galaxies collide on the I-WAY: An example of heterogeneous wide-area collaborative supercomputing
– Norman
- 1996
|
|
4
|
Generalized communicators in the Message Passing Interface
– Foster, Kesselman, et al.
- 1996
|
|
4
|
Extending the message passing interface
– Skjellum, Doss, et al.
- 1994
|
|
3
|
P1003.1c/D10: Draft standard for information technology -- portable operating systems interface (POSIX
– IEEE
- 1994
|