F. 版本 2.0 中的新功能和说明

本附录总结了从版本 1.0 迁移到版本 2.0 时对 OpenMP C/C++ 规范所做的关键更改。 以下项是添加到规范中的新功能:

  • OpenMP 指令中允许使用逗号。

  • 添加 num_threads 子句。 此子句允许用户为并行构造请求特定数量的线程。

  • threadprivate 指令已扩展为接受静态块范围变量。

  • C99 可变长度数组是完整的类型,可以在允许完整类型的任意位置指定,例如在 privatefirstprivatelastprivate 子句列表中(请参阅第 2.7.2 节)。

  • 并行区域中的私有变量可以在嵌套指令中再次标记为私有

  • 已添加 copyprivate 子句。 它提供一种机制,用于使用私有变量将值从团队的一个成员广播到其他成员。 在难以提供这样的共享变量时(例如,在每个级别需要不同变量的递归中),这是对值使用共享变量的替代方法。 copyprivate 子句只能出现在 single 指令上。

  • 添加了与 MPI 例程类似的计时例程 omp_get_wtickomp_get_wtime。 这些函数是执行时钟计时所必需的。

  • 添加了具有 OpenMP C/C++ 中实现定义的行为列表的附录。 在这些情况下,需要一个实现来定义和记录其行为。

  • 以下更改可用于阐明或更正之前适用于 C/C++ 的 OpenMP API 规范中的功能: