Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
並列領域内に for ループがある場合、for ループは再び並列化されますか、それともすべてのスレッドが独自の for ループを実行しますか?
T sum; #pragma omp parallel { #pragma omp for reduction(+: sum) for (;;) { T priv_var; sum += priv_var; } }
はい、このコードにより、OpenMPはfor、リージョンによって生成されたスレッド間でループを並列化しparallelます。ただし、現在のforステートメントはOpenMP並列化には無効であると思います。整数ループ変数、開始と終了、および増分式を明示的に指定する必要があります。
for
parallel
実際、コードは。を使用した単一のループと同等になります#pragma omp parallel for reduction(+: sum)。
#pragma omp parallel for reduction(+: sum)
MDSNの詳細