文档介绍:计算机学院
课程设计
课程名称高性能计算设计
题目名称大规模并行计算
专业__ 软件工程_ __ _
年级班别 2012级
学号
学生姓名
指导教师
联系方式
2015年12月18日
结构化数据访问注释对于大规模并行计算
i1索尼亚营,2,基尔帕特里克3,和马西莫torquati2p.******@
1计算机科学系,大学都灵,意大利
******@
2比萨大学计算机科学系,意大利
{营,torquati}***@。它
3女王大学计算机科学系,贝尔法斯特
p.******@
摘要。我们描述了一种方法,旨在解决的问题控制联合开发(流)和一个数据并行骨架吨并行编程环境,基于注释重构。注解驱动一个并行计算的高效实现。重构是用来改造相关联的骨架树到一个更高效,功能上相当于骨架树。在大多数情况下成本模型是用来驱动的重构过程。我们展示了如何示例用例应用程序/内核可以被优化,讨论初步的实验评估结果归属理论。
克-词:算法的骨架,并行设计模式,重构,数据并行性,成本模型。
1我新台币
结构化并行程序设计方法已抽象出概念控制和数据并行通过骨骼上的[ 10 ],这是众所周知的PA T控制[ 8 ]燕鸥。控制并行的设想,设计和实施作为一个图的节点(骨架),每个节点代表一个函数。一股流独立的任务流经图:当每个节点的输入是有效的,它可以计算产生的输出被发送到它的连接节点。在另一方面,数据并行的kelet的描述一个计算模式定义如何在并行数据中访问数据,并将其应用于数据的功能分区以获得最终结果。传统上,控制之间的正交性并行和数据并行解决了采用双层模型控制流驱动的方法进行数据的并行能力增强,可能与并行数据结构暴露出集体行动[ 13 ]反之亦然。然而,控制并行和数据并行的方法。
这项工作已经由欧盟框架7批ist-2011-288570”释义:自适应异构多核系统的并行模式”
我caragiannis冯湛华。(E DS。):E尿PAR 2012个车间,LNCS 7640,pp. 381–390,2013。他是cspringe r-ve rlag用IDE L B E RG i等人。
往往缺乏有效的应用程序,在这两个问题的能力被利用,因为本质上不同的手段,通过并行表示,有时,优化。一种高效的任务分配控制驱动的环境,可我nvalidated由糟糕的数据访问策略,反之亦然[ 14 ]。
在本文中,我们勾勒出一个新的方法来面对的控制与基于数据并行二分法的思想,即:数据与控制并行关注需要独立表达因为他们描述正交方面的并行性,和II)的数据访问和控制的并行模式的需要becoordin ED为了有效地支持并行应用的实现。虽然利用并行模式是不是一个新的方法[ 11 ]和协调工作在过去的语言方面作出了努力[ 17,12 ]或框架,本文提出的想法是,这样的协调可以通过对控制定义的图形表示关于数据访问的骨架。此外,我们将展示如何这样的注释可以用来驱动优化的实施图的执行。
2他骨骼框架
考虑骨骼系统包括控制(即流)和数据并行骨架,造型更一般的并行开发模式。我们的骨架是由下面的语法定义的
这些骷髅代表著名的并行开发模式[ 4 ]:序列把现有的序列码,管/农场流并行骨架处理流项目和Map/Reduce是数据并行骨架加工数据的集合。与许多骨骼框架的对比(包括SkeTo[ 16 ]、[ 9 ]和牛奶什锦早餐skepu)只考虑映射在
“收藏”输入数据,我们假设一个用于P3L [ 7 ]和[ 15 ]:skandium责任指定子项建立了输入数据(集)是左应用程序的程序员,因为是规范的重新构建的部分结果集合的结果。在P3L,程序员要求利用图的形式参数作为工人骨架的实际参数使用“星变”–一种∀我–建立变量之间的对应关系任务和子任务的数据项。例如,矩阵乘法图可以被定义为:
明星变量进行逻辑解释为所有的循环变量。在这种情况下对内部产品工人骨架的调用,对应于伪—代码:∀我∈[ 0,1 ]∀J N−∈[ 0,1 ] n−电话(IP,一个[我] [ ] [ ] [ ],B,C [我] [ J ])虽然
大规模并行计算的结构化数据访问注释383
由P3L编译器可能已完全最终生产进度不同于嵌套循环中隐含的(顺序)时间序列。当处理的集合和复杂和组成的数据结构,有一些特定的数据访问模式,借助描述每件
数据合并成最终结果。例如,一个连续的块数据在一个“行主要”内存组织中实现一个矩阵,可以是访问的行或列,每行可以加上每一列,所有的夫妇成为计算的目标和每一个输出这样的计算,在输出矩阵中的一个位置。变种这种模式包括那些考虑每行/列耦合一个整体矩阵或子块。另一个模式的访