pragma omp parallel for vs.pragma omp parallel 在C++与OpenMP中,之间有什么不同 #pragma omp parallel for for(int i=0; i<N; i++) { ...

pragma omp parallel for vs.pragma omp parallel 在C++与OpenMP中,之间有什么不同 #pragma omp parallel for for(int i=0; i<N; i++) { ... ,c++,openmp,C++,Openmp,pragma omp parallel for vs.pragma omp parallel 在C++与OpenMP中,之间有什么不同 #pragma omp parallel for for(int i=0; i<N; i++) { ... } #pragma omp parallel for 对于(int i=0;i#pragma omp parallel for(int i=0;第二种情况下,每个线程都指向同一个作业(整个for循环)。第一种情况下,线程之间共享工作,因此每个

pragma omp parallel for vs.pragma omp parallel 在C++与OpenMP中,

之间有什么不同
#pragma omp parallel for
for(int i=0; i<N; i++) {
   ...
}
#pragma omp parallel for
对于(int i=0;i
#pragma omp parallel

for(int i=0;第二种情况下,每个线程都指向同一个作业(整个for循环)。第一种情况下,线程之间共享工作,因此每个线程执行
N/t
迭代,其中
t
是线程数。我明白了;这就是我需要的。因此,第一个选项(
\pragma omp parallel
)将总共执行N次读取*N次迭代,循环中任何形式为
vec[i]=result;
的语句都会把一切搞砸。@FranciscoJ.R.Ruiz这是正确的。如果这个答案是您的问题,请随意将其标记为答案:)当然!非常感谢。
#pragma omp parallel
for(int i=0; i<N; i++) {
   ...
}
#pragma omp parallel
for(int i=0; i<N; i++) {
   ...
}
#pragma omp parallel
{
    #pragma omp for
    for( int i=0; i < N; ++i )
    {
    }

    #pragma omp for
    for( int i=0; i < N; ++i )
    {
    }
}