×

弱内存并发中的模块化松散依赖。 (英语) Zbl 1508.68045号

Müller,Peter(编辑),《编程语言和系统》。2020年4月25日至30日在爱尔兰都柏林举行的第29届欧洲编程研讨会(ESOP 2020),是欧洲软件理论与实践联合会议(ETAPS 2020)的一部分。诉讼程序。查姆:斯普林格。莱克特。注释计算。科学。12075, 599-625 (2020).
摘要:我们提出了弱内存并发的指称语义,避免了薄空气读数提供具有顺序一致语义(DRF-SC)的无数据空间程序,并支持用于验证优化的组合优化关系。我们的语义确定了可能通过编译器优化消除的错误程序依赖项,并保留了排除空读所需的依赖项。我们展示了我们的依赖性计算可以用于排除任何公理化并发模型中的稀疏读取,特别是C++。我们提供了一个自动评估石蕊测试的工具,表明我们可以通过增强C++来解决thin-air问题,并且我们证明了我们的增强与以前在关键处理器体系结构上使用的编译映射兼容。我们认为,我们的依赖性计算为解决C++规范中长期存在的精简空气读取问题提供了一条切实可行的途径。
关于整个系列,请参见[Zbl 1496.68030号].

MSC公司:

68甲19 其他编程范式(面向对象、顺序、并发、自动等)
68甲15 编程语言理论
68N20型 编译与解释理论
68问题55 计算理论中的语义学
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Adve,S.V.,Hill,M.D.:弱排序——一个新的定义。In:ISCA(1990)
[2] Algale,J.,Maranget,L.,McKenney,P.E.,Parri,A.,Stern,A.:吓唬小孩子和让成年人不安:linux内核中的并发性。在:ASPLOS(2018)
[3] Algale,J.、Maranget,L.、Tautschnig,M.:放牧猫:针对弱记忆的建模、模拟、测试和数据挖掘。输入:PLDI(2014)
[4] Batty,M.:C11和C++11并发模型。英国剑桥大学博士论文(2015)
[5] Batty,M.、Cooksey,S.、Owens,S.,Paradis,A.、Paviotti,M.和Wright,D.:模块化松弛依赖:解决超薄空气问题的新方法(2019),http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1780r0.html
[6] Batty,M.、Donaldson,A.F.、Wickerson,J.:检修C11和opencl中的SC原子。输入:POPL(2016)·Zbl 1347.68034号
[7] Batty,M.、Memarian,K.、Nienhuis,K.,Pichon-Pharabod,J.、Sewell,P.:编程语言并发语义问题。In:员工持股计划(2015)
[8] Batty,M.、Owens,S.、Sarkar,S.,Sewell,P.、Weber,T.:C++并发的数学化。输入:POPL(2011)·Zbl 1284.68165号
[9] Benton,N.,Hur,C.:循序渐进:善、恶、丑。包含:关于状态的建模、控制和推理,29.08.-03.09.2010 (2010)
[10] Boehm,H.J.,Adve,S.V.:C++并发模型的基础。输入:PLDI(2008)
[11] Chakraborty,S.,Vafeiadis,V.:通过事件结构实现对稀薄空气的过滤。输入:POPL(2019)
[12] Dodds,M.、Batty,M.和Gotsman,A.:编译器优化在松弛内存上的组合验证。在:员工持股计划(2018)·Zbl 1418.68044号
[13] ISO/IEC JTC 1/SC 22编程语言及其环境和系统软件接口:ISO/IEC 14882:2017编程语言-C++(2017)
[14] Jeffrey,A.,Riely,J.:凭空阅读轻松记忆的事件结构模型。致:LICS(2016)·Zbl 1392.68304号
[15] Jeffrey,A.,Riely,J.:在稀薄的空气中读到:朝向放松记忆的事件结构模型。计算机科学中的逻辑方法15(1)(2019)·Zbl 1423.68311号
[16] Kang,J.,Hur,C.K.,Lahav,O.,Vafeiadis,V.,Dreyer,D.:一种有前途的松弛内存并发语义。收件人:POPL(2017)·Zbl 1380.68103号
[17] Kavanagh,R.,Brookes,S.:SPARC TSO的指称语义。MFPS(2018)·Zbl 1525.68072号
[18] Lahav,O.,Vafeiadis,V.,Kang,J.,Hur,C.,Dreyer,D.:修复C/C++11中的顺序一致性。致:PLDI(2017)
[19] Leroy,X.,Grall,H.:Coinductive大踏步操作语义。Inf.计算。(2009) ·Zbl 1165.68044号
[20] Lochbihler,A.:使java内存模型安全。ACM事务处理。程序。语言系统。35(4), 12:1-12:65 (2013). https://doi.org/10.1145/2518191
[21] Manson,J.、Pugh,W.、Adve,S.V.:Java内存模型。在:POPL(2005)·Zbl 1369.68079号
[22] McKenney,P.E.,Jeffrey,A.,Sezgin,A.,Tye,T.:《空中执行是空虚的》(2016),http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0422r0.html
[23] Michalis Kokologianakis,Azalea Raad,V.V.:弱一致库的模型检查。输入:PLDI(2019)
[24] Owens,S.、Myreen,M.O.、Kumar,R.、Tan,Y.K.:功能性大步语义。In:编程语言和系统-第25届欧洲编程研讨会,2016年ESOP,作为欧洲软件理论与实践联合会议的一部分,ETAPS 2016,荷兰埃因霍温,2016年4月2-8日,会议记录(2016)
[25] Pichon-Pharabod,J.,Sewell,P.:一种用于宽松原子的并发语义,允许优化并避免执行thin-air。输入:POPL(2016)·Zbl 1347.68091号
[26] Podkopaev,A.,Lahav,O.,Vafeiadis,V.:缩小编程语言和硬件弱内存模型之间的差距。PACMPL(POPL)(2019年)
[27] Pugh,W.:Java因果关系测试。网址:http://www.cs.umd.edu/pugh/java/memoryModel/CocausalityTestCases.html(2004),访问时间:2018-11-17
[28] Riely,J.、Jagadeesan,R.、Jeffery,A.:私人通信(2020)
[29] Ševík,J.:弱记忆模型中的程序转换。英国爱丁堡大学博士论文(2009年)
[30] Ševík,J.,Aspinal,D.:关于java内存模型中程序转换的有效性。In:ECOOP(2008)
[31] Streicher,T.:函数编程的领域理论基础(2006年1月)·Zbl 1111.68020号
[32] Wickerson,J.、Batty,M.、Sorensen,T.、Constantinides,G.A.:自动比较内存一致性模型。收件人:POPL(2017)·Zbl 1380.68110号
[33] Winskel,G.:事件结构。摘自:《Petri网:中心模型及其性质》,《1986年Petri网的进展》,第二部分,《高级课程论文集》,Bad Honnef,8.-19。1986年9月(1986)·Zbl 0611.68034号
[34] Winskel,G.:事件结构简介(1989)·兹伯利0683.68074
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。