pic*_*c11 52 c c++ parallel-processing openmp
#pragma omp parallel
{
int x; // private to each thread ?
}
#pragma omp parallel for
for (int i = 0; i < 1000; ++i)
{
int x; // private to each thread ?
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
PS如果局部变量是自动私有的,那么使用私有子句有什么意义呢?
Z b*_*son 45
是的,局部变量是自动私有的.
存在该private
子句的原因是您不必更改代码.
没有private子句并行化以下代码的唯一方法
int i,j;
#pragma omp parallel for private(j)
for(i = 0; i < n; i++) {
for(j = 0; j < n; j++) {
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
是改变代码.例如这样:
int i
#pragma omp parallel for
for(i = 0; i < n; i++) {
int j;
for(j = 0; j < n; j++) {
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
这是完全有效的C89/C90代码,但OpenMP的目标之一是不必更改代码,除了添加pragma
可在编译时启用或禁用的语句.
归档时间: |
|
查看次数: |
31099 次 |
最近记录: |