我有一个基本程序,我试图运行以确定MPI将放置任务的位置,因为任务数量大于可用处理器的数量(超额订阅)。如果我运行,例如,mpirun -np <program name>
结果会给:如何确定本地节点在MPI中的任务位置
processor 0 of 4
processor 1 of 4
processor 2 of 4
processor 3 of 4
但是,如果我在“8”的处理器上运行相同的命令,我得到:
processor 1 of 8
processor 2 of 8
processor 5 of 8
processor 6 of 8
processor 4 of 8
processor 3 of 8
processor 7 of 8
processor 0 of 8
据我所知,有没有8实际的核心运行我的程序,而是我有多个任务在相同的处理器上运行,我想知道它们是如何分布的。提前致谢。
编辑:
program test
! Similar to "Hello World" example- trying to determine rank/ node placement
use mpi
implicit none
integer :: procid, ierr, numprocs, name_len
integer:: local
local= 'OMPI_COMM_WORLD_LOCAL_RANK'
!character* (MPI_max_processor_name) name
call MPI_INIT(ierr)
call MPI_COMM_SIZE(MPI_COMM_World, numprocs, ierr)
call MPI_COMM_RANK(MPI_COMM_World, procid, ierr)
!call Mpi_Get_Processor_Name(name,name_len, ierr)
print*, 'processor', procid, 'of', numprocs, 'On Local Node:',' ', local
call mpi_finalize(ierr)
end program test
您正在使用哪种MPI实现? – francescalus
您正在使用哪种CPU架构?你是什么意思的字*“处理器”*?你是指一个插座中的物理CPU吗?还是一个CPU内核?还是超线程虚拟内核?你只有一台电脑或一个集群? –