Ondrej Meca, Stanislav Böhm, M. Behálek, P. Jančar
{"title":"高级模型中定义的MPI应用程序的验证方法","authors":"Ondrej Meca, Stanislav Böhm, M. Behálek, P. Jančar","doi":"10.1109/ACSD.2016.17","DOIUrl":null,"url":null,"abstract":"Kaira is a prototyping tool for developing MPI programs (Bohm et al., Petri Nets 2014). The user of Kaira suggests a parallelization of a given sequential C++ code by creating a visual Petri-net based model, the tool then automatically generates the corresponding stand-alone MPI application. One of the tool modules enables to verify that the suggested parallelization has not introduced unexpected behaviors caused by unintended orders of communications among processes. The verification uses a state-space exploration procedure. Here we report on a new substantial enhancement of this procedure, leading to a significant reduction of the explored state space. The enhancement is based on the well-known methods of stubborn sets and ample sets, and is tailored to the use in the above mentioned visual model. Our concrete method is particularly simple but the experiments show that it works very well for practical examples from the area of scientific computing in distributed environment. The experiments also confirm that the Kaira model together with this method outperforms other tools for verifying MPI programs (w.r.t. instance-size/time).","PeriodicalId":334903,"journal":{"name":"2016 16th International Conference on Application of Concurrency to System Design (ACSD)","volume":"63 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-06-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"An Approach to Verification of MPI Applications Defined in a High-Level Model\",\"authors\":\"Ondrej Meca, Stanislav Böhm, M. Behálek, P. Jančar\",\"doi\":\"10.1109/ACSD.2016.17\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Kaira is a prototyping tool for developing MPI programs (Bohm et al., Petri Nets 2014). The user of Kaira suggests a parallelization of a given sequential C++ code by creating a visual Petri-net based model, the tool then automatically generates the corresponding stand-alone MPI application. One of the tool modules enables to verify that the suggested parallelization has not introduced unexpected behaviors caused by unintended orders of communications among processes. The verification uses a state-space exploration procedure. Here we report on a new substantial enhancement of this procedure, leading to a significant reduction of the explored state space. The enhancement is based on the well-known methods of stubborn sets and ample sets, and is tailored to the use in the above mentioned visual model. Our concrete method is particularly simple but the experiments show that it works very well for practical examples from the area of scientific computing in distributed environment. The experiments also confirm that the Kaira model together with this method outperforms other tools for verifying MPI programs (w.r.t. instance-size/time).\",\"PeriodicalId\":334903,\"journal\":{\"name\":\"2016 16th International Conference on Application of Concurrency to System Design (ACSD)\",\"volume\":\"63 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2016-06-19\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2016 16th International Conference on Application of Concurrency to System Design (ACSD)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ACSD.2016.17\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 16th International Conference on Application of Concurrency to System Design (ACSD)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ACSD.2016.17","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
摘要
Kaira是开发MPI程序的原型工具(Bohm et al., Petri Nets 2014)。Kaira的用户建议通过创建基于Petri-net的可视化模型来并行化给定的顺序c++代码,然后该工具自动生成相应的独立MPI应用程序。其中一个工具模块可以验证建议的并行化没有引入由进程之间的意外通信顺序引起的意外行为。验证使用状态空间探索程序。在这里,我们报告了该过程的一个新的实质性增强,导致探索状态空间的显着减少。该增强基于众所周知的顽固集和充足集方法,并针对上述视觉模型的使用进行了定制。我们的具体方法非常简单,但实验表明,它可以很好地用于分布式环境下科学计算领域的实际实例。实验还证实,Kaira模型和该方法在验证MPI程序(w.r.t.实例大小/时间)方面优于其他工具。
An Approach to Verification of MPI Applications Defined in a High-Level Model
Kaira is a prototyping tool for developing MPI programs (Bohm et al., Petri Nets 2014). The user of Kaira suggests a parallelization of a given sequential C++ code by creating a visual Petri-net based model, the tool then automatically generates the corresponding stand-alone MPI application. One of the tool modules enables to verify that the suggested parallelization has not introduced unexpected behaviors caused by unintended orders of communications among processes. The verification uses a state-space exploration procedure. Here we report on a new substantial enhancement of this procedure, leading to a significant reduction of the explored state space. The enhancement is based on the well-known methods of stubborn sets and ample sets, and is tailored to the use in the above mentioned visual model. Our concrete method is particularly simple but the experiments show that it works very well for practical examples from the area of scientific computing in distributed environment. The experiments also confirm that the Kaira model together with this method outperforms other tools for verifying MPI programs (w.r.t. instance-size/time).