當我運行「打開MPI」程序時,它通常按隨機順序分配排名我想知道 有沒有辦法總是按順序分配排名?打開MPI排名不是爲了
所以不是這個
Hello, World. I am 2 of 3
Hello, World. I am 0 of 3
Hello, World. I am 1 of 3
我可以得到這個
Hello, World. I am 0 of 3
Hello, World. I am 1 of 3
Hello, World. I am 2 of 3
編輯
這裏
PROGRAM hello
INCLUDE 'mpif.h'
INTEGER*4 :: numprocs, rank, ierr
CALL MPI_INIT(ierr)
CALL MPI_COMM_SIZE(MPI_COMM_WORLD, numprocs, ierr)
CALL MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
write(*,*) 'Hello World. I am', rank, 'of', numprocs
CALL MPI_FINALIZE(ierr)
END PROGRAM hello
我已經測試了i5處理器(代碼4個線程),當我運行
mpirun -np 4 myprog
它可以作爲我希望它,爲了0-3印刷行列,否則(像3如上所示),它只是不會做(測試它象100時)
隊列到主機/內核的映射在每個MPI實現中都是確定性的。每個職位的確切進展在工作過程中(很大程度上)是獨立的。打印的「亂序」性質說明每個進程都已寫入,並且通過stdout將寫入發送回mpirun命令,以便以不同的順序輸出到終端。這是MPI計劃的基本性質。充其量,級別之間存在「鬆散」的協調。並行編程中的基本問題之一是所有級別的同步。 –
@StanGraves非常感謝 –