亚历山大·马尔基斯;安妮迪亚·班纳吉 关于软件障碍验证中的自动化:经验报告。 (英语) Zbl 1314.68186号 J.汽车。推理 第35275-329号(2014). 摘要:我们提供了一份关于自动验证软件屏障同步原语的经验报告。原语的非正式规范是:当一个线程调用软件屏障函数时,该线程会暂停,直到所有其他线程调用其软件屏障函数的实例。成功的软件屏障调用可以确保每个线程在开始交换这些部分工作的结果之前完成其部分工作。虽然软件屏障广泛用于主要数值算法的并行版本中,并且在科学计算中不可或缺,软件屏障算法及其实现几乎没有得到验证。我们通过Jahob、VCC、Boogie、Spin和Checkfence等离线自动验证系统改进了主要软件屏障算法的正确性证明技术。我们验证了中央屏障、屏障的C实现、静态树屏障、组合树屏障、传播屏障、锦标赛屏障、客户端屏障和弱内存模型上的屏障。在此过程中,我们引入了一种新的定理证明方法,用于证明包含理解基数的公式的有效性,并改进了其中一个验证系统的能力。根据我们的经验,我们提出了软件障碍验证方面的新挑战。 引用于1文件 MSC公司: 60年第68季度 规范和验证(程序逻辑、模型检查等) 03B70号 计算机科学中的逻辑 68吨15 定理证明(演绎、解析等)(MSC2010) 03B35型 证明和逻辑操作的机械化 68瓦40 算法分析 68问题55 计算理论中的语义学 2010年第68季度 计算模式(非确定性、并行、交互式、概率性等) 68宽10 计算机科学中的并行算法 关键词:障碍;验证;不变量;安全;验证器;自动化 软件:贾霍布;自旋蛋白;SPASS+T系列;检查围栏;巴黎证券交易所;爪哇格兰德;VCC(沃尔沃汽车公司);布吉;VACID-0型 PDF格式BibTeX公司 XML格式引用 \textit{A.Malkis}和\textit{A.Banerjee},J.Autom。推理52,No.3,275--329(2014;Zbl 1314.68186) 全文: 内政部 参考文献: [1] 艾肯,A.,盖伊,D.:障碍推理。摘自:MacQueen,D.B.,Cardelli,L.(编辑)ACM编程语言原则研讨会,第342-354页。ACM(1998) [2] Aldrich,J.、Barnett,M.、Giannakopoulou,D.、Leavens,G.T.、Sharygina,N.(编辑):SAVCBS 2008年11月9日至10日在SIGSOFT 2008/FSE第16届研讨会上的会议记录。技术报告CSTR-08-07(2008)·兹比尔0662.68008 [3] Ayari,A.:基于Monadic逻辑的系统验证工具。弗赖堡大学博士论文(2003年) [4] Benten,M.S.,Jordan,H.F.:多道程序和并行程序的性能。摘自:Rodrigue,G.H.(编辑)《第三届科学计算并行处理SIAM会议论文集》,1987年12月1-4日,第374-383页。SIAM,美国加利福尼亚州洛杉矶市(1989年) [5] Bienia,C.:PARSEC——用于共享内存计算机的普林斯顿应用程序库。http://parsec.cs.princeton.edu版本2.1(2009)。2011年1月5日检索 [6] Braun,P.,Lötzbeyer,H.,Slotosch,O.:《探索用户指南》。技术报告,慕尼黑工业大学(2000年) [7] Brooks III,E.D.,Axelrod,T.S.,Darmohray,G.A.:Cerberus多处理器模拟器。摘自:Rodrigue,G.H.(编辑)《第三届科学计算并行处理SIAM会议论文集》,1987年12月1-4日,第384-390页。SIAM,美国加利福尼亚州洛杉矶市(1989年) [8] Bull,J.M.,Davey,R.A.,Freeman,R.,Graham,P.J.,Henty,D.S.,Kambits,M.E.,Obdrzálek,J.,Pottage,L.,Smith,L.A.,Telford,S.D.,Westhead,M.D.:Java Grande基准套件。http://www2.epcc.ed.ac.uk/computing/research_activities/java_grande/index_1.html (2001). 2013年6月5日访问 [9] Burckhardt,S.:并发数据类型的内存模型敏感分析。宾夕法尼亚大学博士论文(2007年) [10] Celmaster,W.:接受-拒绝方法在并行处理器上的实现:调度中的一个案例研究。摘自:Rodrigue,G.H.(编辑)《第三届科学计算并行处理SIAM会议论文集》,1987年12月1-4日,第131-136页。SIAM,美国加利福尼亚州洛杉矶市(1989年) [11] Cohen,E.、Dahlweid,M.、Hillebrand,M.和Leinenbach,D.、Moskal,M.,Santen,T.、Schulte,W.、Tobies,S.:VCC-验证C编译器。http://vcc.codeplex.com (2012). 2013年6月7日访问·Zbl 1065.68579号 [12] Cordina,J.、Fenech,S.、Pace,G.J.:模型检查并发汇编算法。马耳他大学计算机科学和人工智能系技术报告(2007年) [13] Darmohray,G.A.,Brooks III,E.D.:共享内存多处理器计算机上的高斯技术。摘自:Rodrigue,G.H.(编辑)《第三届科学计算并行处理SIAM会议论文集》,1987年12月1-4日,第20-26页。SIAM,美国加利福尼亚州洛杉矶市(1989年) [14] Dennis Jr.,J.E.,Martínez,J.M.,Zhang,X.:求解稀疏非线性方程组的并行块三角分解。收录于:Dongarra,J.、Kennedy,K.、Messina,P.、Sorensen,D.C.、Voigt,R.G.(编辑)PPSC,第168-173页。SIAM(1991)·Zbl 0789.65036号 [15] Elmas,T.,Qadeer,S.,Tasiran,S.:原子作用的微积分。摘自:Shao,Z.,Pierce,B.C.(编辑)ACM编程语言原理研讨会,第2-15页。ACM(2009)·Zbl 1315.68087号 [16] Friesen,J.:开始Java 7。阿普莱斯。国际标准图书编号978-1-4302-3909-3(2011) [17] Gebali,F.:算法与并行计算。John Wiley&Sons公司,ISBN 978-0-470-90210-3(2011)·Zbl 1225.68003号 [18] Gupta,R.:模糊屏障:处理器高速同步的机制。在:Emer,J.S.(编辑)国际编程语言和操作系统体系结构支持会议,第54-63页。ACM出版社(1989) [19] Hensgen,D.,Finkel,R.,Manber,U.:屏障同步的两种算法。国际期刊并行程序。17, 1-17 (1988) ·Zbl 0662.68008号 ·doi:10.1007/BF01379320 [20] Herlihy,M.,Shavit,N.:多处理器编程的艺术。Morgan Kaufmann(2008)·Zbl 1065.68579号 [21] Hobor,A.,Gherghina,C.:并发分离逻辑中的障碍。摘自:Barthe,G.(编辑)《编程语言与系统》,欧洲编程研讨会。计算机科学讲义,第6602卷,第276-296页。施普林格(2011)·Zbl 1326.68096号 [22] Holzmann,G.J.:旋转模型检查器:入门和参考手册。艾迪森·韦斯利。http://www.spinroot.com网站 (2003). 2013年6月7日访问 [23] Holzmann,G.J.,Puri,A.:可达状态的最小化自动机表示。国际期刊软件。技术工具。转账2(3),270-278(1999)·Zbl 1065.68579号 ·doi:10.1007/s100090050034 [24] Hsu,H.-M.,Peir,J.-K.,Haidvogel,D.B.:LCAP海洋环流模型的性能。摘自:Rodrigue,G.H.(编辑)《第三届科学计算并行处理SIAM会议论文集》,1987年12月1-4日,第285页。SIAM,美国加利福尼亚州洛杉矶市(1989年) [25] Huynh,T.Q.,Roychoudhury,A.:C#的内存模型敏感检查器。收录:Misra,J.、Nipkow,T.、Sekerinski,E.(编辑)《形式方法》。计算机科学课堂讲稿,第4085卷,第476-491页。斯普林格(2006) [26] Jacobs,B.:验证了一般障碍的实施。http://people.cs.kuleuven.be/bart.jacobs/verifast/examples/barrier.c.html(2010)。2013年2月7日检索 [27] Kuncak,V.、Wies,T.、Zee,K.、Malkis,A.、Bouillaguet,C.、Nguyen,H.H.、Schmitt,P.:Jahob验证系统。工具站点位于http://lara.epfl.ch/w/jahob_system。改进的源代码位于网址:http://www4.in.tum.de/malkis/jahob.7z和http://software.imdea.org/亚历克斯·马尔基斯/雅各布.7z。2013年6月7日访问 [28] Leinenbach,D.,Santen,T.:使用VCC验证Microsoft Hyper-V管理程序。收录:Cavalcanti,A.,Dams,D.(编辑)形式方法。计算机科学课堂讲稿,第5850卷,第806-809页。施普林格(2009) [29] 莱诺,K.R.M.:这是布吉2。技术报告KRML 178,Microsoft Research(2008) [30] Leino,K.R.M.,Moskal,M.:VACID-0:验证数据结构不变量的充分正确性,第0版。参加:工具与实验研讨会(2010年) [31] Lubachevsky,B.D.:共享内存并行编程的同步屏障和相关工具。国际期刊并行程序。19(3), 225-250 (1990) ·doi:10.1007/BF01407956 [32] Malkis,A.和Banerjee,A.:关于应用于软件壁垒的验证工具的详细输入和评论。可在网址:http://www4.in.tum.de/malkis/Barrier验证和http://software.imdea.org/ab/屏障验证(2011)。2013年6月7日访问 [33] Manna,Z.,Pnueli,A.:无功系统的临时验证:安全。斯普林格(1995)·Zbl 1288.68169号 [34] Matlin,O.S.,Lusk,E.L.,McCune,W.:SPINning并行系统软件。收录人:Bosnaki,D.,Leue,S.(编辑)SPIN。《计算机科学讲义》,第2318卷,第213-220页。斯普林格(2002)·Zbl 1077.68697号 [35] May,J.M.:高性能计算的并行I/O。学术出版社(2001)。国际标准图书编号1-55860-664-5 [36] Mellor-Crummey,J.M.,Scott,M.L.:BBN蝴蝶的障碍1。ftp://ftp.cs.rochester.edu/pub/packages/scalable_synch/locks_and_barriers/Bfly1.tar.Z。2013年2月16日检索 [37] Mellor-Crummey,J.M.,Scott,M.L.:顺序对称的障碍。ftp://ftp.cs.rochester.edu/pub/packages/scalable_synch/locks_and_barriers/Symmetry.tar.Z。2013年2月16日检索 [38] Mellor Crummey,J.M.,Scott,M.L.:共享内存多处理器上可扩展同步的算法。ACM事务处理。计算。系统。9(1),21-65(1991)·数字对象标识代码:10.1145/103727.103729 [39] 微软公司:。NET框架库。http://referencesource.microsoft.com/netframework.aspx,版本4,文件Barrier.cs(2008)。2011年5月23日检索 [40] 微软公司:MSDN屏障文档。http://msdn.microsoft.com/en-us/library/system.threading.barrier.aspx,示例C#代码(2011)。2011年7月5日检索 [41] Moskal,M.,Schulte,W.,Cohen,E.,Hillebrand,M.A.,Tobies,S.:验证C程序:VCC教程,(2012)。检索自http://www.codeplex.com/Download?项目名称=VCC&DownloadId=4765072011年7月23日 [42] Nagel,C.,Evjen,B.,Glynn,J.,Watson,K.,Skinner,M.:专业C#2012和。净额4.5。John Wiley&Sons,Inc.(2012年)。国际标准图书编号978-1-1183-1442-5 [43] Prevosto,V.,Waldmann,U.:SPASS+T。In:Sutcliffe,G.,Schmidt,R.,Schulz,S.(编辑)ESCoR:FLoC’06经验成功计算机推理研讨会。CEUR研讨会记录,第192卷,第18-33页。西雅图,华盛顿州,美国(2006年) [44] Scott,M.L.,Mellor-Crummey,J.M.:共享内存多处理器的快速、无争议的组合树屏障。国际期刊并行程序。22, 449-481 (1994) ·doi:10.1007/BF02577741 [45] Scott,M.L.,Mellor Crummey,J.M.:可伸缩同步的伪代码。http://www.cs.rochester.edu/research/synchronization/pseudocode/ss.html(1994). 2013年2月23日检索 [46] Smit,A.:用机械定理证明器验证屏障算法。格罗宁根大学数学与自然科学学院硕士论文(2001年) [47] Suter,P.,Steiger,R.,Kuncak,V.:可满足模理论中的基数约束集。收录于:Jhala,R.,Schmidt,D.A.(编辑)国际验证、模型检查和抽象解释会议。计算机科学课堂讲稿,第6538卷,第403-418页。施普林格(2011)·Zbl 1317.68124号 [48] Wies,T.,Piskac,R.,Kuncak,V.:将理论与共享集运算相结合。收录:Ghilardi,S.,Sebastiani,R.(编辑)《组合系统的前沿》。《计算机科学讲义》,第5749卷,第366-382页。施普林格(2009)·兹比尔1193.03030 [49] Yew,P.-C.,Tzeng,N.-F.,Lawrie,D.H.:在大规模多处理器中分配热点寻址。IEEE传输。计算。36(4), 388-395 (1987) [50] Yu,S.,Kowalski,A.D.:求解Navier-Stokes方程的并行数值算法研究。收录于:Dongarra,J.、Messina,P.、Sorensen,D.C.、Voigt,R.G.(编辑)PPSC,第285-290页。SIAM(1989) 此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。