0
這對我來說確實很新。我在機器上測試這個hello world代碼。mpi輸出的格式是什麼?
program hello
include 'mpif.h'
integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)
character(12) message
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
tag = 100
if(rank .eq. 0) then
message = 'Hello, world'
do i=1, size-1
call MPI_SEND(message, 12, MPI_CHARACTER, i, tag,&
MPI_COMM_WORLD, ierror)
enddo
else
call MPI_RECV(message, 12, MPI_CHARACTER, 0, tag,&
MPI_COMM_WORLD, status, ierror)
endif
write(*,*) 'node', rank, ':', message
call MPI_FINALIZE(ierror)
end program hello
我用mpif90編譯它並提交了4個節點的作業。這就是輸出文件的樣子:
nodenodenode 2 1 0:: Hello, worldHello, world:Hello, world
node 3 :Hello, world
所以我真的很擔心這種格式。我再次沒有太多的MPI經驗。我測試了另一臺機器上,它看起來像這樣:
node 1 :Hello, world
node 0 :Hello, world
node 2 :Hello, world
node 3 :Hello, world
你能告訴我,如果這是一個不尋常的輸出,或者它真的只是從不同的機器到機器?非常感謝。 〜
謝謝。那麼來自不同節點的輸出可以同時發生,甚至相互重疊?這是這個想法嗎? – enni707 2014-10-31 20:31:49
在另一臺機器上,輸出可能是線路緩衝的。當標準IO被MPI實現通過網絡重定向時,也經常出現這種情況。 – 2014-10-31 23:34:04
@高性能標記謝謝! – enni707 2014-11-02 20:31:50