MPIWiz: subgroup reproducible replay of mpi applications

MPIWiz: subgroup reproducible replay of mpi applications
复制标题

DOI:
10.1145/1504176.1504213
复制
发表时间:
2009-02
期刊:
--
影响因子:
--
通讯作者:
Ruini Xue;Xuezheng Liu;Ming Wu;Zhenyu Guo;Wenguang Chen;Weimin Zheng;Zheng Zhang;G. Voelker
Ruini Xue;Xuezheng Liu;Ming Wu;Zhenyu Guo;Wenguang Chen;Weimin Zheng;Zheng Zhang;G. Voelker
中科院分区:
其他
文献类型:
--
作者:
Ruini Xue;Xuezheng Liu;Ming Wu;Zhenyu Guo;Wenguang Chen;Weimin Zheng;Zheng Zhang;G. Voelker

文献摘要

被引文献

相似文献

消息传递接口(MPI)是一种广泛使用的标准,用于管理分布式计算机上的粗粒度并发。然而,调试并行MPI应用程序一直是一项特别具有挑战性的任务,因为它们具有高度的并发执行和不确定的行为。确定性重放是解决这些挑战的潜在强大技术,现有的MPI重放工具采用数据重放或顺序重放方法。不幸的是,每种方法都有它的权衡。数据重放通过记录每条通信消息来生成大量日志大小。订单重放会生成较小的日志,但需要一起重放所有流程。我们认为,这些缺陷是阻碍确定性重放作为MPI应用程序循环调试的关键使能器被广泛采用的主要原因。本文描述了子组可再现重放(SRR),这是一种混合确定性重放方法,它既提供了数据重放和顺序重放的优点,又平衡了两者之间的权衡。SRR将所有进程划分为互不相交的组。它像在数据重放中那样记录跨越组边界的消息的内容,但像在顺序重放中那样只记录用于组内通信的消息排序。通过这种方式,SRR可以利用MPI应用中流量模式的通信局部性。在重播期间,开发人员可以单独重播每个组。SRR通过不记录组内通信来减少记录开销,并通过限制每个重放组的大小来减少重放开销。公开这些权衡为用户提供了必要的控制,使确定性重放适用于MPI应用程序。我们已经实现了一个原型MPIWiz来演示和评估SRR。MPIWiz采用重放框架,允许对库和系统调用进行透明的二进制检测。因此,MPIWiz无需修改和重新链接源代码即可重放MPI应用程序,并处理MPI和OS系统调用中的不确定性。我们的初步结果表明,与数据重放相比,MPIWiz可以将记录开销减少四倍以上,而不需要像顺序重放那样重放整个应用程序。录制会使执行时间增加27%,而应用程序的回放时间仅为其基本执行时间的53%。
Message Passing Interface (MPI) is a widely used standard for managing coarse-grained concurrency on distributed computers. Debugging parallel MPI applications, however, has always been a particularly challenging task due to their high degree of concurrent execution and non-deterministic behavior. Deterministic replay is a potentially powerful technique for addressing these challenges, with existing MPI replay tools adopting either data-replay or order-replay approaches. Unfortunately, each approach has its tradeoffs. Data-replay generates substantial log sizes by recording every communication message. Order-replay generates small logs, but requires all processes to be replayed together. We believe that these drawbacks are the primary reasons that inhibit the wide adoption of deterministic replay as the critical enabler of cyclic debugging of MPI applications. This paper describes subgroup reproducible replay (SRR), a hybrid deterministic replay method that provides the benefits of both data-replay and order-replay while balancing their trade-offs. SRR divides all processes into disjoint groups. It records the contents of messages crossing group boundaries as in data-replay, but records just message orderings for communication within a group as in order-replay. In this way, SRR can exploit the communication locality of traffic patterns in MPI applications. During replay, developers can then replay each group individually. SRR reduces recording overhead by not recording intra-group communication, and reduces replay overhead by limiting the size of each replay group. Exposing these tradeoffs gives the user the necessary control for making deterministic replay practical for MPI applications. We have implemented a prototype, MPIWiz, to demonstrate and evaluate SRR. MPIWiz employs a replay framework that allows transparent binary instrumentation of both library and system calls. As a result, MPIWiz replays MPI applications with no source code modification and relinking, and handles non-determinism in both MPI and OS system calls. Our preliminary results show that MPIWiz can reduce recording overhead by over a factor of four relative to data-replay, yet without requiring the entire application to be replayed as in order-replay. Recording increases execution time by 27% while the application can be replayed in just 53% of its base execution time.