《并行计算的编程模型》一3.7.2 同步数组和工作数组

简介: 本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.7.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.7.2 同步数组和工作数组

集合函数需要对称同步数组(及归约操作的对称工作数组),对特定的操作和使用的PE子集设置合适的大小并初始化。这些数组代表全局状态,每个数组的对称成分应该按照一个整体来处理。当对同步数组或工作数组进行访问时,上述描述应该被理解为引用所有PE上该数组对称镜像的整个集合。对同步和工作数组有几个重要的点需要注意。

  • 初始化:程序要确保同步数组的分配和初始化及工作数组的分配在集合操作开始使用它们之前在所有PE上完成,这可以通过使用静态分配的数组或在动态分配后使用全局同步屏障来执行。一般所有这些数组都在临近程序启动时分配,因此最多只需要一个全局同步屏障。
    排他性:一旦一个集合操作开始,程序必须在所有PE完成操作前保护操作的同步或工作数组免于被其他活动修改(如内存操作、RMA、其他集合操作)。这意味着这些数组不能立即被后续的集合操作重用。
  • 完成时取值:一旦所有PE完成,同步或工作数组返回到可以被重用的状态。
  • 保护重用:为保护同步或工作数组在一系列集合操作中重用,程序可能需要在重用同步或工作数组之前加全局同步屏障(不好),或在两个同步或工作数组之间轮换(更好)。
  • 重用需要相同的PE集:当且仅当参与操作的PE子集保持不变,即开始PE、参与PE数和 log2(PE_跨步)都相同,同类型(屏障、广播、收集、归约)的连续操作不需要对重用的同步数组进行初始化。如果工作数组对某个操作尺寸合适(元素的数目和类型)也可以被重用。
相关文章
|
并行计算
《并行计算的编程模型》一3.5.2 RMA函数使用
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.5.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1342 0
|
并行计算
《并行计算的编程模型》一3.5 远程内存访问:put和get
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.5节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1178 0
|
并行计算 算法 API
《并行计算的编程模型》一导读
对于正在编程的程序员,编程模型可被看作一台虚拟机,并可通过编程语言和函数库实现。如果某个编程模型成为计算机科学研究中的热点,需要具有以下特性:高效性(易于描述各种抽象算法)、移植性(兼容各种硬件计算平台)、高性能(高效均衡地利用硬件平台的计算能力)、通用性(广泛地描述各种算法)。
3707 0
|
并行计算 API
《并行计算的编程模型》一3.1 引言
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1084 0
|
存储 并行计算
《并行计算的编程模型》一3.3 OpenSHMEM存储模型
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.3节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3271 0
|
并行计算 程序员
《并行计算的编程模型》一3.7.3 非全局同步屏障
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.7.3节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
884 0
|
并行计算
《并行计算的编程模型》一3.6.2 fence和quiet:RMA操作排序
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.6.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1281 0
|
并行计算 程序员
《并行计算的编程模型》一3.6.3 锁
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.6.3节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1018 0
|
并行计算
《并行计算的编程模型》一3.8.2 原子取–加和取–递增
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.8.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1007 0
|
并行计算
《并行计算的编程模型》一3.6.4 wait和wait_until
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.6.4节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1165 0