《并行计算的编程模型》一3.3 OpenSHMEM存储模型

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

3.3 OpenSHMEM存储模型

OpenSHMEM是单程序、多数据(single program multiple data,SPMD)编程模型,特点是强调单边通信以及数据移动与同步解藕,是提供高性能、高可扩展性通信和同步程序的库。OpenSHMEM程序由松散同步的进程组成,这些进程也叫作处理单元(Processing Element,PE)。所有PE同时开始并执行相同的程序,通常在各自集合问题的子域上执行操作,并周期性地与其他PE通信。
OpenSHMEM内存模型是PGAS,类似于其他PGAS语言,例如统一并行C(见第4章)和Co-Array Fortran语言。OpenSHMEM模型将程序的执行分成PE,代表通信任务及相关的数据,类似与MPI列的概念。每个PE的数据空间又进一步分成只能本PE访问的“私有”内存和所有PE都能访问的“对称”内存。对称内存之所以这样命名是因为对各PE来说虽然其数据对象有独特的值,但其逻辑结构是相同的,这样的话只要简单指明远程PE和所要访问对称对象的局部地址即可远程访问对称内存的数据。
术语
首先需要以下一些定义以便支撑接下来的讨论。

  • 处理单元(Processing Element,PE):执行的通信线程。
  • 主动集(Active Set):参与某一特定操作的PE。
  • 对称内存(Symmetric Memory):对所有PE可见的内存集,包括静态分配的内存和用对称分配函数shmalloc()动态分配的内存。
  • 非对称内存(Asymmetric Memory):每个PE私有的内存,包括栈空间和通过其他方式(如malloc())动态分配的内存。
  • 主动端(Active Side):在单边通信中,产生API调用发起数据移动的一方。
  • 被动端(Passive Side):在单边通信中,没有产生与通信相关的API调用的一方。
  • 源(Source):被读取的内存位置。
  • 目标(Target):被更新的内存位置。
  • 放置(Put):远程写操作,将本地主动端的源数据拷贝到远程被动端目标地址。
  • 获取(Get):远程读操作,将远程被动端的源数据拷贝到本地主动端的目标地址。
  • 同步(Synchronization):保证两个或多个PE间的操作顺序或内存一致性。
  • 原子内存操作(Atomic memory operation):作为一个整体完成不受其他操作干扰的操作或操作块。
  • 归约(Reduction):作用于多个PE上原生数据类型的操作,例如查找最大最小值。
  • 集合通信(Collective communication):1对N、N对1或N对N通信(如1对所有广播)。
相关文章
|
人工智能 缓存 调度
技术改变AI发展:RDMA能优化吗?GDR性能提升方案(GPU底层技术系列二)
随着人工智能(AI)的迅速发展,越来越多的应用需要巨大的GPU计算资源。GPUDirect RDMA 是 Kepler 级 GPU 和 CUDA 5.0 中引入的一项技术,可以让使用pcie标准的gpu和第三方设备进行直接的数据交换,而不涉及CPU。
137998 6
|
存储 缓存 虚拟化
PCIe地址转换服务(ATS)详解
PCIe地址转换服务(ATS)详解
3127 1
PCIe地址转换服务(ATS)详解
|
机器学习/深度学习 网络协议 异构计算
浅析GPU通信技术(下)-GPUDirect RDMA
目录 浅析GPU通信技术(上)-GPUDirect P2P 浅析GPU通信技术(中)-NVLink 浅析GPU通信技术(下)-GPUDirect RDMA 1. 背景         前两篇文章我们介绍的GPUDirect P2P和NVLink技术可以大大提升GPU服务器单机的GPU通信性...
28146 0
|
Web App开发 存储 缓存
RDMA优化整理(一)
简要的介绍了下RDMA的背景,并给出了一些RDMA编程优化技巧
4195 1
RDMA优化整理(一)
|
6月前
|
人工智能 负载均衡 调度
COMET:字节跳动开源MoE训练加速神器,单层1.96倍性能提升,节省百万GPU小时
COMET是字节跳动推出的针对Mixture-of-Experts(MoE)模型的优化系统,通过细粒度的计算-通信重叠技术,显著提升分布式训练效率,支持多种并行策略和大规模集群部署。
277 9
|
10月前
|
人工智能 并行计算 云计算
从UALink近期发展再看GPU Scale Up的互连方向
ALink System的目标是聚焦GPU算力需求、驱动云计算定义的开放生态,形成智算超节点的竞争力。
|
10月前
|
人工智能 云计算 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日~10日在江苏张家港召开的CCF ChinaNet(即中国网络大会)上,众多院士、教授和业界技术领袖齐聚一堂,畅谈网络未来的发展方向,聚焦智算集群网络的创新变革。
阿里云引领智算集群网络架构的新一轮变革
|
存储 缓存 弹性计算
重新审视 CXL 时代下的分布式内存
从以太网到 RDMA 再到 CXL,标志着互连技术的重大突破。
|
存储 机器学习/深度学习 并行计算
GPU通信互联技术:GPUDirect、NVLink与RDMA
在高性能计算和深度学习领域,GPU已成为关键工具。然而,随着模型复杂度和数据量的增加,单个GPU难以满足需求,多GPU甚至多服务器协同工作成为常态。本文探讨了三种主要的GPU通信互联技术:GPUDirect、NVLink和RDMA。GPUDirect通过绕过CPU实现GPU与设备直接通信;NVLink提供高速点对点连接和支持内存共享;RDMA则在网络层面实现直接内存访问,降低延迟。这些技术各有优势,适用于不同场景,为AI和高性能计算提供了强大支持。
|
存储 并行计算 算法
CUDA统一内存:简化GPU编程的内存管理
在GPU编程中,内存管理是关键挑战之一。NVIDIA CUDA 6.0引入了统一内存,简化了CPU与GPU之间的数据传输。统一内存允许在单个地址空间内分配可被两者访问的内存,自动迁移数据,从而简化内存管理、提高性能并增强代码可扩展性。本文将详细介绍统一内存的工作原理、优势及其使用方法,帮助开发者更高效地开发CUDA应用程序。