第2章
Programming Models for Parallel Computing
全局地址空间网络
Paul Hargrove,劳伦斯伯克利国家实验室
2.1 研究背景与动机
2002年,加州大学伯克利分校和劳伦斯伯克利国家实验室中的一个研究小组开始了对统一并行C语言(UPC,详见第4章)的编译器研究工作。该小组的部分成员参与了Java并行编程框架——Titanium [277]的编译器和运行时库的研究。这些前期工作推动了支持UPC和Titanium网络通信的语言无关代码库的设计发展,为最终实现适用范围更广的全局地址空间语言库奠定了基础。他们最新的研究成果名为全局地址空间网络库,通常简称为“GASNet”。GASNet使用C语言开发,同时也支持C++。
在编写本书时GASNet的当前版本为1.8。读者可以从GASNet项目官网下载最新版本[174]。
GASNet从发布以来,已经广泛应用在许多全局地址空间语言实现的网络层。除伯克利的UPC编译器外[173],Intrepid Technology公司的开源UPC编译器[146](GUPC)以及休斯敦大学的开源UPC编译器[278](OpenUH)都在使用GASNet。莱斯大学将GASNet用于他们原始版本的Co-Array Fortran (CAF)及CAF2.0编译器上[239]。Cray的UPC与CAF编译器[96]把GASNet应用在Cray XT系列机器上,且Cray Chapel(详见第6章)在多个平台上都使用了GASNet。此外,OpenSHMEM(详见第3章)所引用的休斯敦大学与橡树岭国家实验室开发的项目也是通过GASNet实现的。除了上述语言和库外(部分内容将在本书的后续章节中进行介绍),GASNet在其他研究项目中也得到了广泛使用。