A message passing standard for MPP and workstations

A message passing standard for MPP and workstations
复制标题

DOI:
10.1145/233977.234000
复制
发表时间:
1996-07-01
影响因子:
22.7
通讯作者:
Walker, D
Walker, D
中科院分区:
计算机科学3区
文献类型:
--
作者:
Dongarra, JJ;Otto, SW;Walker, D

文献摘要

被引文献

相似文献

美国计算机协会通讯,1996年7月/卷。39、No. 7 85多个系统最有用的功能,而不是选择一个系统作为标准。MPI源于PVM[4,5]、Express[9]、P4[1]、Zipcode[10]和PARMACS[2],以及IBM、英特尔、Meiko Scientific、Cray Research和nCube销售的系统。MPI用于指定形成并发程序的一组进程之间的通信。消息传递范式因其广泛的可移植性和可伸缩性而具有吸引力。它很容易与分布式内存多计算机和共享内存多处理器、now以及这些元素的组合兼容。消息传递不会因为网络速度的提高或共享和分布式内存组件的组合架构而过时。尽管MPI的大部分内容标准化了现有消息传递系统的常见实践,但MPI进一步定义了诸如用户定义数据类型、持久通信端口、强大的集体通信操作和通信范围界定机制等高级特性。以前的系统没有包含所有这些功能。在考虑MPI时,重要的是要理解这种努力所隐含的约束和委员会运作的实际约束,以及以下目标:•设计一个应用程序编程接口(不一定是编译器或系统实现库)。•允许有效的通信,避免内存到内存的复制,支持计算和通信的重叠,并在可用的情况下卸载到通信协处理器。•允许在异构环境中实现。
COMMUNICATIONS OF THE ACM July 1996/Vol. 39, No. 7 85 most useful features of several systems, rather than choosing a single system as the standard. MPI has roots in PVM [4, 5], Express [9], P4 [1], Zipcode [10], and PARMACS [2], and in systems sold by IBM, Intel, Meiko Scientific, Cray Research, and nCube. MPI is used to specify the communication among a set of processes forming a concurrent program. The message-passing paradigm is attractive because of its wide portability and scalability. It is easily compatible with both distributed-memory multicomputers and sharedmemory multiprocessors, with NOWs, and with combinations of these elements. Message passing will not be made obsolete by increased network speeds or by architectures combining shared and distributed-memory components. Though much of MPI standardizes the common practice of existing message-passing systems, MPI goes further to define such advanced features as user-defined datatypes, persistent communication ports, powerful collective communication operations, and scoping mechanisms for communication. No previous system incorporated all these features. In considering MPI, it is important to understand the constraints implied by such an endeavor and the practical constraints under which the committee operated, as well as the following goals:• Design an application programming interface (not necessarily for compilers or a system implementation library).• Allow efficient communication, avoiding memory-to-memory copying and supporting overlap of computation and communication and offload to communication coprocessors where available.• Allow implementations in heterogeneous environments.