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