0
マルチスレッドについて学ぶためにOpenMPを使用してプログラミングしています。このスレッドでは、11のスレッドであるスレッドは、最後にreturnステートメントに到達する可能性がありますが、一部のスレッドはforループの中で何かに取り組んでいる可能性がありますか?それとも、13行目以降も1つのマスタースレッドになりますか?OpenMPマルチスレッドが1つのスレッドになる
int np, iam;
#pragma omp parallel private(np, iam) num_threads(11)
{
np = omp_get_num_threads();
iam = omp_get_thread_num();
#pragma omp for
for (int i = 2; i < 100; i++) {
std::cout << i;
doStuff(i);
}
}
} // line 13
// synchronize necessary?
return 0;
AFAIK行13の後にスレッドが完了し、1つの実行スレッドに戻ります。 OpenMPの背後にある考え方全体は、スレッドコードを書く一方で、何が並列化可能であるかについてのプラグマを使用してヒントを削除し、OpenMPに何をするのかを任せることです。 – bazza