2.2 GASNet概述
最初设计的GASNet主要为支持源到源翻译技术的语言编译器把并行程序转换为使用库的串行代码(通常是C语言)服务,在实现并行通信的同时凸显了并行语言在其他方面的区别,如UPC中的全局内存分配和锁。由于GASNet是语言无关的,因此翻译的代码通常需要调用特定语言的运行时库。实现通信的GASNet可以由翻译的代码直接调用或通过特定的运行时库间接调用。因为GASNet最初用于源到源翻译,因此GASNet现在主要用于代码自动生成方面以及为开发并行运行时库的专业程序员提供服务。当性能与易用性发生冲突时,该设计倾向于选择获得高性能。GASNet的另一个优点是所指定实现的“接口”或“调用”不必以函数形式实现。因此,通常使用C语言的预处理宏对GASNet进行调用(尤其是从GASNet接口简单映射到供应商提供的网络API中)。
GASNet同时具有较好的可移植性,几乎所有平台架构都可以直接有效实现GASNet接口。在编写本书之时,GASNet已经应用在常见互连集群的网络API上,甚至是在当前可用的IBM和Cray超级计算机上。此外,GASNet也正尝试在中国与日本最大的超算机器上进行移植。
接下来将介绍GASNet使用规范和本章所使用的相关术语,并对GASNet的功能进行概述。后续部分将详细地介绍本节概述的内容及其使用示例,并对GASNet未来的发展进行了展望。