《并行计算的编程模型》一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月前
简化数据结构的初始化过程
简化数据结构的初始化过程
53 0
|
存储 JavaScript 前端开发
图解 Google V8 # 05:函数表达式的底层工作机制
图解 Google V8 # 05:函数表达式的底层工作机制
188 0
图解 Google V8 # 05:函数表达式的底层工作机制
数据结构上机实践第七周项目1 - 自建算法库——顺序环形队列
数据结构上机实践第七周项目1 - 自建算法库——顺序环形队列
159 0
数据结构上机实践第七周项目1 - 自建算法库——顺序环形队列
|
并行计算 程序员
《并行计算的编程模型》一3.6 排序和同步
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.6节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
942 0
|
并行计算 API
《并行计算的编程模型》一3.4.1 初始化和查询
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.4.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1070 0
|
并行计算 API 索引
《并行计算的编程模型》一2.4.1 GASNet段
本节书摘来华章计算机《并行计算的编程模型》一书中的第2章 ,第2.4.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
970 0
|
并行计算
《并行计算的编程模型》一3.7.1 选择集合参与者
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.7.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1014 0
|
并行计算
《并行计算的编程模型》一2.3.2 段信息
本节书摘来华章计算机《并行计算的编程模型》一书中的第2章 ,第2.3.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1117 0
|
并行计算 程序员
《并行计算的编程模型》一3.7.3 非全局同步屏障
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.7.3节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
791 0
|
并行计算
《并行计算的编程模型》一3.6.1 全局同步屏障
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.6.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1026 0