Visual Studio中的OpenMP任务
OpenMP tasks in Visual Studio
我正在尝试学习基于OMP库任务的编程,作为一个例子,我复制并粘贴了下面从一本书中获取的代码,它输出错误
'task' : expected an OpenMP directive name
和
'taskwait' : expected an OpenMP directive name
我可以运行omp并行循环,但不能运行任务。你知道在visual studio中omp任务是否需要进一步的调整?
#include "stdafx.h"
#include <omp.h>
int fib(int n)
{
int i, j;
if (n<2)
return n;
else
{
#pragma omp task shared(i) firstprivate(n)
i=fib(n-1);
#pragma omp task shared(j) firstprivate(n)
j=fib(n-2);
#pragma omp taskwait
return i+j;
}
}
int main()
{
int n = 10;
omp_set_dynamic(0);
omp_set_num_threads(4);
#pragma omp parallel shared(n)
{
#pragma omp single
printf ("fib(%d) = %dn", n, fib(n));
}
}
不幸的是,即使Visual Studio 2019仍然只支持OpenMP 2.0,而Tasks是OpenMP 3.0的补充,目前的标准是5.0。
相关文章:
- 任务内部的 OpenMP 任务循环
- OpenMP 任务看不到共享变量的更改
- openMp 动态调度与按处理时间排序任务时的 LPT 调度相同吗?
- OpenMP 任务等待不起作用
- OpenMP 4.5 任务依赖关系和执行顺序
- OpenMp 任务:无法通过引用传递参数
- 在OpenMP上的并行合并排序上的数组大小问题.如何将合并分类分类为更多任务
- 您可以在 OpenMP 中将特定线程 ID 分组到唯一的任务组中吗?
- C 异步与OpenMP任务
- 在OpenMP中设计具有任务的算法
- OpenMP任务依赖性忽略了
- 在隐式屏障处等待 OpenMP 任务完成
- OpenMP 任务中的数据属性
- OpenMP:即使在深度极限的情况下,递归任务也比顺序慢
- 传递"shared"指针的 OpenMP 任务
- C++ OpenMP 任务 - 通过引用问题传递
- 使用矩阵乘法任务的OpenMP
- 使用OpenMP将循环划分为唯一的任务
- 在OpenMP中屈服于其他线程/任务
- Visual Studio中的OpenMP任务