×

一种基于概要文件的工具,用于在顺序程序中查找管道并行性。 (英语) Zbl 1204.68068号

摘要:传统的静态分析无法对具有复杂控制和数据流的程序进行自动并行。此外,此类程序中的线程级并行通常仅限于管道并行,程序员可能很难发现这一点。在本文中,我们提出了一个基于分析信息的工具,帮助程序员发现并行性。程序员从建议的候选代码中手动选择代码转换,然后通过自动代码转换技术应用这些转换。本文提供了一个用于发现线程级并行性的分析工具,为文献做出了贡献。我们在整个数据结构级别而不是元素级别或字节级别跟踪依赖性,以限制分析开销。我们对这种技术的需求和成本进行了彻底的分析。此外,我们提出并验证了这样一种信念,即具有复杂控制和数据流的程序在程序的外循环中包含大量可利用的粗粒度管道并行性。这个观察结果验证了我们处理全数据结构依赖性的方法。由于最先进的编译器专注于在数据结构成员上迭代循环,这一观察也解释了为什么我们的方法在最先进的编译程序无法实现的情况下发现粗粒度管道并行性。在传统编译技术确实发现了并行性的情况下,我们的方法允许发现更高程度的并行性,与传统编译技术相比,可以提高40%的速度。此外,我们还演示了在多个硬件平台上的实际加速。

MSC公司:

