acm-header
登录

ACM通信

研究突出了

技术视角:MPI的未来


MPI社区最近庆祝了MPI标准化工作开始25周年。上世纪90年代初的这种努力是由于大宗商品集群的出现取代了矢量机,尤金·布鲁克斯(Eugene Brooks)称之为“微型杀手的攻击”。商用集群需要与矢量系统截然不同的软件,为了满足这一需求,我们开始了两项工作:第一个工作是由高性能Fortran论坛开发的,是HPFa数据并行扩展到Fortran 90,它将提供跨矢量、SIMD和集群系统的可移植性。消息传递接口论坛(Message Passing Interface Forum)开发的第二种比较温和的方法是专门针对集群的MPIa可移植消息传递库。

MPI的努力取得了超出早期论坛成员梦想的成功。今天,所有的大型超级计算机都是商品集群,都支持MPI,基本上所有的大型科学应用程序代码;以及越来越多的数据分析代码,使用MPI。未来一代的百亿亿次系统也将如此。

MPI的早期竞争对手,包括HPF已经消失。这一成功有多个原因:MPI设计中做出了一些好的选择,它的实现相对容易,高质量实现的早期可用性,MPI库将继续在未来的HPC系统上可用的信心,以及支持多种编程风格的库解决方案的可塑性。

这一成功的一个关键原因是MPI规范的不断发展,以支持不断发展的架构和应用需求:1995年6月发布的MPI 1.1规范是一个描述128个功能的231页的文档;2015年6月发布的MPI 3.1规范是一份836页的文档,描述了451种功能。随着时间的推移,MPI开始适应线程、并行I/O和广泛的集合操作,包括非阻塞操作。


下面的文章令人信服地证明了MPI单向通信的潜力是可以实现的。


对MPI的一个主要扩展是引入了单向通信,首先在MPI 2.0中,然后在MPI 3.0中有了一些主要的增加。MPI点对点通信的主要通信范式是双边通信,其中源端的发送调用与目标端的接收调用相匹配。这种模式有缺点:复杂的发送到接收的匹配规则导致大量的软件开销,尤其是接收操作;通信和计算的重叠要求存在一个异步通信代理,它可以在正在进行的计算中并发轮询队列;发送和接收通信要么需要额外的消息复制(急切协议),要么需要发送方和接收方之间额外的握手(会合协议)。

单方面的通信只需要一个进程参与:源进程(用于Put)或目标进程(用于Get)。这已经大大减少了软件开销。它要求所涉及的进程提供本地和远程通信缓冲区的位置;这不是什么问题,因为本地和远程缓冲区之间的相同关联往往会被多次重用。它将通信和同步分离开来,因为只有两个通信进程中的一个会知道通信发生了;这通常是一个优点,因为一个同步可以覆盖多个通信。最重要的是,单方面通信,尤其是Put,与现代网络接口控制器(nic)的能力非常匹配:它们经常支持远程直接内存访问(rDMA)操作,本地和远程网卡协作将数据从本地内存复制到远程内存,除了在源节点发起传输的调用外,没有软件参与。因此,单方面的通信有可能大大减少用于通信的软件开销。

这是非常重要的,因为下一代网络和网卡将具有每秒处理数千万或数亿条消息的能力:根据目前的通信协议,这意味着通信将消耗数千万GigaOps。

下面的论文令人信服地证明了MPI单边通信的潜力是可以实现的。它为在现代体系结构上高效实现MPI单向通信提供了一个通用框架,并通过实验证明了这种实现可以显著减少通信开销并提高大规模应用程序的性能。这篇论文之所以及时且重要,有两个原因:第一,用户往往会避免MPI(或其他软件)中的新功能,除非他们有令人信服的证据证明其优势和可靠的实现;本文提供了这样的证明,并对MPI库的新版本提供了指导。其次,硬件供应商经常专注于为过去的应用程序优化未来的系统;由于双向通信是目前主要的通信范式,因此NIC设计者将重点放在加速双向通信上。该文件及时地提醒我们,必须更多地注意片面的交流。

回到顶部

作者

Marc Snir他是美国伊利诺伊大学厄巴纳-香槟分校计算机科学系的Michael Faiman教授。

回到顶部

脚注

查看所附文件,请访问doi.acm.org/10.1145/3264413


版权归作者所有。
向所有者/作者请求(重新)发布许可

数字图书馆是由计算机协会出版的。版权所有©2018 ACM, Inc。


没有发现记录

登录为完全访问
»忘记密码? *创建ACM Web帐户
文章内容:
Baidu
map