【发布时间】:2016-09-29 19:22:44
【问题描述】:
我有一些全局变量需要在我的程序的并行化部分中使用。所以我写了这个:
#define N 2000
int x[N], matrix[N][N]
int main(int argc, char **argv)
...
#pragma omp parallel
{
#pragma omp privatethread(x,matrix)
#pragma omp for
for(int k=0; k<100;++k)
/*some function to modify values of x and matrix differently
from run to run*/
...
}
...
带有#pragma的部分是否等同于:
...
#pragma omp privatethread(x,matrix) parallel for
...
声明 #pragma omp parallel 然后 #pragma omp privatethread 和先声明 #pragma omp privatethread 然后 有区别吗>#pragma omp parallel for?我必须在 privathread 部分之后放置一个 { 吗?
#pragma omp privatethread(x,matrix)
{ //<-- here
#pragma omp for
最后,这是在 c 中处理大型向量的好方法,还是在我的 pragma omp 中使用 malloc 并删除 privatethread 部分更好? (请让我知道我是否最好在新帖子中提出这个结尾问题)
【问题讨论】:
标签: c global-variables pragma