《并行计算的编程模型》一3.8.3 原子交换和条件交换

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

3.8.3 原子交换和条件交换

swap AMO将在远程PE的目标操作数与其参数列表的值操作数交换,并将AMO之前的目标值返回给主动PE。条件交换AMO(cswap)将测试目标操作数,如果与条件参数相等,参数列表的值操作数将替换目标的值。在上述两种情况下,在AMO之前的目标值都会返回给主动PE。如取–加和取–递增操作,swap操作符的返回隐含了比add和inc AMO更强的顺序。如其他AMO,swap AMO有时被用于触发被动端的wait函数。代码清单3-24展示了swap AMO的使用,其中奇数的PE在其继承者的对称内存中执行swap,并打印取回值。注意swap提供所有必要的同步。
screenshot
screenshot
screenshot

相关文章
|
存储 C++
深度复杂空间结构运算的逻辑
深度复杂空间结构运算的逻辑
|
6月前
|
存储 算法
【数据结构】【版本1.0】【线性时代】——顺序初现
【数据结构】【版本1.0】【线性时代】——顺序初现
【数据结构】【版本1.0】【线性时代】——顺序初现
|
6月前
|
设计模式 算法 Java
【数据结构和算法】 K 和数对的最大数目
给你一个整数数组nums和一个整数k。 每一步操作中,你需要从数组中选出和为k的两个整数,并将它们移出数组。 返回你可以对数组执行的最大操作数。
69 2
|
6月前
|
设计模式 算法 Java
【数据结构和算法】无限集中的最小数字
这是力扣的2336题,难度为中等,解题方案有很多种,本文讲解我认为最奇妙的一种。使用TreeSet和min变量来维护一个无限集合,保证集合的连续性。添加元素时,若元素大于等于min,则不添加;若元素小于min,则将其添加到TreeSet中。删除元素时,先判断TreeSet是否为空,若不为空,则从TreeSet中删除元素;若为空,则将min值加1。该算法能够高效地添加和删除元素,并保持集合的连续性。该算法还可以用优先队列(小根堆)+ hash表解题,比较优秀。
51 1
|
6月前
【代数学习题3】从零理解数域扩张与嵌入 —— 同构、商环、分裂域与同态映射
【代数学习题3】从零理解数域扩张与嵌入 —— 同构、商环、分裂域与同态映射
328 0
|
前端开发 调度 芯片
【芯片前端】根据数据有效选择输出的握手型FIFO结构探究
【芯片前端】根据数据有效选择输出的握手型FIFO结构探究
|
存储
【计算机系统结构】堆栈、累加、通用寄存器型机器对比
【计算机系统结构】堆栈、累加、通用寄存器型机器对比
512 0
中国科大实现两类不同量子资源间的相互循环转化
中国科学家提出量子相干性与量子关联之间的循环转化方法,并在光子系统中实验验证了该方案,相关研究成果在线发表在《物理评论快报》上。
1347 0
【挑战】计算48种依次泛化的假设情况下,总共有多少种不可再简化的析合范式?
一种可行的算法: 由于属性泛化后,一个泛化的假设可以对应多个具体假设。 把所有假设按三属性泛化,二属性泛化,一属性泛化,具体属性排序(这样可以保证排在后面的假设不会包含前面的任何一个假设,所以省略了一些包含判断),进行循环枚举,按顺序遍历所有假设组合248种可能(当然绝大部分都提前结束了,不会是那么夸张的量级,虽然也不低): 使用栈来实现非递归,如果当前假设还有没被析合式所包含的具体假设,则认为可以入栈,并当前栈大小的长度计数加1,并继续扫描。
1097 0
|
并行计算
《并行计算的编程模型》一3.8.1 原子加和递增
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.8.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
905 0