bea*_*one 2 c linux parallel-processing mpi openmpi
比如我用mpirun -n 4启动4个进程。进程 0 接收来自进程 1、进程 2 和进程 3 的消息。进程 1 按 的顺序发送消息message0, message1, message2。当进程0收到这些来自进程1的消息时,能否保证进程按顺序接收这些消息message0, message1, message2?我不关心来自所有不同进程的所有消息的总顺序,我只需要知道它是否可以保证来自同一个进程的消息的顺序。顺便说一句,当我使用MPI_Send()发送消息时,消息的大小是有限的,对吗?怎么样MPI_Bcast()?
只要message0、message1、 和message2具有相同的tag和 在同一个通信器中发送comm,MPI 标准保证MPI_Recv(..., source, tag, comm, ...)将以完全相同的顺序接收消息。
消息的大小受实现的限制,但大多数现代的支持超过 2 GiB 大小的消息。您必须使用用户定义的数据类型,因为MPI_Send一次不能发送超过 2 31 -1 个元素。