首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在#pragma for中忽略clause子句

在#pragma for中忽略clause子句
EN

Stack Overflow用户
提问于 2011-05-04 18:37:51
回答 1查看 4.6K关注 0票数 2

我有以下使用OpenMP的C代码:

代码语言:javascript
复制
  #pragma omp parallel default(none) private(i, j, k) shared(lb0, ub0, lb1, ub1, lb2, ub2, g, current, update, diff, dg)
  #pragma omp for collapse(3)
  for( i = lb0; i <= ub0; i++ ) {
    for( j = lb1; j <= ub1; j++ ) {
      for( k = lb2; k <= ub2; k++ ) {
    g->data[ update ][ i ][ j ][ k ] = 
      ONE_SIXTH * ( g->data[ current ][ i + 1 ][ j     ][ k     ] +
            g->data[ current ][ i - 1 ][ j     ][ k     ] +
            g->data[ current ][ i     ][ j + 1 ][ k     ] +
            g->data[ current ][ i     ][ j - 1 ][ k     ] +
            g->data[ current ][ i     ][ j     ][ k + 1 ] +
            g->data[ current ][ i     ][ j     ][ k - 1 ] );
    diff = fabs( g->data[ update ][ i ][ j ][ k ] - g->data[ current ][ i ][ j ][ k ] );
    dg = dg > diff ? dg : diff;
      }
    }
  }

据我所知,我遵循的是将clause子句与#杂注omp for指令一起使用的规则,但是当我编译它时,我得到了以下错误:

代码语言:javascript
复制
grid.c: In function ‘grid_update’:
grid.c:202: error: expected ‘#pragma omp’ clause before ‘collapse’
make: *** [grid.o] Error 1

我在这里做错了什么?我曾尝试将#pragma omp collapse作为单独的指令,但也不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-04 20:17:42

我认为崩溃是OpenMP 3(2008)中的新事物;有没有可能你正在使用一个不支持它的更老的编译器--比(比方说) gcc 4.4更早的编译器?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5882095

复制
相关文章

相似问题

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