×

具有单操作多数据的异构编程。 (英语) Zbl 1410.68075号

摘要:异构性在当今的商品计算系统中无处不在,这些系统至少由一个中央处理器(CPU)和一个图形处理单元(GPU)组成。尽管如此,所有这些计算能力并没有在主流计算中得到利用,因为这些系统的编程需要底层架构和执行模型的许多细节。当前对并行编程的研究正在解决这些问题,但系统的异构性仍然暴露在语言级别。本文提出了一个基于单操作多数据模型的统一框架,用于此类异构系统的编程。我们设计了一个简单的Java编程语言扩展,实现了模型,并开发了一个编译器,为多核CPU和GPU生成代码。性能评估证明,尽管该方法基于简单的编程模型,但其性能提升可以与手工调整的数据并行多线程Java应用程序媲美。

MSC公司:

68甲15 编程语言理论
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
68N20型 编译与解释理论
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] 汤普森,C.J。;哈恩,S。;Oskin,M.,《将现代图形体系结构用于通用计算:框架和分析》,(第35届ACM/IEEE国际微体系结构研讨会论文集。第35届年度ACM/EEE国际微体学研讨会论文集,MICRO 2002(2002),ACM/IEEE),306-317
[2] 坎宁安,D。;Bordawekar,R。;Saraswat,V.,《高级语言中的GPU编程:将X10编译成CUDA》,(2011年ACM SIGPLAN X10研讨会论文集。2011年ACM-SIGPLAN X10研讨会论文集中,X10'11(2011),ACM),8:1-8:10
[3] Sidelnik,A。;Maleki,S。;张伯伦,B.L。;M.J.Garzarán。;Padua,D.A.,《Chapel语言的性能可移植性》,(第26届IEEE国际并行和分布式处理研讨会,第26届EEE国际并行和分布处理研讨会,IPDPS 2012(2012),IEEE计算机学会),582-594
[4] Huynh,H.P。;Hagiescu,A。;Wong,W.-F。;Goh,R.S.M.,《将流应用程序映射到多GPU系统的可伸缩框架》,(第17届ACM SIGPLAN并行编程原理与实践研讨会论文集。第17届美国计算机学会SIGPLAN平行编程原理与实务研讨会论文集,PPOPP’12(2012),美国计算机学会),1-10
[5] 杜巴赫,C。;程,P。;R.M.拉巴。;培根,D.F。;Fink,S.J.,《为GPU编译高级语言:(通过对架构和编译器的语言支持)》,(第33届ACM SIGPLAN编程语言设计与实现会议论文集。第33届AC M SIGPLA编程语言设计和实现会议论文集中,PLDI’12(2012),ACM),1-12
[6] Marques,E。;Paulino,H.,《单操作多数据:方法级数据并行》,(第14届IEEE高性能计算与通信国际会议,第14届EEE高性能计算和通信国际会议),HPCC 2012(2012),IEEE计算机学会,254-261
[7] 达贡,L。;Menon,R.,OpenMP:一种用于共享内存编程的行业标准API,Compute。科学。工程师,5,1,46-55(1998)
[8] OpenACC,OpenACC应用程序编程接口(1.0版)(2011)
[9] 布鲁莫夫,R.D。;Joerg,C.F。;库兹摩尔,公元前。;Leiserson,C.E。;Randall,K.H。;Zhou,Y.,Cilk:一个高效的多线程运行时系统,(第五届ACM SIGPLAN并行编程原理与实践研讨会论文集。第五届AC M SIGPLAN并行编程原理和实践会议论文集,PPoPP 1995(1995),ACM),207-216
[10] 英特尔®公司;Intel®Cilk™Plus(2013年7月)
[11] Reinders,J.,《英特尔线程构建块》(2007),O'Reilly&Associates,Inc。
[12] 席尔瓦,F。;Paulino,H。;Lopes,L.,di_pSystem:分布式内存体系结构的并行编程系统,(第六届欧洲PVM/MPI用户小组会议论文集,关于并行虚拟机和消息传递接口的最新进展(1999),Springer-Verlag),525-532
[13] UPC联盟,UPC语言规范,v1.2(2005),劳伦斯伯克利国家实验室,技术代表LBNL-59208
[14] Numrich,R.W。;Reid,J.,并行编程的Co-array Fortran,SIGPLAN Fortran论坛,17,2,1-31(1998)
[15] 查尔斯·P。;Grothoff,C。;萨拉斯瓦特,V。;多纳瓦,C。;基尔斯特拉,A。;Ebcioglu,K。;von Praun,C。;Sarkar,V.,X10:非均匀集群计算的面向对象方法,SIGPLAN Not。,40, 10, 519-538 (2005)
[16] 卡拉汉,D。;张伯伦,B.L。;Zima,H.P.,《级联高效语言》(第九届高级编程模型和支持环境国际研讨会,第九届高层编程模型和支撑环境国际研讨会),HIPS 2004,美国新墨西哥州圣菲,2004年4月26日(2004),IEEE计算机学会),52-60
[17] 张伯伦,B.L。;Choi,S.-E。;刘易斯,E.C。;斯奈德,L。;韦瑟斯比,W.D。;Lin,C.,ZPL高级并行编程案例,计算。科学。工程师,5,3,76-86(1998)
[18] 迪恩,J。;Ghemawat,S.,MapReduce:大型集群上的简化数据处理,Commun。ACM,51,1,107-113(2008)
[19] Ranger,C。;Raghuraman,R。;Penmetsa,A。;Bradski,G.R。;Kozyrakis,C.,评估多核和多处理器系统的MapReduce,(第13届高性能计算机体系结构国际会议,第13届国际高性能计算机架构会议,2007年HPCA-13,美国亚利桑那州凤凰城,2007年2月10日至14日(2007),IEEE计算机学会),13-24
[20] 方,W。;他,B。;罗,Q。;Govindaraju,N.K.,Mars:使用图形处理器加速MapReduce,IEEE Trans。并行分布式系统。,22, 4, 608-620 (2011)
[21] Zaharia,M。;Konwinski,A。;Joseph,医学博士。;Katz,R.H。;Stoica,I.,《改善异构环境中的MapReduce性能》,(第八届USENIX操作系统设计与实现研讨会论文集。第八届操作系统设计和实现USENIX-研讨会论文集,OSDI 2008,2008年12月8日至10日,美国加利福尼亚州圣地亚哥(2008),USENIX-Association),29-42
[22] Munshi,A.,《OpenCL规范》(2009),Khronos OpenCL工作组
[23] NVIDIA公司;NVIDIA CUDA(2013年7月)
[24] 凯格尔,P。;Steuwer,M。;Gorlatch,S.,dOpenCL:实现分布式异构多核系统的统一编程方法,(第26届IEEE国际并行和分布式处理研讨会研讨会和博士论坛。第26届EEE国际并行和分布处理研讨会研讨会&博士论坛,2012年IPDPS,中国上海,2012年5月21日至25日(2012年),IEEE计算机学会),174-186
[25] 洛杉矶史密斯。;公牛,J.M。;Obdrzálek,J.,并行Java Grande基准套件,(2001年ACM/IEEE超级计算会议论文集。2001年ACM/IEEE超级计算机会议论文集,美国科罗拉多州丹佛,2001年11月10日至16日(2001年),ACM),8
[26] 昆廷,J.-N。;Wagner,F.,《分级工作密封》,(D'Ambra,P.;Guarracino,M.R.;Talia,D.,《2010年欧洲-保时捷大会论文集》,第16届国际欧洲-保时捷会议论文集,第一部分:2010年欧洲–保时捷大会论文,第一部分,意大利伊斯基亚,2010年8月31日至9月3日。2010年欧洲-巴黎会议:并行处理,第16届国际欧洲-巴黎大会会议记录,第一部分。2010年欧洲-Par——并行处理,2010年8月31日至9月3日在意大利伊斯基亚举行的第16届欧洲-巴黎国际会议记录,第一部分,Lect。注释计算。科学。,第6271卷(2010),施普林格),217-229
[27] Fatahalian,K。;霍恩,D.R。;Knight,T.J。;Leem,L。;马萨诸塞州休斯顿。;Park,J.Y。;埃雷斯,M。;Ren,M。;艾肯,A。;Dally,W.J。;Hanrahan,P.,Sequoia:编程内存层次,(2006年ACM/IEEE超级计算会议论文集。2006年ACM/IEEE超级计算机会议论文集,SC'06(2006),ACM:ACM纽约,纽约,美国)
[28] Bonachea,D.,燃气网规范,v1.1(2002),技术代表,加州伯克利,美国
[29] 萨拉马戈,J。;Mouráo,D。;Paulino,H.,面向异构环境中并行计算的适应性中间件,(2012 IEEE集群计算研讨会国际会议,2012 IEEE群集计算研讨会国际研讨会,2012年,中国北京,2012年9月24日至28日,IEEE),143-151
[30] 斯帕福德,K。;Meredith,J.S。;Vetter,J.S.,Maestro:OpenCL设备的数据编排和调优,(第16届国际并行处理会议论文集。第16次国际并行处理大会论文集,2010年8月31日至9月3日,意大利伊斯基亚,Euro-Par'10(2010),Springer),275-286
[31] 奈斯特罗姆,北。;克拉克森,M.R。;Myers,A.C.,Polyglot:Java的可扩展编译器框架,(编译器构造,第十二届国际会议论文集。编译器构造,《第十二届世界会议论文集》,CC 2003,波兰华沙,2003年4月7日至11日。编译结构,第12届国际会议记录。编译器构造,第十二届国际会议论文集,CC 2003,波兰华沙,2003年4月7日至11日,Lect。注释计算。科学。,第2622卷(2003年),施普林格出版社),138-152·Zbl 1032.68925号
[32] Bastoul,C.,多面体模型中的代码生成比你想象的要容易,(第13届并行架构和编译技术国际会议。第13届平行架构和编译技巧国际会议,2004年PACT,Antibes Juan-les-Pins,法国,2004年9月29日至10月3日(2004),IEEE计算机学会),7-16
[33] Aparapi,用于数据并行Java的Api(2013)
[34] Pratt-Szeliga,P。;福塞特,J。;Welch,R.,Rootbeer:无缝使用Java的GPU,(第14届IEEE高性能计算与通信国际会议。第14届高性能计算和通信国际会议,2012年HPCC,英国利物浦,2012年6月25日至27日(2012年),IEEE计算机学会),375-380
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。