Go to main content

Oracle® Developer Studio 12.6 发行版的新增功能

退出打印视图

更新时间: 2017 年 7 月
 
 

OpenMP

本节讨论 OpenMP API 的新增功能和更新。

  • 改进的动态循环调度-OpenMP 4.5 规范澄清了动态循环调度如何将块分配给线程。循环迭代的块不能保证按单调顺序分配给线程。例如,在下面的 OpenMP 动态循环中,第 50 个迭代在第 0 个迭代之前执行。

    #pragma omp parallel for num_threads(2) schedule(dynamic)
    for (i=0;i<100;i++) A[i] = B[i];

    这可以实现更高效的动态循环调度实施。

  • OpenMP 任务 Pragma 的优先级子句-优先级子句功能包括以下内容:

    • OMP_MAX_TASK_PRIORITY 环境变量

    • omp_get_max_task_priority() API 例程

    有关更多信息,请参见 OpenMP 4.5 规范第 2.9.1 部分中用于任务构造的优先级子句,第 4.14 部分中的 OMP_MAX_TASK_PRIORITY 环境变量,以及第 3.2.36 部分中的 omp_get_max_task_priority API 例程。

  • 针对线程关联(处理器绑定)的查询函数-添加了以下查询 API 例程:

    • omp_get_num_places()

    • omp_get_place_num_procs()

    • omp_get_place_proc_ids()

    • omp_get_place_num()

    • omp_get_partition_num_places()

    • omp_get_partition_place_nums()

    有关更多信息,请参见 OpenMP 4.5 规范第 256 页的第 3.2.23 部分和第 261 页的第 3.2.28 部分

有关 OpenMP 的更多信息,请参见Oracle Developer Studio 12.6: OpenMP API User’s Guide