我有一個基本程序,我試圖運行以確定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內核?還是超線程虛擬內核?你只有一臺電腦或一個集羣? –