《并行计算的编程模型》一3.7.6 归约

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

3.7.6 归约

归约函数对参与PE的对称源的每个相应元素执行原生操作,再将操作结果放入每个参与PE对称目标的相应元素(例如查找参与PE源数组第一个元素的最大值,并将最大值放置在每个参与PE目标数组的第一个元素,对源数组的剩余元素以此类推)。对大部分非字节类型都有归约操作的变体,包括short、int、long、long long、float和double。这些变体实现了几个原生操作:按位AND、按位OR、按位XOR、原生型SUM和原生型PRODUCT。不同的归约函数根据操作数的类型和实现的操作符来命名。和其他集合函数相同,归约函数允许程序员通过指定开始PE、log2(PE跨步)、参与PE的数目来选择参与的PE子集。长度为_SHMEM_REDUCE_SYNC_SIZE的对称同步数组是必需的,且该数组要在被所有PE使用前初始化为_SHMEM_SYNC_VALUE(也同样需要全局屏障)。归约操作也需要足够大的工作数组能容纳max(nreduce/2+1,_SHMEM_REDUCE_MIN_ WRKDATA_SIZE)个被归约元素。
然而如前文所述,可以使用两个同步或工作数组对,一旦执行初始化后的全局同步,程序可简单地在两个同步或工作数组对之间轮换,而不是在每个归约前加同步屏障。如果每次同步数组使用时PE主动集相同,同步数组可以在随后轮换的归约中使用(不需要重新初始化)。工作数组也能在相同的条件下使用,只要元素数目不超过最初的分配。代码清单3-20展示了求和归约函数的使用。两个同步或工作数组对允许通过轮换使用的数组对背靠背地调用归约函数以控制操作。每个集合操作完成时,每个PE的目标数组都包含每个PE上源数组相应元素的和。
screenshot
screenshot
screenshot

相关文章
|
并行计算 API
《并行计算的编程模型》一2.5.1 GASNet工具
本节书摘来华章计算机《并行计算的编程模型》一书中的第2章 ,第2.5.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1020 1
|
并行计算
《并行计算的编程模型》一3.7 集合操作
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.7节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
962 0
|
并行计算
《并行计算的编程模型》一3.5.2 RMA函数使用
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.5.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1233 0
|
并行计算 索引
《并行计算的编程模型》一2.3.1 开始和结束
本节书摘来华章计算机《并行计算的编程模型》一书中的第2章 ,第2.3.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1100 0
|
并行计算 算法 API
《并行计算的编程模型》一导读
对于正在编程的程序员,编程模型可被看作一台虚拟机,并可通过编程语言和函数库实现。如果某个编程模型成为计算机科学研究中的热点,需要具有以下特性:高效性(易于描述各种抽象算法)、移植性(兼容各种硬件计算平台)、高性能(高效均衡地利用硬件平台的计算能力)、通用性(广泛地描述各种算法)。
3456 0
|
并行计算
《并行计算的编程模型》一1.3 点对点通信
本节书摘来华章计算机《并行计算的编程模型》一书中的第1章 ,第1.3节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1342 0
|
并行计算
《并行计算的编程模型》一1.11 总结
本节书摘来华章计算机《并行计算的编程模型》一书中的第1章 ,第1.11节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1051 0
|
并行计算
《并行计算的编程模型》一1.8 并行I/O
本节书摘来华章计算机《并行计算的编程模型》一书中的第1章 ,第1.8节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2003 0
|
并行计算
《并行计算的编程模型》一3.5.1 RMA函数语义
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.5.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1218 0
|
并行计算 程序员
《并行计算的编程模型》一3.6 排序和同步
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.6节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
936 0