《并行计算的编程模型》一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

相关文章
|
Dubbo Ubuntu Java
没有JDK和Maven,用Docker也能构建Maven工程
紧急的时候,借助Docker,在不安装JDK和Maven的环境也能构建Maven工程
2312 0
没有JDK和Maven,用Docker也能构建Maven工程
|
存储 搜索推荐 安全
Onlyfans如何使用搜索功能?Onlyfans如何搜索博主?如何在OnlyFans搜索HongkongDoll
本文是一份全面的指南,旨在帮助读者了解如何在OnlyFans平台上有效使用搜索功能,尤其是如何找到特定的博主,比如HongkongDoll。我们深入探讨了OnlyFans的搜索机制,包括其对用户隐私的重视以及因此带来的搜索限制。文章详细介绍了三种主要的搜索方法:使用OnlyFans的官方搜索服务、通过社交媒体链接进行跳转、以及利用第三方搜索引擎如OnlySearch。
|
6月前
|
机器学习/深度学习 算法 Java
基于改进粒子群优化算法的柔性车间调度问题(Python代码实现)
基于改进粒子群优化算法的柔性车间调度问题(Python代码实现)
237 4
|
存储 弹性计算 运维
2024阿里云服务器经济型e实例规格云服务器性能介绍
2024阿里云服务器经济型e实例规格云服务器性能介绍,阿里云服务器ECS推出经济型e系列,经济型e实例是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器,CPU采用Intel Xeon Platinum架构处理器
|
Java 开发者 Spring
Spring Cloud Gateway 中,过滤器的分类有哪些?
Spring Cloud Gateway 中,过滤器的分类有哪些?
529 3
|
关系型数据库 MySQL
mysql中插入语句ON DUPLICATE KEY用法
ON DUPLICATE KEY是mysql中特有用法
583 0
|
数据可视化 数据挖掘 Python
figure方法详解之清除图形内容
figure方法详解之清除图形内容
825 2
|
存储 JSON 前端开发
JSON 语法详解:轻松掌握数据结构(上)
JSON 语法详解:轻松掌握数据结构(上)
JSON 语法详解:轻松掌握数据结构(上)
|
云安全 弹性计算 运维
科普达人丨漫画图解什么是eRDMA?
绕过CPU,将数据直接从一台计算机的内存传输到另一台计算机,进行网络加速
科普达人丨漫画图解什么是eRDMA?