【发布时间】:2016-05-18 18:35:37
【问题描述】:
我想创建一个全局对象数组(OpenMP 产生的每个可能线程一个对象)并在整个程序中重用它。每个线程将使用omp_get_thread_num 读取其编号并使用它来索引数组。
如何获取程序整个执行过程中可能创建的OpenMP线程的最大数量?
omp_get_max_threads 的文档说这个函数被指定返回一个特定于调用它的特定并行区域的值
omp_get_max_threads- 并行区域的最大线程数说明:返回不使用子句 num_threads 的当前并行区域使用的最大线程数。
而MSDN documentation 的措辞暗示omp_get_max_threads 在并行区域之外返回的值与在任何其他点返回的值相同。
omp_get_max_threads如果在代码中的该点定义了没有 num_threads 的并行区域,则返回一个等于或大于可用线程数的整数。
哪一个是正确的?
【问题讨论】:
标签: openmp