首页> 外文会议>Computer Aided Verification >Dynamic Verification of MPI Programs with Reductions in Presence of Split Operations andRelaxed Orderings
【24h】

Dynamic Verification of MPI Programs with Reductions in Presence of Split Operations andRelaxed Orderings

机译:动态验证MPI程序,减少拆分操作和宽松订单的存在

获取原文
获取原文并翻译 | 示例
获取外文期刊封面目录资料

摘要

Dynamic verification methods are the natural choice for debugging real world programs when model extraction and maintenance are expensive. Message passing programs written using the MPI library fall under this category. Partial order reduction can be very effective for MPI programs because for each process, all its local computational steps, as well as many of its MPI calls, commute with the corresponding steps of all other processes. However, when dependencies arise among MPI calls, they are often a function of the runtime state. While this suggests the use of dynamic partial order reduction (DPOR), three aspects of MPI make previous DPOR algorithms inapplicable: (ⅰ) many MPI calls are allowed to complete out of program order; (ⅱ) MPI has global synchronization operations (e.g., barrier) that have a special weak semantics; and (ⅲ) the runtime of MPI cannot, without intrusive modifications, be forced to pursue a specific interleaving because of MPI's liberal message matching rules, especially pertaining to 'wildcard receives'. We describe our new dynamic verification algorithm 'POE' that exploits the out of order completion semantics of MPI by delaying the issuance of MPI calls, issuing them only according to the formation of match-sets, which are ample 'big-step' moves. POE guarantees to manifest any feasible interleaving by dynamically rewriting wildcard receives by specific-source receives. This is the first dynamic model-checking algorithm with reductions for (a large subset of) MPI that guarantees to catch all deadlocks and local assertion violations, and is found to work well in practice.
机译:当模型提取和维护成本很高时,动态验证方法是调试实际程序的自然选择。使用MPI库编写的消息传递程序属于此类别。对于MPI程序而言,部分减少顺序可能非常有效,因为对于每个进程,其所有本地计算步骤以及其许多MPI调用都与所有其他进程的相应步骤相对应。但是,当MPI调用之间出现依赖关系时,它们通常是运行时状态的函数。虽然这建议使用动态部分降阶(DPOR),但MPI的三个方面使以前的DPOR算法不适用:(ⅰ)允许许多MPI调用以程序顺序完成; (ⅱ)MPI具有具有特殊弱语义的全局同步操作(例如,障碍); (ⅲ)由于MPI的自由消息匹配规则,特别是与“通配符接收”有关,因此,如果不进行侵入性修改,则不能强迫MPI的运行时进行特定的交织。我们描述了我们的新动态验证算法'POE',该算法通过延迟MPI调用的发布来利用MPI的无序完成语义,仅根据匹配集的形成来发布它们,这是足够的“大步”动作。 POE通过动态重写特定源接收的通配符接收来保证表现出任何可行的交织。这是第一个减少MPI(很大一部分)的动态模型检查算法,该算法可以确保捕获所有死锁和局部断言违例,并且在实践中发现效果很好。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号