gpt4 book ai didi

c++ - OpenMP 中 omp_set_max_active_levels 的最佳值是多少?

转载 作者:行者123 更新时间:2023-11-30 05:12:20 25 4
gpt4 key购买 nike

我有一个具体的例子,但我也对更一般的答案感兴趣。给定以下代码和一个均匀平衡的二叉树:

void mainTraverse(tree *node) {
omp_set_nested(1);
omp_set_max_active_levels(4);
recurseTraverse(node);
}

void recurseTraverse(tree *node)
{
if (node == NULL)
return;

#pragma omp parallel
{
#pragma omp sections
{
#pragma omp section
recurseTraverse(node->left);

#pragma omp section
recurseTraverse(node->right);
}
}

// lengthy per-node computation here
}

根据 OpenMP 规范:

omp_set_max_active_levels 例程限制嵌套事件并行区域的数量。

但这到底是什么意思呢?4 是 set_max_active_levels 的最佳值吗?此代码将创建多少个线程?

最佳答案

您应该使用 OpenMP 任务(而不是部分和嵌套并行性)执行此操作,正是因为您的问题无法回答!

关于c++ - OpenMP 中 omp_set_max_active_levels 的最佳值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44608203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com