《并行计算的编程模型》一3.5.2 RMA函数使用

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

3.5.2 RMA函数使用

OpenSHMEM API有三种类型的put和get函数:一般、类型和跨步。对RMA的一般put和get函数是类型不可知的,只简单地传输字结块,这两个一般函数对大部分传输都足够用了,但缺乏类型和跨步接口的便利性。OpenSHMEM提供的类型put和get函数操作在连续的原生数据类型块上,函数名指明了位宽或对象类型(因此有20个put和20个get函数指明数据类型或被访问的对象大小)。OpenSHMEM也提供跨步访问函数,允许以指定跨步访问源和目标地址(如数组的每第n个元素)。代码清单3-4、代码清单3-5和代码清单3-6分别描述了一般、类型和跨步put和get函数。
screenshot
screenshot
screenshot
screenshot
每个函数的前两个参数标识要更新的(target)位置和数据要被拷贝的(source)位置。对put函数,target是远程的(被动端PE),由最后一个参数(pe)标示。source是本地的主动端PE。对get函数,要更新的target位置在本地主动端PE,source在远程被动端PE。值得注意的是虽然在被动端PE标明的位置必须在其对称内存里,但主动端的位置允许在对称或非对称内存。倒数第二个参数len描述要传输的数据量,对一般函数是字节数,对类型和跨步函数是标明的原生类型数目。跨步参数tst和sst分别标明访问目标和源数组的跨步,单位是函数名所标明的类型。当跨步设为1时即为连续传输,与这些函数的类型版本相同。代码清单3-7显示使用get和put进行环形通信的简单示例,注意在这个示例中,唯一需要同步的是在设置self和被另一PE读取之间的同步屏障。
screenshot

相关文章
|
存储 网络协议 安全
CentOS7下搭建Rsyslog Server记录远程主机系统日志
CentOS7下搭建Rsyslog Server记录远程主机系统日志
1427 0
CentOS7下搭建Rsyslog Server记录远程主机系统日志
|
运维 Linux Windows
【帕鲁更新攻略】如何快速在阿里云上更新游戏服务端版本
幻兽帕鲁游戏服务端版本升级后,需要玩家同步更新才能继续游戏,您可以按照以下操作完成游戏服务端升级。
50428 840
【帕鲁更新攻略】如何快速在阿里云上更新游戏服务端版本
|
机器学习/深度学习 并行计算 编译器
了解NVIDAI显卡驱动(包括:CUDA、CUDA Driver、CUDA Toolkit、CUDNN、NCVV)
开发过程中需要用到GPU时,通常在安装配置GPU的环境过程中遇到问题;CUDA Toolkit和CUDNN版本的对应关系;CUDA和电脑显卡驱动的版本的对应关系;CUDA Toolkit、CUDNN、NCVV是什么呢?
17692 1
了解NVIDAI显卡驱动(包括:CUDA、CUDA Driver、CUDA Toolkit、CUDNN、NCVV)
|
2月前
|
人工智能 Linux API
5分钟上手龙虾AI!OpenClaw 阿里云/Windows/macOS/Linux部署+免费多模型接入(MiniMax、Claude、百炼)
2026年,OpenClaw(业内昵称“龙虾AI”)凭借**真正执行任务、全平台运行、数据本地可控、支持多模型自由切换**等核心优势,成为个人与轻量化团队首选的开源AI助手。它不再是只能对话的聊天机器人,而是可以直接处理邮件、管理日程、整理文件、生成代码、监控内容、自动备份的**全天候数字员工**。无论你是办公人群、开发者、自媒体,还是只想拥有一个安全高效的私人助理,OpenClaw都能在几分钟内搭建完成,并通过免费大模型直接投入使用。
957 0
|
4月前
|
存储 缓存 算法
SGLang Hierarchical Sparse Attention 技术深度解析
阿里云 Tair 联合 SGLang 推出分层稀疏化框架,通过“稀疏+分层”协同优化,将 KVCache 从 GPU 显存扩展至 CPU 与远端存储,实现计算与存储效率双突破,为百万级超长上下文推理提供新路径。
|
供应链 数据可视化 搜索推荐
商业模式画布BMC入门指南:模块、实操与工具
2分钟了解什么是商业模式画布BMC,哪些工具可以绘制。
2174 11
商业模式画布BMC入门指南:模块、实操与工具
|
Python Windows
ImportError: No module named ‘encodings’
ImportError: No module named ‘encodings’
1796 0
|
存储 缓存 API
DMA-BUF缓冲区共享和同步【ChatGPT】
DMA-BUF缓冲区共享和同步【ChatGPT】
|
SQL 安全 算法
【惊险揭秘】Django高手的十大安全秘籍:如何从零构建坚不可摧的Web堡垒?
【8月更文挑战第31天】《Django安全性指南:构建安全Web应用的十大关键步骤》介绍了在使用Django框架开发Web应用时,如何通过十个关键步骤提升应用安全性。从使用HTTPS、设置CSRF保护到限制密码复杂度、防止SQL注入,文章详细阐述了每一步的具体实施方法及示例代码,帮助开发者构建更加安全可靠的Web应用。
459 0
|
架构师 虚拟化 Docker
dpdk课程学习之练习笔记六(虚拟化理解vhost和virtio)
dpdk课程学习之练习笔记六(虚拟化理解vhost和virtio)
507 0

热门文章

最新文章