2017-01-09 12 views

答えて

0

オープンスレッドとハードウェアスレッド/コアの間の親和性を探していると思います。答えは、はい、btwです。

インテルのコンパイラを使用する場合は、このサイトでKMP_AAFFINITY環境変数を調べることができます。 https://software.intel.com/en-us/node/522691

GNUコンパイラを使用している場合は、公式のOpenMP環境変数に興味があるかもしれません。 https://gcc.gnu.org/onlinedocs/libgomp/OMP_005fPLACES.html https://gcc.gnu.org/onlinedocs/libgomp/OMP_005fPROC_005fBIND.html

+0

gnuのドキュメントでは、完全にサポートされているターゲット(Windowsを除く)にアフィニティサポートが予約されているとはっきりとは思わないと思います。 IntelとgnuのOpenMPはどちらも論理プロセッサあたり1つのスレッドにデフォルト設定されていますが、これは通常は多すぎます(HyperThreadingを無効にしない限り) – tim18

0

はい、スレッドの数は、プログラマの判断に従って確実に変更できます。

を参照してください:デフォルトOpenMp set number of threads for parallel loop depending on variable

、OpenMPのは、それが実行されている(分散システムの場合)マシン/ノード上のコアの数と同じ数のスレッドを割り当てます。

関連する問題