6
omp_set_dynamicが使用されているとき、OpenMPランタイムは最適なスレッド数をどのように決定しますか?omp_set_dynamic - ランタイムはスレッドの数をどのように決定しますか?
何らかのタイミングメカニズムが使用されているか、コンパイラがタスクサイズの大きさのランタイムにヒントを与えていますか?
omp_set_dynamicが使用されているとき、OpenMPランタイムは最適なスレッド数をどのように決定しますか?omp_set_dynamic - ランタイムはスレッドの数をどのように決定しますか?
何らかのタイミングメカニズムが使用されているか、コンパイラがタスクサイズの大きさのランタイムにヒントを与えていますか?
私は、OpenMPが「ベスト」という言葉のような意味でアプリケーションのスレッドの「最良の」数を決定するとは思わない。 @aaaがコメントしたように、omp_set_dynamic
がtrueのときのランタイムの動作は実装固有のものです。
現在のFortran/C/C++コンパイラでは、実行時にタイミングやタスクサイズなどの情報を提供できないと思います。
私はスケジューラ(および同様のもの)がスループットなどのためにマシン上のプログラムを管理できるように、この機能を利用できると確信しています。
完全実装固有です。おそらく、ネストされた並列ブロックを使用しない限り、使用可能なすべてのコアを使用することになります – Anycorn