高性能并行运行时系统:设计与实现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 代码示例

除非有特定的语言相关的需求(例如,为了说明向量化为什么在Fortran中比在C/C++中更容易实现),否则本书中的代码示例都是用C或C++编写的。当然,如果你想亲自实现并行运行时,那么你完全可以使用另一种语言。你应该选用一种易于访问底层机器细节、速度足够快,且无须跨越多个边界(例如,解释至本地执行)的语言。

我们当然不是想向任何人兜售C++,但它确实在各个现代编程范式之间提供了良好平衡,同时还提供了对底层机器细节的轻松访问方式。由于我们的选择会帮你学习足够的C++知识,以理解那些示例,因此,对于其他不是运行时代码的示例,我们也自然地使用了C++。OpenMP应用程序接口与Intel TBB将分别作为并行语言和并行库的主要示例。

在本书中,大多数用来演示并行运行时系统实现的代码示例,都可作为小型OpenMP运行时系统的一部分。你可以从https://github.com/parallel-runtimes/lomp(“Little OpenMP Runtime”)下载该小型OpenMP运行时系统。该实现与Intel C/C++编译器、Fortran和Clang所使用的实现OpenMP语言的内部API兼容。虽然该实现不完整,并且仅涵盖了OpenMP应用程序接口的很小一部分,但它足以涵盖书中展现的OpenMP语言特性,包括一部分OpenMP任务。