OpenMP子句的推荐缩进样式是什么?

时间:2019-03-04 06:46:47

标签: openmp pragma

OpenMP子句和括号可以在代码中同时存在。嵌套的OpenMp子句有任何编码风格的规定吗?

例如:

#pragma omp parallel
for (int i = 0; i < N; i++) {
  code1();
  #pragma omp for // Should this line be intended?
  for (int j = 0; j < M; j++) {
  code2();
  #pragma omp critical { 
    code3(); // Should this block and brackets be intended?
    }
  }
  code4();
}

1 个答案:

答案 0 :(得分:0)

从OpenMP的角度来看,没有关于如何缩进代码的真正指南。

我编写代码的方式如下:

#pragma omp parallel
for (int i = 0; i < N; i++) {
  code1();
#pragma omp for // Should this line be intended?
  for (int j = 0; j < M; j++) {
    code2();
#pragma omp critical 
    { // this curly brace needs to go on its own  line
      code3(); // Should this block and brackets be intended?
    }
  }
  code4();
}

因此,编译指示从第一列开始,并且基本语言代码遵循您使用的任何样式。原因是,如果删除所有OpenMP编译指示,您仍然会获得“漂亮的”基础语言代码。

我似乎还记得,编译器编译指示必须在第一列中包含其“#”。由于我不确定ISO C / C ++是否真正需要它,因此我将其保留为其他内容以更正我的记忆。我最近没有看到任何编译器可以执行它。