Io mpi输出的格式是什么?
这对我来说真的很新鲜。我正在一台机器上测试这个hello world代码Io mpi输出的格式是什么?,io,parallel-processing,mpi,Io,Parallel Processing,Mpi,这对我来说真的很新鲜。我正在一台机器上测试这个hello world代码 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(
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
你能告诉我这是一个不寻常的输出,还是不同机器的输出不同?非常感谢你。
~我觉得这很正常 多个进程基本上同时向同一个终端写入数据,o/s交替写入数据。两个输出之间的差异很容易用平台之间缓冲的差异来解释;一个似乎在缓冲每一行,另一个似乎在缓冲每一个字
您所学到的是,在MPI编程中,如果需要的话,程序员有责任跨进程对操作进行排序。运行时平台不适合您,运行时平台也不同。谢谢。那么不同节点的输出可以同时发生,甚至相互重叠?是这样吗?在另一台机器上,输出可能是行缓冲的。MPI实现通过网络重定向标准IO时,通常也会出现这种情况。@HighPerformanceMark谢谢!可能重复的