《并行计算的编程模型》一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]。这些轻量级的实现将开发那些部署在未来超大规模系统中的硬件性能。对目前在千兆及未来千兆兆操作的系统所承载的工作量来说,将网络提升到“一等公民”的位置很重要。

相关文章
|
分布式计算 资源调度 并行计算
并行计算框架MapReduce编程模型
思想:分而治之 map:对每一部分进行处理 reduce :汇总map结果 map是MapReduce最核心的。 mapreduce编程模型 一种分布式计算模型,解决海量数据计算问题 MapReduce把整个并行计算的过程抽象到两个函数,map和reduce函数。
1470 0
|
分布式计算
我对分布式计算框架的理解与设计
谢谢大家来看这篇文章,我想花点时间分享一下我对分布式计算的理解。 分布式服务有很多,比如hbase, hadoop, spark等,我所要讲述的重点不是这些服务的原理,而是用更浅显的话讲述更深刻的设计。 如何把多个的机器组合起来完成一件简单的计算任务,所以这方面的架构设计更多的关注服务器间的关系。 下面我们来设计一个框架,以进行简单的分布式计算。 我们假设计算目标有三类: 1.分布计算能
2866 0
《OpenACC并行程序设计:性能优化实践指南》一 第1章 从串行编程到并行编程
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第1章,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1171 0
|
并行计算 安全
《并行计算的编程模型》一1.9 其他特性
本节书摘来华章计算机《并行计算的编程模型》一书中的第1章 ,第1.9节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1419 0
|
并行计算 算法 API
《并行计算的编程模型》一导读
对于正在编程的程序员,编程模型可被看作一台虚拟机,并可通过编程语言和函数库实现。如果某个编程模型成为计算机科学研究中的热点,需要具有以下特性:高效性(易于描述各种抽象算法)、移植性(兼容各种硬件计算平台)、高性能(高效均衡地利用硬件平台的计算能力)、通用性(广泛地描述各种算法)。
3301 0
|
并行计算 索引
《并行计算的编程模型》一2.3.1 开始和结束
本节书摘来华章计算机《并行计算的编程模型》一书中的第2章 ,第2.3.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1061 0
|
并行计算
《并行计算的编程模型》一1.11 总结
本节书摘来华章计算机《并行计算的编程模型》一书中的第1章 ,第1.11节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1021 0
|
并行计算
《并行计算的编程模型》一1.3 点对点通信
本节书摘来华章计算机《并行计算的编程模型》一书中的第1章 ,第1.3节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1289 0
|
并行计算 API
《并行计算的编程模型》一2.5.1 GASNet工具
本节书摘来华章计算机《并行计算的编程模型》一书中的第2章 ,第2.5.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
972 0
|
并行计算 安全
《并行计算的编程模型》一2.2.1 相关术语
本节书摘来华章计算机《并行计算的编程模型》一书中的第2章 ,第2.2.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
969 0