OpenMP APIがスレッドをコアに割り当てる根拠について勉強したいと思っていました。そうする際に考慮すべき要因は何ですか?この割り当ては、プログラマのニーズに応じて変更できますか?OpenMPはどのようにスレッドの割り当てを行いますか?
答えて
オープンスレッドとハードウェアスレッド/コアの間の親和性を探していると思います。答えは、はい、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
gnuのドキュメントでは、完全にサポートされているターゲット(Windowsを除く)にアフィニティサポートが予約されているとはっきりとは思わないと思います。 IntelとgnuのOpenMPはどちらも論理プロセッサあたり1つのスレッドにデフォルト設定されていますが、これは通常は多すぎます(HyperThreadingを無効にしない限り) – tim18
はい、スレッドの数は、プログラマの判断に従って確実に変更できます。
を参照してください:デフォルトOpenMp set number of threads for parallel loop depending on variable
、OpenMPのは、それが実行されている(分散システムの場合)マシン/ノード上のコアの数と同じ数のスレッドを割り当てます。
- 1. openMP:特定のコアに特定のスレッドを割り当てる
- 2. IIS7スレッドはどのように割り当てられますか?
- 3. OpenMPループのboost :: ptr_vectorの割り当て
- 4. アンドロイドトラックの割り当てはどのように行われますか?
- 5. OpenMPのコードセクションに複数のスレッドを割り当てることはできますか?
- 6. スレッドID割り当てはどのように整理されていますか?
- 7. どのように動的にMASMで行列を割り当てますか?
- 8. NSMutableArrayと他のNsMutableArrayの割り当てはどのように割り当てられますか?
- 9. データベースメモリはどのように割り当てられていますか?
- 10. Softlayerチケットグループはどのように割り当てられていますか?
- 11. どのようにMoodleの役割を割り当てますか
- 12. OpenMPの特定のスレッドを特定のCPUコアに割り当てる方法があるかどうかを知りたいですか?
- 13. どのようにデータを分割して割り当てるのですか?
- 14. mysql変数の割り当て:どのように割り当て順序を強制するのですか?
- 15. C++では、fscanfはどのようにメモリアドレスを割り当てますか?
- 16. CUDAスレッド割り当て
- 17. Angular JS投影のwindow.locationにユニットテストの割り当てを行うにはどうすればよいですか?
- 18. pool.map()は内部的にワークをどのように割り当てますか?
- 19. EnumはどのようにCにメモリを割り当てますか?
- 20. これはどのような割り当てですか?
- 21. 私はudacityの割り当てを行うにしようとしていた
- 22. Cassandraはどのようにパーティションを再割り当てしますか?
- 23. Fortranはリンクリストをどのように割り当て解除しますか?
- 24. std :: vectorはどのようにオブジェクトを割り当てますか?
- 25. 大きな配列はどのようにメモリを割り当てますか?
- 26. この機能割り当てはどのように機能しますか?
- 27. 再割り当ての動作はどのように現れますか?
- 28. この変数はどのように割り当てられますか?
- 29. 複数の割り当てはどのように機能しますか?
- 30. このリスト割り当てはどのように機能しますか?
多分広範な質問です。 – pedrorijo91