ハイパースレッディング対応マルチコアプロセッサの仕組みをよりよく理解しようとしています。私はMPIまたはOpenMPまたはMPI + OpenMPでコンパイルできるアプリケーションを持っているとしましょう。私はそれが4つのXeon X7560 @ 2.27GHzプロセッサを搭載したCentOS 5.3ボックスでどのようにスケジューリングされ、各プロセッサコアにハイパースレッディングが有効になっているのだろうかと思います。ハイパースレッディング対応のマルチコアマシンでは、どのようにアプリケーションをスケジューリングしますか?
プロセッサには、/ proc/cpuinfoに0〜63の番号が付けられています。私の理解のために、4つの8コアの物理プロセッサがあり、合計の物理コアが32あり、各プロセッサコアは、ハイパースレッディングが有効になっている、総論理プロセッサは、MPICH2 でコンパイル64
はどのように多くの物理mpirun -np 16を実行するとコアが使用されますか?利用可能な16個の物理コアまたは16個の論理プロセッサ(ハイパースレッディングを使用する8個の物理コア)に分割されていますか?
OpenMPでコンパイル OMP_NUM_THREADS = 16に設定すると、いくつの物理コアが使用されますか? 16個のLOGICALプロセッサを使用しますか?
MPICH2 + OpenMPでコンパイル OMP_NUM_THREADS = 16に設定してmpirun -np 16で実行すると、いくつの物理コアが使用されますか?
- OpenMPIのでコンパイル
OpenMPIのは、二つのランタイム・オプション
ジョブに割り当てられた論理CPUを指定-cpuセット、 -cpuあたりのPROCにCPUの数を指定有します各プロセスに使用します。
mpirun -np 16 -cpu-set 0-15を実行すると、8個の物理コアのみが使用されますか。
mpirun -np 16 -cpu-set 0-31 -cpu-per-proc 2を実行する場合、どのようにスケジュールされますか?
おかげ
ジェリー