68甲19 其他编程范式(面向对象、顺序、并发、自动等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] M.Agarwal,K.Malik,K.M.Woley,S.S.Stone,M.I.Frank,《利用后支配地位进行投机平行化》,载于:HPCA,2007年。
[2] D.Bader,Y.Li,T.Li,V.Sachdeva,《生物性能:评估生物信息学应用上高性能计算机架构的基准套件》,收录于:IEEE工作负载表征国际研讨会,2005年。
[3] S.Balakrishnan,G.S.Sohi,《程序解复用:顺序程序中基于数据流的方法推测并行化》,ISCA-332006年。
[4] 布鲁姆,W。;艾根曼,R。;霍夫林格,J。;帕多瓦,D。;彼得森,P。;劳希沃格,L。;Tu,P.:《并行的自动检测:高性能计算的巨大挑战》,IEEE并行和分布式技术2,第3期,37-47(1994)
[5] M.Bridges,N.Vachharajani,Y.Zhang,T.Jablin,D.August,《重温多核顺序编程模型》,收录于:MICRO'07:2007年第40届IEEE/ACM国际微体系结构研讨会论文集。
[6] L.Ceze,J.Tuck,J.Torrellas,C.Cascaval,《多处理器中推测线程的批量消歧》,载于:ISCA’06:第33届计算机体系结构国际研讨会论文集,2006年。
[7] R.Cytron,Doacross:beyond vectorization for multiprocessors,in:国际并行处理会议(ICPP),1986年。
[8] 费兰特,J。;Ottenstein,K.J.(奥滕斯坦,K.J.)。;Warren,J.D.:程序依赖图及其在优化中的应用,编程语言和系统上的ACM事务9,第3期,319-349(1987)·兹比尔062368012 ·doi:10.1145/24039.24041
[9] G.Fursin,J.Cavazos,M.O'Boyle,O.Temam,《Midatasets:为迭代优化的更现实评估创造条件》,载于:《高性能嵌入式架构和编译器国际会议论文集》(HiPEAC 2007),2007年。
[10] M.R.Guthaus、J.S.Ringenberg、D.Ernst、T.M.Austin、T.Mudge、R.B.Brown、Mibench:一个免费的、具有商业代表性的嵌入式基准套件,收录于:国际工作量表征研讨会,2001年。
[11] 霍尔,M.W。;安德森,J.M。;Amarasinghe,S.P。;B.R.墨菲。;廖世伟(Liao,S.-W.)。;Bugnion,大肠杆菌。;Lam,M.S.:《使用SUIF编译器最大化多处理器性能》,IEEE计算机29,第12期,84-89(1996)
[12] M.W.Hall,K.Kennedy,K.S.McKinley,并行代码生成的跨过程转换,收录于:超级计算,1991年。
[13] L.Hammond,M.Willey,K.Olukotun,芯片多处理器的数据推测支持,收录于:ASPLOS,1998年。
[14] M.Hind,指针分析:我们还没有解决这个问题吗?于:2001年1月粘贴。
[15] IEEE,1996(ISO/IEC)[IEEE/ANSI Std 1003.11996版]信息技术–可移植操作系统接口(POSIX\textregistered)-第1部分:系统应用程序:程序接口(API)[C语言],pub-IEEE-Std,pub-EEE-Std:adr,1996。
[16] A.Kejariwal,X.Tian,W.Li,et al.,《不同类型推测线程级并行的性能潜力》,载于:ICS'06,2006年。
[17] 肯尼迪,K。;Allen,J.R.:为现代架构优化编译器:基于依赖的方法(2002)
[18] Larus,J.:数字和符号程序中的循环级并行,并行和分布式系统上的IEEE事务4812-826(1993)
[19] C.Lattner,V.Adve,Llvm:终身程序分析和转换的编译框架,载于:CGO’04:代码生成和优化国际研讨会论文集,2004年。
[20] Lee,C。;波特孔贾克,M。;Mangione-Smith,W.:Mediabench:评估和综合多媒体和通信系统的工具(1997)
[21] A.W.Lim,M.S.Lam,用仿射变换最大化并行性和最小化同步,收录于:POPL'97,1997年。
[22] W.Liu、J.Tuck、L.Ceze、W.Ahn、K.Strauss、J.Renau和J.Torrellas,《Posh:利用程序结构的tls编译器》,收录于:PPoPP'062006年。
[23] N.Nethercote,J.Seward,《Valgrind:重量级动态二进制指令插入框架》,PLDI’07,2007年。
[24] J.T.Oplinger,D.L.Heine,M.S.Lam,《寻找推测性线程级并行性》,载于:PACT’99,1999年。
[25] 奥托尼,G。;August,D.I.:全球多线程指令调度的通信优化,SIGOPS操作系统和评论42,No.2,222-232(2008)
[26] G.Ottoni,R.Rangan,A.Stoler,D.I.August,采用解耦软件流水线的自动线程提取,收录于:MICRO-38,2005年。
[27] 帕多瓦,D.A。;库克·D·J。;Lawrie,D.H.:《高速多处理器与编译技术》,IEEE计算机事务29,第9期,763-776(1980)·Zbl 0438.94036号 ·doi:10.1109/TC.1980.1675676
[28] 帕多瓦,D.A。;Wolfe,M.J.:《超级计算机的高级编译器优化》,《ACM通讯》29,第12期,1184-1201(1986)
[29] M.K.Prabhu,K.Olukotun,《在spec2000中揭示推测线程并行性》,载于:PPoPP’05,2005年。
[30] E.Raman,G.Ottoni,A.Raman,M.J.Bridges,D.I.August,并行级解耦软件管道,收录于:CGO’08:第六届IEEE/ACM代码生成与优化国际研讨会论文集,2008年。
[31] Rangan,R。;瓦奇哈拉贾尼,N。;奥托尼,G。;August,D.I.:解耦软件管道的性能可伸缩性,ACM事务关于架构和代码优化5,No.2,1-25(2008)
[32] Ronsse,M。;De Bosschere,K.:Jiti:一种强大的实时仪器技术,SIGARCH计算机体系结构新闻29,第1期,43-54(2001)
[33] 斯莱托,D.D。;Tarjan,R.E.:自调整二进制搜索树,《ACM杂志》32,第3期,652-686(1985)·Zbl 0631.68060号 ·数字对象标识代码:10.1145/3828.3835
[34] R.Stahl,R.Pasko,F.Catthoor,R.Lauwereins,D.Verkest,Java中(子)任务级并行特征的高级数据访问分析,收录于:第九届高级并行编程模型和支持环境国际研讨会,2004年·兹比尔1096.68589
[35] J.G.Steffan,T.C.Mowry,《使用线程级数据推测促进自动并行化的潜力》,载于:HPCA’98,1998年。
[36] W.Thies,V.Chandrasekhar,S.Amarasinghe,《在c程序中利用粗粒度管道并行性的实用方法》,收录于:MICRO'07:第40届IEEE/ACM国际微体系结构研讨会论文集,2007年。
[37] Vitter,J.S.:水库随机取样,数学软件ACM交易11,No.1,37-57(1985)·Zbl 0562.68028号 ·数字对象标识代码:10.1145/3147.3165
[38] F.Warg,P.Stenstrom,《CMP平台上命令式和面向对象程序中推测模块级并行性的限制》,载于:PACT,2001年。
[39] Wolf,M.E。;Lam,M.S.:循环变换理论和最大化并行性的算法,IEEE并行和分布式系统2,第4期,452-471(1991)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。