《并行计算的编程模型》一3.2 设计理念和根据

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

3.2 设计理念和根据

SHMEM和OpenSHMEM的构思和发展都假设它们和底层硬件系统体系结构有密不可分的关系。由克雷研究公司开发和出售的克雷T3D和T3E计算机系统在其网络架构中包含几个高级的硬件加速特征,是与SHMEM合作设计的,用以最大化可用的带宽及最小化系统的3D Torus网络延迟[85]。克雷公司,即原来克雷研究公司的现代同名,在其最新的Gemini网络架构[86,90]中也延续了相同的设计理念。当1996年SGI收购了克雷研究公司,也同时获得了SHMEM的知识产权,SGI设计了NUMAlink体系架构[250]和共享存储的能力以最大化性能,SHMEM再一次成为开发这些的最佳API。两个公司仍继续关注于确保软硬件的高性能实现,也使SHMEM或OpenSHMEM API的能力得以发挥。
IBM在DARPA HPCS项目下开发了私有的网络设备Torrent [266]。Torrent的主要目标之一是对类似于OpenSHMEM的PGAS编程范型进行硬件加速。Torrent具有一些高级的网络加速特征,包括远程存储访问能力(remote memory access,RMA),共同加速单元(Collective Acceleration Unit,CAU),并支持丰富的原子内存操作集(atomic memory operations,AMOs)。AMO特征包括定点(NOP,SUM,MIN,MAX,OR,AND,XOR(有符号和无符号))和浮点(MIN,MAX,SUM,PROD(单精度和双精度))能力。这些特征使Torrent可以用MPI和OpenSHMEM一起来开发硬件全部的性能,并为PGAS语言提供了基础。图3-1描述了IBM Torrent网络芯片,是系统的计算或存储元件及环境的网络部分可能的一种典型集成方式。对超大规模系统(百亿亿次)来说这很必要,以便将网络和存储以及处理能力放在同等位置,这能提高能力和带宽,并降低延迟,也会对所有PGAS类型的编程模型产生积极的影响。

screenshot

直到现在,这些能力和集成等级只存在于来自如克雷、SGI和IBM的具有大量私有网络投资的高端系统中。但在2011年,Mellanox [188]和HP在橡树岭国家实验室超大规模系统中心的指导下,宣布对OpenSHMEM API以及使该模型充分生效的许多关键底层硬件特征的支持。虽然这种合作设计的重心聚焦于对OpenSHMEM加速的支持,但这也会使其他PGAS编程模型成为可能。这也是商用网络第一次设计实现包含支持OpenSHMEM基本要素的硬件、固件及系统软件。除了在私有和商用网络的进步,笔者也见过将OpenSHMEM API的能力嵌入FPGA的项目[267]。这些轻量级的实现将开发那些部署在未来超大规模系统中的硬件性能。对目前在千兆及未来千兆兆操作的系统所承载的工作量来说,将网络提升到“一等公民”的位置很重要。

相关文章
|
前端开发 Java 数据管理
毕业设计:基于Springboot实现求职招聘,校园招聘系统
 本项目基于Springboot 开发实现了一个求职招聘网站,系统分为前端求职招聘和后台数据管理后台。主要分为四个角以:管理员,求职者,公司管理员,公司HR,不同的角色进入系统有不同的功能操作。用户身份可以在后台管理设定。系统功能完整,界面美观大方,适合做毕业设计使用。 运行环境: 开发工具:IDEA或ECLIPSE 数据库:MYSQL+REDIS 开发技术:Springboot+mybatis+mybatisPlus+shiro 前端开发:AJAX+Jquery+layui 2.1 功能需求 2.1.1 系统划分
1113 0
毕业设计:基于Springboot实现求职招聘,校园招聘系统
|
JavaScript 前端开发
|
存储 并行计算
《并行计算的编程模型》一3.3 OpenSHMEM存储模型
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.3节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3271 0
|
并行计算 算法 API
《并行计算的编程模型》一导读
对于正在编程的程序员,编程模型可被看作一台虚拟机,并可通过编程语言和函数库实现。如果某个编程模型成为计算机科学研究中的热点,需要具有以下特性:高效性(易于描述各种抽象算法)、移植性(兼容各种硬件计算平台)、高性能(高效均衡地利用硬件平台的计算能力)、通用性(广泛地描述各种算法)。
3707 0
|
并行计算
《并行计算的编程模型》一3.5.2 RMA函数使用
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.5.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1342 0
|
并行计算 API
《并行计算的编程模型》一3.1 引言
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1084 0
|
并行计算
《并行计算的编程模型》一3.5 远程内存访问:put和get
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.5节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1178 0
|
并行计算 C语言 C++
《并行计算的编程模型》一1.2 MPI基础
本节书摘来华章计算机《并行计算的编程模型》一书中的第1章 ,第1.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2405 0
|
并行计算
《并行计算的编程模型》一3.6.2 fence和quiet:RMA操作排序
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.6.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1281 0
|
并行计算 API
《并行计算的编程模型》一3.4.3 关于分配和对称堆的说明
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.4.3节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1001 0