OcamlMpi具有阻止发送和接收的说明。有没有人为ocamlmpi做过非阻塞性接收?

最佳答案

不幸的是,在OcamlMPI源中似乎没有任何对非阻塞MPI调用的引用。但是,我注意到对于阻塞版本,使用了MPI_Send。在某些情况下,MPI_Send的行为类似于非阻塞调用(例如,对于适合默认传出消息缓冲区的小消息),但是该行为取决于实现,因此您不能依靠它。

从OcamlMPI源代码的外观来看,我认为实现自己的非阻塞等效项并不困难,请查看“msgs.c”(OcamlMPI源代码中的文件),函数“caml_mpi_send”包含标准发送的代码。用MPI_Isend替换MPI_Send并处理MPI_Request数据结构的返回应该可以解决问题。哦,您需要为MPI_Wait添加另一个功能。检查MPI standard以获取更多信息。

希望有帮助!

关于ocaml - 是否在mpi + ocaml中阻止接收?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4064616/

10-11 15:32