文档介绍:维普资讯
国防科技大学学报
第卷第期年月..
数据并行程序设计语言中分布数组的地址计算’
引『
—, ————一——————~ ●
、. 赵丝克佳趱沈志宇』
摘要本文讨论了在大规模并行计算机上实现数据并行程序设计语言的关键问题
—分布数组的地址计算问题。文中详细给出了维分布数组的下标地址计算公式,分布数组
的内情向量结构以及分布数组映射函数算法,并对有关编译实觋技术进行了探讨。
关键词太规模莲堑竺,数据并行星旦堡语言,编译程序,、苎塑竺销厅硅
升娄‘巴
年代以来,以大规模并行计算机,简称为
代表的高性能计算机发展很快。为适用这类大规模并行计算机系统的发展,近年来各种
数据并行程序设计语言相继出现, 如高性能
口,¨, , 。等等。这类
语言的一个共同特点是一方面继承了传统程序设计语言中统一地址空间编程的风格,另
一方面在语言中增加了程序并行控制与数据分布的能力以适应机分布存储器的体
系结构。这类语言构成了大规模并行计算机程序设计语言的一个发展方向,其主要原因
是由于它们与传统的程序设计语言有较好的兼容性,使得已经开发出来的许多软件经过
不太困难的移植便可在机上运行;同时,这类语言采用全局编程的地址空间的作
,减少了程序的出错率与调试
的困难性。但是,在计算机上高效实现这类语言却对编译程序提出了许多需解决的
新问题。其中一个重要的问题是数据分布问题。面对分布主存的体系结构,编译必须对
数组进行划分与分布以增加程序计算的并行性;必须区分出局部数据地址与远程数据地
址,以便在必要时插入适当的通讯、同步指令来保证程序的正确执行同时还必须按照
数据分布的情况,
的、且具有较大局部性的结点代码,以减少处理机之间的通讯开销。所有这一切都与分
布数组的地址计算有关
前面所列语言中数据分布的概念是相同的。为具体与简单起见,本文以
年月日修订
国家重点预研项目
维普资讯
为例,给出这类语言分布数组的地址计算方法以及相关的编译实现技术。
的分布数组
是研究公司为其共享分布主存
大规模并行计算机开发的程序设计语言。该语言同时支持数据并行、工作
共享与消息传递三种程序设计方式。在数据并行与工作共享方式下,该语言将数组分为
二种类型:共享数组与私有数组。私有数组局部于每个任务,它们在每个处理机的局部
存贮器中都有一副本,其行为与标准中的数组相同。共享数组只有一个副本,
它们分布于多个处理机中并且可以由任何一个任务访问。共享数组类似于的分布数
组。为了行文方便,本文将同时使用共享数组与分布数组二个术语。
共享数组的说明形式如下倒所示:
,,
: : ,
这里,用打头的指导命令说明三维数组是分布数组。一般地。分布指导命
令中所允许的分布说明形式有: ‘’,‘: ’以及‘:’三种形式。‘:
’表示这一维按照该维所分得的处理机个数。划分成连续的块并分配至各处
理机。‘: ’表示从。开始,每个处理机分配个连续元索,多余的元索再
用同样的方法进行划分。“表示该维采用蜕化分布。即该维