首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何制作依赖于-2的doacross循环

如何制作依赖于-2的doacross循环
EN

Stack Overflow用户
提问于 2021-05-18 15:11:33
回答 2查看 71关注 0票数 1

我对OpenMP有意见。我必须做一个循环。例如:

代码语言:javascript
复制
    for (int i = 1; i < SIZE-2; i++) {
        for (int j = 2; j < SIZE-2; j++) {
            tab[i][j] = tab[i][j+2] + tab[i+2][j-2];
        }
    }

这里我依赖于j-2,j+2和i+2,我不知道如何解决这个依赖关系。

EN

回答 2

Stack Overflow用户

发布于 2021-05-18 17:18:02

您可以尝试执行以下操作:

代码语言:javascript
复制
#pragma omp parallel for ordered(2)
for (int i = 1; i < SIZE-2; i++) {
    for (int j = 2; j < SIZE-2; j++) {
        #pragma omp ordered depend(sink:i,j+2) depend(sink:i+2,j-2) 
        tab[i][j] =  tab[i][j+2] + tab[i+2][j-2];
        #pragma omp ordered depend(source)
    }

}
票数 1
EN

Stack Overflow用户

发布于 2021-07-13 18:35:48

我得到了一个基于answer by dreamcrash的工作解决方案

代码语言:javascript
复制
#pragma omp parallel for ordered(2)
for(int i=1; i<N-2; i++){
    for(int j=1; j<N-2; j++){
        #pragma omp ordered depend(sink:i,j-2) depend(sink:i-2,j+1)
        a[i][j] = a[i][j+2] + a[i+2][j-1];
        #pragma omp ordered depend(source)   
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67581509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档