我试图更好地理解启用了超线程的多核处理器是如何工作的。假设我有一个可以使用MPI或OpenMP或MPI + OpenMP进行编译的应用程序。我想知道如何在CentOS 5.3机箱上安装四个Xeon X7560 @ 2.27GHz处理器,并且每个处理器内核都启用了超线程技术。如何将应用程序安排在启用了超线程的多核计算机上?
处理器在/ proc/cpuinfo中的编号从0到63。对于我的理解,有4个8核物理处理器,总物理核心都是32,每个处理器核心都有支持超线程,总逻辑处理器64
与MPICH2 编译多少物理如果我用mpirun -np 16运行核心将被使用?它是否在可用的16个物理内核或16个LOGICAL处理器(使用超线程的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运行,它将如何计划?
感谢
杰里