プログラム実行がomp sections
ディレクティブに達すると、次のomp section
ディレクティブで定義されたプログラムセグメントが、使用可能なスレッド間で並列実行用に分散されます。元のスレッドは、 `omp section`ディレクティブによって定義されたプログラムセグメントの1つを実行しますか?
は元のスレッド、
omp sections
に到達する前に実行され、すなわち糸、omp section
ディレクティブによって定義されたプログラムセグメントの1つを実行するスレッドのいずれか?omp section
ディレクティブで定義されたプログラムセグメントの実行がすべて終了した後、元のスレッドだけが存在して実行を継続しますか?
次の例では、どのスレッドが元のスレッドですか、1または2かほかのですか?
#pragma omp sections
{
# pragma omp section
{ printf("thread 1 here\n"); }
# pragma omp section
{ printf("thread 2 here\n"); }
}
ありがとうございます。
ありがとうございました。現在のスレッドのスレッドID番号はどうやって取得できますか? – Ben
'omp_get_thread_num()' – Zulan
マスターがセクションの1つを実行するように "促す"ために、ある種のOpenMPノブがありますか?マスターが並列ブロックの最後で結合を実行するので、ワーカースレッドが各セクションを実行できるように、マスタースレッドは中断され(自発的にCPUスライスを放棄する)、 – igaz