×

MPI 2.0的形式化规范:指定实用并发编程API的案例研究。 (英语) Zbl 1209.68111号

摘要:我们描述了MPI的非平凡子集的第一个正式规范,MPI是高性能计算中主要的通信API。为非平凡的并发API设计一个正式规范需要严格性、可执行性和可跟踪性的正确组合,同时还可以平滑地细化预先存在的非正式规范。它还需要对可重用规范组件进行模块化,以检查规范的长度。长期存在的API(如MPI)通常不是“教科书式的极简主义”,因为它们支持多种应用程序、多种用户社区,并且在数十年的计算硬件中有高效的实现。我们选择TLA+符号来编写规范,并描述了我们如何组织300个MPI 2.0函数中大约200个函数的规范。我们在本文中详细介绍了其中一些功能,并根据上述要求评估了我们的规范。最后,我们描述了可能的方法,这些方法可以帮助编写、理解和验证并发API规范的行为更加高效。

MSC公司:

第68页第19页 其他编程范式(面向对象、顺序、并发、自动等)
第68季度第60季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] MPI:消息传递接口标准2.1版,2008年6月23日,自那时起出现了修订版。最新规格见http://www.mpi-forum.org。
[2] W.D.Gropp,《从MPI的成功中学习》,载于:第八届高性能计算国际会议,HiPC 2001年,2001年,第81-92页·Zbl 1052.68550号
[3] A.Geist,MPI必须进化或消亡,2008年欧洲PVM/MPI大会上的演讲邀请。
[4] 消息传递接口论坛MPI:消息传递接口标准,http://www.mpi-forum.org/docs/, 1995.
[5] 格罗普,W。;Lusk,E.L。;多斯,N.E。;Skjellum,A.:MPI消息传递接口标准的高性能、可移植实现,并行计算22,No.6,789-828(1996)·Zbl 0875.68206号 ·doi:10.1016/0167-8191(96)00024-5
[6] J.M.Squires,A.Lumsdaine,《LAM/MPI的组件架构》,载于《第十届欧洲PVM/MPI用户小组会议论文集》,2003年,第379-387页。
[7] E.Gabriel、G.E.Fagg、G.Bosilca、T.Angskun、J.J.Dongarra、J.M.Squires、V.Sahay、P.Kambadur、B.Barrett、A.Lumsdaine、R.H.Castain、D.J.Daniel、R.L.Graham、T.S.Woodall,《开放式MPI:下一代MPI实现的目标、概念和设计》,载于《第11届欧洲PVM/MPI用户小组会议论文集》,2004年,第97–104页。
[8] Liu,D.K.P.九星;吴洁生:《infiniband上基于RDMA的高性能MPI实现》,《国际并行编程杂志》32,第3期,167-198(2004)·Zbl 1060.68571号 ·doi:10.1023/B:IJPP.0000029272.69895.c1
[9] Herlihy,M。;沙维特,N.:《多处理机编程的艺术》(2008)
[10] 查普曼,B。;Jost,G。;Pas,R.V.:使用openmp(2008)
[11] Ct:C表示吞吐量计算,http://techreesearch.intel.com/articles/Tera-Scale/1514.htm。
[12] J.Reinders,英特尔线程构建块,2008年。
[13] D.Leijens,W.Schulte,任务并行库的设计,http://research.microsoft.com/apps/pubs/default.aspx?id=77368, 2008.
[14] 多核通信API,http://www.multicore-association.org。
[15] H.-J.Boehm,《线程不能作为库实现》,载于:《编程语言设计与实现》,PLDI,2005年,第261-268页。
[16] R.Palmer,M.Delisi,G.Gopalakrishnan,R.M.Kirby,《消息传递库的形式化和分析方法》,收录于:《工业关键系统的形式化方法》,FMICS,柏林,2007年,第164-181页,最佳论文奖。
[17] TLA–动作的时间逻辑,http://research.microsoft.com/users/lamport/tla/tla.html。
[18] Leslie Lamport,Win32线程API规范,http://research.microsoft.com/users/lamport/tla/threads/threads.html。 ·Zbl 1267.68037号
[19] B.Batson,L.Lamport,《高级规范:工业经验教训》,收录于:组件和对象的形式化方法,FMCO,2002年,第242-261页。
[20] G.Li,M.DeLisi,G.Gopalakrishnan,R.M.Kirby,TLA+中MPI-2.0标准的形式规范,收录于:并行编程原理与实践,PPoPP,海报会议。2008年,第283-284页。
[21] G.Li,R.Palmer,M.DeLisi,G.Gopalakrishnan,R.M.Kirby,MPI 2.0的形式规范:指定实用并发编程API的案例研究,技术代表UUCS-09-003,犹他大学,2009年。http://www.cs.utah.edu/research/techreports/2009/pdf/UUCS-09-003.pdf。 ·Zbl 1209.68111号
[22] IEEE,IEEE Radix-independent浮点算法标准,ANSI/IEEE Std 854-19871987。
[23] Harrison,J.:平方根算法的形式化验证,系统设计中的形式化方法22,第2期,143-154(2003)·Zbl 1021.68058号 ·doi:10.1023/A:1022973506233
[24] M.阿巴迪。;Lamport,L。;Merz,S.:RPC内存规范问题的TLA解决方案,21-66(1994)
[25] Jackson,D.:《合金:软件建模的新技术》,Lncs 2280,20(2002)·Zbl 1043.68520号
[26] D.Jackson,I.Schechter,H.Shlyahter,美国铝业:合金约束分析器,收录于:ICSE'00:第22届国际软件工程会议记录,2000年,第730-733页。
[27] 抽象状态机,http://www.eecs.umich.edu/gasm/。 ·Zbl 0960.68091号
[28] W.Kuchera,C.Wallace,《面向UPC内存模型的程序友好型形式规范》,技术报告03-01,密歇根理工大学,2003年。
[29] S.Bishop、M.Fairbairn、M.Norrish、P.Sewell、M.Smith、K.Wansbrough,适用于TCP、UDP和套接字的网络协议严格规范和一致性测试技术,载于:SIGCOMM,2005年,第265-276页。
[30] S.Bishop、M.Fairbairn、M.Norrish、P.Sewell、M.Smith、K.Wansbrough,《逻辑工程:TCP实现的HOL规范和符号评估测试》,收录于:编程语言原理研讨会,POPL,2006年,第55–66页。
[31] HOL定理证明器,http://hol.sourceforge.net/。
[32] M.Norrish,C正式发表于HOL,博士论文,剑桥大学,1998年。http://www.cl.cam.ac.uk/TechReports/UCAM-cl-TR-453.pdf。
[33] SAL、,http://sal.csl.sri.com/。
[34] 淡紫色系统,http://maude.cs.uiuc.edu/。 ·Zbl 1038.68559号
[35] P.Georgelin,L.Pierre,T.Nguyen,MPI原语和通信机制的正式规范,技术代表,LIM,1999年。
[36] ,形式描述技术lotos:esprit sedos项目的结果(1989)·Zbl 0800.68015号
[37] S.F.Siegel,G.Avrunin,《MPI程序分析》,技术代表UM-CS-2003-036,马萨诸塞州阿默斯特大学计算机科学系,2003年。
[38] Holzmann,G.:模型检查器SPIN,IEEE软件工程事务23,第5期,279-295(1997)
[39] S.F.Siegel,G.S.Avrunin,《无通配符MPI程序验证建模》,载于:《并行编程原理与实践》,PPoPP,2005年,第95–106页。
[40] R.Palmer,G.Gopalakrishnan,R.M.Kirby,基于MPI的并行程序的语义驱动动态部分顺序缩减,收录于:PADTAD’07,2007年,第43–53页。
[41] S.F.Siegel,模型检查非阻塞MPI程序,见:VMCAI 07,2007,第44–58页·Zbl 1132.68481号
[42] S.Barrus、G.Gopalakrishnan、R.M.Kirby、R.Palmer,使用SPIN验证MPI程序,技术代表UUCS-04-008,犹他大学,2004年。
[43] 帕尔默,R。;巴鲁斯,S。;Yang,Y。;Gopalakrishnan,G。;Kirby,R.M.:《高斯:验证科学计算软件的框架》,《理论计算机科学电子笔记》144,第3期,95-106(2006)
[44] S.Pervez,G.Gopalakrishnan,R.M.Kirby,R.Thakur,W.Gropp,使用MPI单边通信的程序的形式验证,在:并行虚拟机和消息传递接口的最新进展,EuroPVM/MPI,2006,第30–39页。
[45] R.Palmer,G.Gopalakrishnan,R.M.Kirby,消息传递接口的通信语义,技术代表UUCS-06-012,犹他大学,2006年10月。
[46] A.Danalis,K.-Y.Kim,L.Pollock,M.Swany,通信计算重叠的并行代码转换,收录于:SC'05:ACM/IEEE超级计算会议,2005年,第58页。
[47] TLA+中MPI 2.0的正式规范,http://www.cs.utah.edu/formal_verification/mpitla/。
[48] J.Reynolds,《分离逻辑:共享可变数据结构的逻辑》,载于:LICS’002002,第55-74页。
[49] J.L.Träff、W.Gropp、R.Thakur,《自洽MPI性能要求》,载于:PVM/MPI,2007年,第36-45页。
[50] 微软、凤凰城学术项目、,http://research.microsoft.com/phoenix, 2007.
[51] 尼尔森,F。;尼尔森,H.R。;Hankin,C.:《程序分析原理》(1999)·Zbl 0932.68013号
[52] 帕切科,P.S.:MPI并行编程,(1996)·Zbl 0877.68013号
[53] 韦恩斯,M。;坎贝尔,C。;格里斯坎普,W。;舒尔特,W。;蒂尔曼,N。;Nachmanson,L.:使用规范浏览器对面向对象的反应系统进行基于模型的测试,Lncs 4949,39-76(2008)·Zbl 1120.68354号
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。