Как распараллелить эти два цикла, используя OpenMP? - PullRequest
0 голосов
/ 27 октября 2018

Является ли это правильным способом параллельного выполнения двух циклов for с использованием "#pragma omp single nowait" и "#pragma omp for для двух разных циклов"?Или есть другой способ сделать это?

#pragma omp single nowait
{
for (i = ; i < N; i += )
{
D[i] = x * A[i] + x * B[i]; 
}
#pragma omp for
for (i = 0; i < N; i++)
C[i] = c * D[i];
}
} // end omp parallel

1 Ответ

0 голосов
/ 28 октября 2018

Вы должны заметить, что вы можете фактически объединить два цикла for в один ... поскольку для каждого i вы вычисляете D [i], а позже вычисление для C [i] просто зависит от D [i].

вы должны объединить циклы таким образом, а затем просто использовать omp для, как вы делали для второго цикла.

...