指针的OpenMP 4.0任务依赖项(OmpSs样式)

时间:2014-06-10 15:23:18

标签: dependencies task openmp

我想通过指针在变量引用上指定#pragma omp task depend(...)子句。这可以在OmpSs中看起来像:

#pragma omp task in(*var1) out(*var2)

基本上这是我想在OpenMP 4.0中做的,但是代码如下:

#pragma omp task depend(in: *var1) depend(out: *var2)

产生以下错误:

error: expected identifier before ‘*’ token
    #pragma omp task depend(in: *var1) depend(out: *var2)

如何在OpenMP 4.0中完成?

1 个答案:

答案 0 :(得分:3)

根据Hristo Ilievcomment,正确的解决方法是将指针视为大小为1的数组:

#pragma omp task depend(in: var1[:1]) depend(out: var2[:1])

arr[lower bound : length] pragma中允许的数组部分语法depend如果省略则将lower bound设置为0,如果省略则将length设置为数组大小(因此不允许指针类型)。