×

分配和并行化非规范循环。 (英语) Zbl 1529.68078号

Dragoi,Cezara(编辑)等人,《验证、模型检查和抽象解释》。第24届国际会议,VMCAI 2023,美国马萨诸塞州波士顿,2023年1月16-17日。诉讼程序。查姆:斯普林格。莱克特。注释计算。科学。13881, 1-24 (2023).
概要:这项工作利用原始的依赖性分析来并行化循环,而不管它们在命令式程序中的形式如何。我们的算法将一个循环分配到多个可并行化的循环中,当两者都适用时,其执行时间的增加可与最先进的自动源代码到源代码转换器相媲美。我们的基于图形的算法直观、语言无关、经过验证是正确的,并且适用于所有类型的循环。重要的是,即使循环迭代空间在静态或编译时是未知的,或者更一般地说,如果循环不是规范形式或包含循环承载依赖项,也可以应用它。作为贡献,我们提供了计算技术、语义正确性保持证明以及量化预期性能提升的实验结果。我们还表明,许多类似的工具无法分布我们优化的循环,我们的技术可以无缝集成到编译器传递或其他自动并行套件中。
关于整个系列,请参见[Zbl 1517.68010号].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部 哈尔

参考文献:

[1] 阿贝尔。;Altenkirch,T.,《结构递归的预测分析》,J.Funct。程序。,12, 1, 1-41 (2002) ·Zbl 0998.68027号 ·doi:10.1017/S095679680104191
[2] 阿布·苏法西。;DJ库克;DH Lawrie,《通过程序分析和转换提高寻呼系统性能》,IEE Trans。计算。,30, 5, 341-356 (1981) ·doi:10.10109/TC.19811675792
[3] 阿霍,AV;Lam,理学硕士;Sethi,R。;Ullman,JD,《编译器:原理、技术和工具》(2006),波士顿:Addison-Wesley出版社,波士顿·Zbl 1429.68002号
[4] Amini,M.:类GPU硬件加速器的源代码到源代码自动程序转换。论文,巴黎国家矿山管理学院,2012年12月。https://pastel.archives-ouvertes.fr/pastel-00958033
[5] Amini,M.等人:Par4All:从凸阵列区域到异构计算。In:IMPACT 2012:第二届多面体编译技术国际研讨会HiPEAC 2012。法国巴黎,2012年1月。https://hal-mines-paristech.archives-ouvertes.fr/hal-00744733
[6] Arabnejad,H。;比斯波,J。;卡多佐,JMP;Barbosa,JG,针对基于OpenMP的C应用程序自动并行化的源代码到源代码编译,J.Supercomput。,76, 9, 6753-6785 (2019) ·doi:10.1007/s11227-019-03109-9
[7] Aubert,C.,Rubiano,T.,Rusch,N.,Seiller,T.:一种受隐式计算复杂性启发的新型回路裂变技术,2022年5月。https://hal.archives-ouvertes.fr/hal-03669387v1。吃水深度,吃水深度
[8] Aubert,C.,Rubiano,T.,Rusch,N.,Seiller,T.:回路裂变基准(2022)。doi:10.5281/zenodo.7080145。https://github.com/statycc/loop-session
[9] Aubert,C.,Rubiano,T.,Rusch,N.,Seiller,T.:MWP分析改进和实现:实现隐式计算复杂性。摘自:Felty,A.P.(ed.)第七届计算和演绎形式结构国际会议(FSCD 2022)。莱布尼茨国际信息学学报,第228卷,第26:1-26:23页。Dagstuhl-Leibniz-Zentrum für Informatik修道院(2022)。doi:10.4230/LIPIcs。2016年2月20日·Zbl 1491.68017号
[10] Aubert,C.,Rubiano,T.,Rusch,N.,Seiller,T.:pymwp:Python中的MWP分析,2022年9月。https://github.com/statycc/pymwp/
[11] Bae,H.,《Cetus源到源编译器基础设施:概述与评估》,《国际并行程序》。,41, 6, 753-767 (2013) ·doi:10.1007/s10766-012-0211-z
[12] 拜尔,C。;Katoen,J。;Larsen,K.,《模型检验原理》(2008),剑桥:麻省理工学院出版社,剑桥·Zbl 1179.68076号
[13] 苯那布德拉赫曼,M-W;袋装,L-N;科恩,A。;巴斯托尔,C。;Gupta,R.,《多面体模型的应用范围比你想象的更广》,《编译器构造》,283-303(2010),海德堡:施普林格出版社·doi:10.1007/978-3-642-11970-516
[14] 贝尔托拉奇一世。;斯特劳特,MM;德苏宾斯基,BR;斯科格兰,TRW;EC戴维斯;Olschanowsky,C。;德苏宾斯基,BR;Valero-Lara,P。;Martorell,X。;Mateo Ballido,S。;Labarta,J.,《扩展OpenMP以促进循环优化》,《OpenMP for Evolving Architectures的演进》,53-65(2018),Cham:Springer,Cham·doi:10.1007/978-3-319-98521-34
[15] 美国邦杜古拉。;哈托诺,A。;Ramanujam,J。;Sadayappan,P.,一个实用的自动多面体并行器和局部优化器,SIGPLAN Not。,43, 6, 101-113 (2008) ·doi:10.1145/1379022.1375595
[16] Chung,FRK,《关于图形的封面》,Discret。数学。,30, 2, 89-93 (1980) ·兹比尔0451.05037 ·doi:10.1016/0012-365X(80)90109-0
[17] Dave,C。;Bae,H。;最小值,S。;Lee,S。;艾根曼,R。;Midkiff,SP,Cetus:用于多核的源到源编译器基础设施,计算机,42,11,36-42(2009)·doi:10.1109/MC.2009.385
[18] 费兰特,J。;奥滕斯坦,KJ;Warren,JD,程序依赖图及其在优化中的应用,ACM Trans。程序。语言系统。,9, 3, 319-349 (1987) ·Zbl 0623.68012号 ·doi:10.1145/24039.24041
[19] gcc.gnu.org git-gcc.git/blob-gcc/tree-loop-distribution.c。https://gcc.gnu.org/git/?p=gcc.git;a=斑点;f=gcc/tree-loop-分布.c;h=65aa1df4abae2c6acf40299f710bc62ee6bacc07;hb=头部#l39
[20] Grosser,T.:在LLVM中实现多面体优化。帕索大学硕士论文,2011年4月。https://polly.llvm.org/publications/grosser-diploma-论文.pdf
[21] Holewinski,J.等人:矢量化应用潜力的动态跟踪分析。摘自:第33届ACM SIGPLAN编程语言设计与实现会议记录,PLDI 2012,第371-382页。纽约计算机协会(2012年)。doi:10.1145/2254064.2254108
[22] 英特尔:oneTBB文档(2022)。https://oneapi-src.github.io/oneTBB/
[23] 英特尔公司:英特尔C++编译器经典开发人员指南与参考。https://www.intel.com/content/dam/develop/external/us/en/文档/cpp_compiler_classic.pdf
[24] 卡普,RM;密勒,RE;Winograd,S.,《统一递推方程的计算组织》,J.ACM,14,3,563-590(1967)·Zbl 0171.38305号 ·数字对象标识代码:10.1145/321406.321418
[25] Klemm,M.,de Supinski,B.R.(编辑):OpenMP应用程序编程接口规范5.2版。OpenMP架构审查委员会,2021年11月。https://www.openmp.org/wp-content/uploads/openmp-API-规范-5-2.pdf
[26] 克里斯蒂安森,L。;琼斯,ND;库珀,SB;Löwe,B。;Torenvliet,L.,《数据流和算法复杂性》,《新计算范式》,263-274(2005),海德堡:施普林格出版社·Zbl 1115.68052号 ·doi:10.1007/11494645_33
[27] Laird,J.、Manzonetto,G.、McCusker,G.和Pagani,M.:类型lambda-calculi的加权关系模型。收录于:LICS,第301-310页。IEEE计算机学会(2013)。doi:10.1109/LICS.2013.36·Zbl 1366.03171号
[28] Lattner,C.,Adve,V.S.:LLVM:终身程序分析和转换的编译框架。2004年3月20日至24日,第二届IEEE/ACM代码生成和优化国际研讨会(CGO 2004),美国加利福尼亚州圣何塞,第75-88页。IEEE计算机学会(2004)。doi:10.1109/CGO.2004.1281665,https://ieeexplore.ieee.org/xpl/conhome/9012/processing
[29] Lee,C.S.,Jones,N.D.,Ben-Amram,A.M.:计划终止的规模变化原则。收录于:Hankin,C.,Schmidt,D.(编辑)《POPL 2001会议记录:第28届ACM SIGPLAN-SIGACT编程语言原理研讨会》,英国伦敦,2001年1月17日至19日,第81-92页。ACM(2001)。doi:10.1145/360204.360210·Zbl 1323.68216号
[30] [回路裂变]:回路裂变干涉图(图)。https://reviews.llvm.org/D73801
[31] Mehta,S.,Lin,P.,Yew,P.:重新审视多面体框架中的环路融合。摘自:Moreira,J.E.,Larus,J.R.(编辑)ACM SIGPLAN并行编程原理与实践研讨会,PPoPP 2014,美国佛罗里达州奥兰多,2014年2月15日至19日,第233-246页。ACM(2014)。doi:10.1145/2555243.2555250
[32] 微软:并行模式库(PPL)(2021)。https://docs.microsoft.com/en-us/cpp/parallel/concrt/并行打印-内存-ppl?视图=msvc-170
[33] Moyen,J-Y;鲁比亚诺,T。;塞勒,T。;D’Souza,D。;Narayan Kumar,K.,《环路准变块检测》,《验证和分析自动化技术》,91-108(2017),查姆:施普林格,查姆·电话:10.1007/978-3-319-68167-2_7
[34] Palkowski,M.,Klimek,T.,Bielecki,W.:TRACO:用于数值应用的自动循环嵌套并行器。收录于:Ganzha,M.,Maciaszek,L.A.,Paprzycki,M.(编辑)2015年计算机科学和信息系统联合会议,FedCSIS 2015,波兰罗兹,2015年9月13日至16日。《计算机科学和信息系统年鉴》,第5卷,第681-686页。IEEE(2015)。doi:10.15439/2015F34
[35] 普雷玛,S。;Nasre,R。;约阿德桑(Jehadeesan,R.)。;Panigrahi,B.,流行的自动并行化框架研究,Concurr。计算。实际。到期日,31,17,e5168(2019)·doi:10.1002/cpe.5168
[36] Quinlan,D.等人:Rose用户手册:用于构建源到源翻译人员草拟用户手册的工具(版本0.9.11.15)。https://rosecompiler.org/uploads/ROSE-UserManual.pdf
[37] Rauchwerger,L.,Padua,D.A.:多处理器系统的并行循环。摘自:第九届并行处理国际研讨会论文集,IPPS 1995,第347-356页。IEEE计算机学会(1995)
[38] Seiller,T.:交互图:完全线性逻辑。收录于:Grohe,M.,Koskinen,E.,Shankar,N.(编辑)《第31届ACM/IEEE计算机科学逻辑研讨会论文集》,2016年LICS,美国纽约州纽约市,2016年7月5日至8日,第427-436页。ACM(2016)。doi:10.1145/2933575.2934568·Zbl 1394.03075号
[39] 维托罗维奇,A.,托马舍维奇,M.V.,米卢蒂诺维奇,V.M.:手动并行与最先进的并行技术。收录于:Hurson,A.(编辑)《计算机进步》,第92卷,第203-251页。Elsevier(2014)。doi:10.1016/B978-0-12-420232-0.00005-2
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。