没有合适的资源?快使用搜索试试~ 我知道了~
COMP Superscalar:一个可互操作的编程框架
可在www.sciencedirect.com上在线获取ScienceDirectSoftwareX 3原始软件出版物www.elsevier.com/locate/softxCOMP Superscalar,一个可互操作的编程框架罗莎·M Badia,Javier Conejero,Carlos Diaz,Jorge Ejarque,Daniele LezziBazi,FrancescLordan,Cristian Ramon-Cortes,Raul Sirvent西班牙巴塞罗那超级计算中心接收日期:2015年5月6日;接收日期:2015年10月29日;接受日期:2015年10月29日摘要COMPPS是一个编程框架,旨在促进用Java、C/C++和Python脚本编写的现有应用程序的并行化。为此,它提供了一个基于顺序开发的简单编程模型,其中用户主要负责(i)识别要作为异步并行任务执行的函数,以及(ii)用注释或标准Python装饰器来注释它们运行时系统负责利用代码的固有并发性,自动检测和执行任务之间的数据依赖关系,并将这些任务生成到可用资源,这些资源可以是集群,云或网格中的节点。在云环境中,COMPS提供可扩展性和弹性功能,允许动态提供资源。布拉奇 2015作者由Elsevier B.V.发布。这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/在/4。0/)。关键词:并行编程模型;互操作性;科学计算代码元数据当前代码版本1.2永久链接到代码/存储库使用的此代码版本https://github.com/ElsevierSoftwareX/SOFTX-D-15-00010法律代码许可证Apache2使用svn的代码版本控制系统使用Java、C/C++、Python的软件代码语言、工具和服务编译要求,操作环境&依赖性Linux,OSX. Maven用于编译和解析依赖项如果可用,链接到开发人员文档/手册http://www.bsc.es/computer-sciences/grid-computing/comp-superscalar/downloads-and-文档问题支持电子邮件http://compss.bsc.es/support-compss1. 动机和意义在过去的几年里,并行和分布式基础设施发生了前所未有的变化。并行多核架构得到了广泛的使用;科学应用对计算和存储能力的日益增长的需求促使网格的出现;以及云*通讯作者。电子邮件地址:rosa.m. bsc.es(R.M.巴迪亚),弗朗西斯科·科内杰罗@ bsc.es(J·科内杰罗),卡洛斯·迪亚兹@ bsc.es(C.迪亚兹),豪尔赫.埃贾克@ bsc.es(J.埃贾克),丹尼尔.莱兹@ bsc.es(D.Lezzi),francesc. bsc.es(F. Lordan),cramonco@bsc.es(C. Ramon-Cortes),raul. bsc.es(R. Sirvent)。通过结合虚拟化技术、服务导向和业务模式,在互联网上按需提供IT这些新基础设施的规模和复杂性构成了重大的编程挑战。其中一些困难是并发和分布式编程所固有的例如处理线程、消息传送、数据划分和传输。另一方面,其他问题与特定场景的特性有关,例如为特定云提供商编写应用程序时的供应商锁定风险。http://dx.doi.org/10.1016/j.softx.2015.10.0042352-7110/ 2015作者。由爱思唯尔公司出版 这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/by/4. 0/)。R.M. Badia等人/ SoftwareX 333面对这样的挑战,编程生产力变得至关重要。为了在不牺牲性能的情况下提高程序员在当前基础设施上的生产力,强烈需要提供用于编写并行和分布式应用在这个意义上,COMPS [1]提供了一个编程模型和运行时系统,旨在通过简化应用程序开发(例如,并行应用、商业或科学工作流、以及混合服务和代码的服务组合)及其在分布式环境中的执行。该框架实现了一个基于任务的编程模型,允许应用程序编写遵循顺序范式,而不需要特定的API。COMPPS运行时检测数据依赖关系,并执行代码,同时利用顺序代码中固有的并行性COMPPS编程框架的另一个重要特征是能够透明地执行与底层基础设施相关的应用程序。提供基础设施感知编程模型的一个关键方面是程序可以开发一次并在多个后端上运行,而不必更改实现。当必须实现云之间的可移植性时,这一点很在COMPPS中,程序员不必处理特定云的细节,因为这些细节由运行时透明地处理。不同连接器的可用性,每个连接器实现特定的提供者API(例如云提供者),使得可以在多个后端环境上运行计算负载,而无需代码适配。在云环境中,COMPS提供了扩展和弹性功能,允许使用的资源数量动态地适应实际执行需求。2. 软件描述COMPPS运行时是使用Java语言实现的然而,为了简化其他语言编写的现有应用程序的移植,COMPS还支持C/C++和Python应用程序。当执行顺序代码时,COMPPS运行时拦截方法调用,并用创建新异步任务的运行时调用替换它们对主代码内的任务数据的访问也被检测,使得运行时可以在必要时从生成任务的远程资源获取正确的数据值(同步)。的作用)。图 1描述了一个用Java编写的COMPPS应用程序的示例,以及包含远程方法调用的配置器的定义。COMPPS运行时是负责创建任务、管理数据依赖关系以及使用可用的基础架构执行任务。关于任务检测、数据依赖管理和任务调度的更多细节可以在[2]中找到。图2(a)包含一个使用COMPPS的Python实现编写的示例应用程序,称为PyCOMPSs [3].在PyCOMPSs中,任务是使用Python装饰器来标识的,这是标准Python的一部分。图2(b)示出了由COMPPS运行时动态构建的任务依赖图。除了编程模型和运行时之外,COMPS还提供了一组平台工具,这些工具可以简化:(a)使用集成开发环境(IDE)实现COMPS应用程序,(b)使用编程模型引擎服务(PMES)[4]在分布式基础设施中部署应用程序,以及(c)使用监视和跟踪工具进行执行监视。IDE直接调用PMES在适当的基础设施中部署与新的编程服务相关的虚拟设备,从而充当单个接触点来处理底层平台中间件中的异构性COMPPS运行时在执行时提供它通过一个Web界面来实现这一点,该界面显示正在执行的任务的实时信息当应用程序完成执行时,可以使用Paraver [5]等工具处理和可视化这些信息,以检测应用程序的瓶颈和不平衡部分,这些部分可以被修复以提高应用程序性能。3. 说明性实例在本节中,我们提供了两个使用BSC的MareNostrum超级 计 算 机 评 估 的 PyCOMPSs 应 用 示 例 : DimSweep 和NeuronCorr。DimSweep使用Dimemas模拟器通过几个配置值的参数扫描来执行集群架构探索,这些配置值包括Fab-ric互连网络延迟和带宽、节点数量这个例子在COMPS中使用两种不同的任务类型实现:一种执行Dimemas [6]模拟,另一种累积结果。模拟任务是独立的,而积累任务则是由一系列的依赖关系串联起来的.为了避免在执行结束时这些任务的长链,这些任务被优先化,使得它们在仿真任务之间执行。实验评估使用了一个真实的执行跟踪文件和一组参数配置,生成了2,304个任务。图3显示了当PyCOMPSs工作者使用的核心数量在16和512之间变化y轴上的时间是总的运行时间,加速比是相对于16个工人计算结果显示,扩展到128个工作线程的效果很好,处理器数量越多,收益越小。NeuronCorr是一个神经科学数据处理示例,它计算一组尖峰数据的所有对之间的所有互相关[7]。最初的例子是用并行Python编写的,它已经被翻译成PyCOMPSs。这个例子有两种任务类型:一种是计算数据块的互相关,另一种是在数据结构中收集结果由于收集任务像以前一样创建了一个任务链,因此它们被优先化,以避免在执行结束时出现长的串行链。图中的评价。 4使用生成2,048个任务的数据集进行。34R.M. Badia等人/ SoftwareX 3Fig. 1. 用Java编写的示例应用程序代码。图二、与PyCOMPS并行的顺序Python脚本示例:(a)脚本的主程序,(b)任务定义。右边是相应的任务依赖关系图。图3.第三章。关于DimSweep该图表显示了使用16个工作人员作为基线的运行时间和4. 影响COMPPS框架由BSC计算机科学部门的工作流和分布式计算小组开发COMPS的一个重要影响是BSC内部用户的采用,例如生命科学、地球科学和科学与工程中的计算机应用,这些用户反过来在其社区内提供使用COMPS开发的服务。一个明显的例子是生命科学部门,它与西班牙国家生物信息学见图4。NeuronCorr的性能该图表显示了使用16名工人作为基线的情况下所消耗的时间和加速。研究所(INB)为国家研究项目的开发和执行中出现的特殊要求制定解决方案。在过去的八年里,COMPS作为生产软件安装在MareNostrum上,也被西班牙超级计算网络(RES)的其他节点和PRACE网络使用。在PRACE高级培训中心(PATCs)的范围内,有一个专门R.M. Badia等人/ SoftwareX 335程序[8],其中运行时正在扩展以支持BSC大数据技术。其目的是提供COMPPS作为一个高级工具,隐藏了特定框架的复杂性一个相关的结果是BSC基因组学小组开发的一种新工具,该工具构成了第一个完整和集成的解决方案,用于在具有不同并行计算环境(包括超级计算机和云)的多个中心进行有效和准确的大规模植入和全基因组关联分析[9]。COMPPS也被人脑项目旗舰[10]采用,BSC参与HPC平台的开发,领导并行编程模型、工作流和分布式编程模型的活动,特别是与数据密集型超级计算环境的提供相关的活动。通过大量项目和与用户社区的合作,促进了竞争和消费者保护系统框架的可持续性。COMPS已在许多项目中被采用和扩展,并已作为开发科学应用和优化其在分布式基础设施上的应用的工具提供,包括VENUS-C [11]、Optimis [12]和EUBrazilOpenBio [13],现在它在欧洲网格基础设施(EGI)[14]中得到利用,一个用于将应用程序移植到生产Federated Cloud的高级工具。在EGIFederated Cloud中,COMPS一方面代表透明访问云基础设施的支持技术,另一方面代表轻松实施可跨可用资源有效扩展的并行工作流成功采用COMPS的示例包括为生物多样性社区提供的服务[15,16],为LOFAR射电望远镜和AMIGA4GAS社区的用户实施用于射电天文学数据的校准、分析和建模的管道到云基础设施[17,18]。后者合作产生的组件将成为平方公里阵列(SKA)科学数据处理器(SDP)项目的一部分[19]。COMPSs小组正在与BSC生命科学部门合作,为植物基因组科学开发跨国基础设施[20],其中COMPSs框架用于实施计算服务,为数千名研究人员提供对应用程序和基因组数据的跨父访问。这些服务目前正在被整合到INB西班牙ELIXIR节点的技术基础设施中。在EUBrazilCloudConnect [21]项目中,COMPS和PMES用于在欧洲和巴西的联合云基础设施上部署应用程序。在这方面,采用竞争政策和标准的一个相关产出是,一种新的心血管模拟服务,允许在云中自动处理的低清晰度参数研究与HPC集群中相同COMPPS应用程序的单个高分辨率实例相结合。在AS- CETiC项目[22]中,COMPPS编程模型得到了扩展,因此可以将其集成到框架中,并确定了云计算服务在2015年1月至2015年9月期间,BSC存储库中支持多种Linux发行版的COMPS二进制包被下载了100多次。的同样的软件包也可以通过EGI市场获得,以及在生产基础设施站点部署的定制虚拟设备。5. 相关工作相关工作包括(a)计算密集型工作量的编程模型,(b)工作流程管理器,(c)大数据的编程模型。第一组包括用于计算密集型工作负载的编程模型,包括用于高吞吐量应用程序的编程和执行的框架,例如Ibis [23]。与COMPS不同,将应用程序移植到Ibis需要用户显式实现与特定模式对应的API,然后使用特定脚本编译代码Swift [24]是一种面向科学计算的脚本语言,它可以自动并行执行脚本并将任务分配给各种资源,以类似于COMPS的方式利用隐式并行。与COMPS不同,Swift应用程序的云部署需要在执行之前手动配置虚拟机,并且不提供弹性在第二组中,包括工作流管理器,Taverna是一种工作流语言和计算模型,旨在支持复杂的,基于服务的和数据密集型流程的自动化它自动检测没有数据依赖的任务,并并行执行它们。云资源的部署是委托给用户的,没有弹性。Pegasus [25]是另一个工作流管理器,它可以自动将以XML文件形式提供的高级工作流数据映射到分布式资源(如云)上。使用Pe- gasus在云中执行并不直接相反,COMPS会自动在动态创建的虚拟机上生成应用程序。与这些方法相反,COMPPS应用程序的工作流(依赖图)不是图形化定义的,而是在主程序运行时动态创建的,因此程序员不需要多线程、并行和分布式编程或服务调用的知识。最后一组相关工作,包括大数据的编程模型,包括与处理和生成大型数据集相关的模型和框架。MapReduce编程模型以及基于Hadoop的框架[26]被广泛使用和实现。这些框架在云架构上提供了良好的性能,尤其是对于大型数据集合上的数据分析应用程序。考虑到模型的可表达性,COMPSS比MapReduce更灵活,因为它的应用程序可以生成任意的任务图。6. 结论COMPPS是一个框架,用于开发,部署和执行并行应用程序,业务和科学工作流以及服务组合,在分布式基础设施上混合服务和代码。COMPPS为用户提供了一个简单的顺序编程模型,该模型不需要使用API来修改原始用户应用程序,并且可以在不同的后台执行相同的代码36R.M. Badia等人/ SoftwareX 3形接头. COMPPS运行时旨在通过连接器的实现提供与不同产品的互操作性,尽可能使用标准,使开发的服务能够在混合部署上运行。COMPSs是BSC计算机科学系关于新颖架构和分布式平台的编程模型的研究活动的一部分COMPSs软件是开源的,并在Apache 2许可证下分发。致谢这项工作得到了以下机构的支持:西班牙政府,SeveroOchoa计划的SEV-2011-00067赠款和合同Computacion deAltas Prestaciones VI(TIN 2012 -34557);加泰罗尼亚政府的SGR 计划(2014-SGR-1051) ;欧洲委 员会根据 合同604102资助的人脑项目;欧洲委员会根据合同610874资助的 ASCETIC 项 目 ; 欧 洲 委 员 会 根 据 合 同 614048 资 助 的EUBrazilCloudConnect项目;以及英特尔-BSC Exascale实验室协作。引用[1] LordanF,T ejedor EE,Ejarque J,Ra f anell R,A'l v arez J,MarozzoF,Lezzi D,Sirvent R,Talia D,Badia RM. ServiceS:一个可互操作的云编程框架。J Grid Comput 2014;12(1):67[2] [10]A'l v arez J,A'l v arez J,A'l v arez J,B.等人一无云感知的编程模型,可轻松开发组合服务。在:第三届IEEE云计算技术和科学国际会议论文集,CloudCom'11。2011年。[3] Tejedor E,Becerra Y,Alomar G,Queralt A,Badia RM,TorresJ,et al. PyCOMPSs:Parallel computational workflow in Python. Int JHigh Perform Comput Appl 2015 [in press].出版于2015年8月19日,http://dx.doi.org/10.1177/1094342015594678。[4] LezziD,Ra f anell R,Carr io'nA,Espert IB,Her na'ndezV,BadiaRM. 使用COMPS在云上启用电子科学应用程序。2011年并行处理国际会议论文集,Euro-Par'11。 Heidelber g:Springer; 2012. p. 25比34[5] Gim e'nezJ,LabeloJ,P e genauteFX,WenH-F,KlepackiD,ChungI-H等。结合配置文件和跟踪工具的指导性能分析。2010年并行处理会议论文集,Euro-Par2010。Berlin,Heidelberg:Springer-Verlag. p.513-21[6] 拉贝J,赫罗纳S,皮莱五,科尔特斯T、格雷戈里斯L. DiP:A并行程序开发环境In:Bouge L,Fraigniaud P,Mittette A,RobertY,editors.欧洲标准96并行处理。计算机科学讲义。1124号Berlin,Heidelberg:Springer;1996.第665-674页。http://dx.doi.org/10.1007/BFb0024763网站。[7] [10]杨文辉,李文辉.在神经科学实验室中实际上微不足道的并行数据处理。In:Grn S,Rotter S,editors.并行穗列车的分析。计算神经科学史普林格丛书,第7卷。US:Springer; 2010. p. 413-36[8] 塞维罗·奥乔亚卓越中心 http://www.bsc.es/en/severo-奥乔亚/家。[9] GWImp-COMPSs:一个大规模全基因组插补和关联测试的综合框架。http://www. BSc. es/sites/default/files/public/u242/ds2105-boav12.PDF.[10] 人 脑 计 划 。 https://www.humanbrainproject.eu/es/discover/the-project/overview.[11] Lezzi D,Rafanell R,Lordan F,Tejedor E,Badia RM. VENUS-C平台中的COMPS:在云上实现电子科学应用。第四届伊比利亚网格基础设施会议论文集2011年。p. 73比84[12] Ferrer A,et al. OPTIMIS:A holistic方法到云服务供应。FutureGenerComputSyst2012;28(1):66-77.http://dx.doi.org/10.1016/j.future.2011.05.022网站。2012年1[13] Amaral R,Badia RM,Blanquer I,Braga-Neto R,Canadian L,Castelli D等。使用EUBrazilOpenBio混合数据基础设施支持生物多样性研究。ConcuComput:PracticeExp2014;http://dx.doi.org/10.1002/cpe.3238.[14] Lezzi D,Lordan F,Rafanell R,Badia RM.在联合多云基础设施上执行科学工作流。In:Euro-Par 2013:Parallel processing workshopslecture notes in computer science,vol. 8374; 2014. p. 136-145[15] Lezzi D,Rafanell R,Torser E,De Giovanni R,Blanquer I,BadiaRM.在云中编程生态利基建模工作流程。第27届IEEE高级信息网络和应用国际会议(AINA-2013)。2013.http://dx.doi.org/10.1109/WAINA.2013.6网站。[16] EGI生物多样性用例。https://wiki.egi.eu/wiki/FedCloudOPENMODELLER。[17] Sanchez Exposito S,Martin P,Ruiz JE,Verdes-Montenegro L,Garrido J,Pardell RS.Web服务作为天体物理学中科学网关的构建块。在:科学网关(IWSG),2015年第7届国际研讨会上,卷,不 , 第 80-84 页 , 2015 年 6 月 3-5 日 。 http : //dx. doi 。 org/10.1109/IWSG。2015. 7 .第一次会议。[18] EGI射电天文学用例。https://wiki.egi.eu/wiki/FedCloudLOFAR网站。[19] SKA项目中的科学数据处理器https://www. 滑板镜org/sdp/。[20] transPLANT项目。http://www.transplantdb.eu/project网站。[21] EU巴西云连接项目。http://www.eubrazilcloudconnect.eu网站。[22] K. Djemame,D.阿姆斯特朗河Kavanagh,A.J. Ferrer,D.G. Perez,D.能源效率嵌入式服务生命周期:迈向节能云计算架构。在:CEUR研讨会程序。第1203卷; 2014年。第1-6页。CEUR研讨会论文集。[23] BalHE,Maassen J,van Nieuwpoort RV,Drost N,Kemp R,vanKessel T,et al.真实世界的分布式计算机与ibis。IEEE Computer2010;23(8):54-62.[24] Wilde M,Hategan M,Wozniak JM,Clifford B,Katz DS,Foster I.Swift:一种分布式并行脚本语言。 并行计算2011;24(9):633-52.[25] 迪尔曼 E, 瓦希 K, 尤文 G, 林格 M、 卡拉汉 S,Maech-Pegasus , a workflow management system for sci-ence automation.FutureGenerComputSyst2015;46C ( May ) : 17-35.http://dx.doi.org/10.1016/j.future.2014.10.008网站。[26] 博萨库尔湾Hadoop分布式文件系统:架构与设计Apache软件基金会,2007年。
下载后可阅读完整内容,剩余1页未读,立即下载
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功