天天看点

《并行计算的编程模型》一2.6.2 Hello World示例

第一个示例是经典的“Hello,World!”的C语言GASNet版本,如代码清单2-1所示。从第5行开始,我们使用宏调用GASNet的大部分函数,第19~20行代码表示AM处理程序表(在本例中,其值为空)及其一个指定长度的宏。

《并行计算的编程模型》一2.6.2 Hello World示例

在main()函数中,我们可以看到GASNet应用程序的整体架构:调用gasnet_init、gasnet_attach和gasnet_exit。初始化阶段,该示例不用查询段大小限制,并只请求1页的段(至少1页的堆空间)。此外还调用了gasnet_nodes和gasnet_mynode函数进行自定义通信。正如前文所述,GASNet在退出前要先同步,目的是为了避免在所有节点结束前触发清除执行的逻辑操作。因此在第35~36行的代码中调用了屏障函数。

本节中几乎所有的都是这个例子,只是在后续的示例中重用“Hello,World!”模板,且只需替换需要替换的部分。

继续阅读