消息传递并行编程
消息传递并行编程通过显式通信协调分布式内存机器上的进程,是大型高性能计算的主导模型。
用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
Learn & explore
视频即将推出
Definition
在消息传递并行编程中,每个进程都有自己的私有内存,进程仅通过发送和接收消息进行协作;消息传递接口(MPI)是为该模型提供点对点和集体通信原语的标准库。
Scope
本主题涵盖分布式内存并行计算机的消息传递范式:点对点发送/接收操作及其阻塞和非阻塞变体、集体操作(广播、散布/收集、归约、全部到全部)、进程组和通信器,以及事实上的MPI标准。它还涵盖了结构化成本模型,例如批量同步并行(BSP)模型,这些模型指导算法设计和性能推理。
Core questions
- 计算如何在不共享地址空间的分布式内存进程之间进行分区?
- 何时应使用集体操作替代显式点对点通信?
- 如何对并行算法的通信成本进行建模和最小化?
Key theories
- 点对点和集体通信
- MPI围绕进程之间的显式消息和优化的集体模式(广播、归约和收集)构建并行计算,其高效实现对于可扩展的分布式内存程序至关重要。
- 批量同步并行模型
- BSP模型将计算结构化为局部计算、通信和屏障同步的超步,提供了一个清晰的成本模型,连接了算法设计和消息传递硬件。
- 通信感知算法设计
- 由于在分布式内存机器上通信通常是主要的成本,因此并行算法的设计和分析旨在最小化消息量和延迟,平衡计算与通信。
Clinical relevance
MPI是超级计算机上科学模拟(气候建模、计算流体动力学、分子动力学)以及任何必须跨集群的许多分布式内存节点进行扩展的计算的支柱。
History
Valiant于1990年提出的BSP模型为并行计算提供了一种桥接抽象;MPI论坛于1994年将消息传递标准化,随后的MPI版本以及Gropp、Snir、Dongarra及其同事的参考文本使其成为高性能计算的通用语言。
Key figures
- William Gropp
- Jack Dongarra
- Marc Snir
- Leslie Valiant
Related topics
Seminal works
- gropp2014
- valiant1990
- snir1998
Frequently asked questions
- 为什么消息传递更适用于超大型并行机器?
- 大型并行计算机在物理上是分布式内存的:没有单一的共享内存可以扩展。消息传递直接匹配这种硬件,并强制程序员显式管理数据局部性,这正是实现扩展到数千甚至数百万个核心的关键。