我有一个网络,进程向其邻居发送一个随机消息,同时接收来自其邻居的消息。 我可以使用套接字和线程来完成它。一个线程接收消息,另一个线程向随机选择的邻居发送消息。使用MPI_SEND和MPI_RECV可以实现吗?使用MPI同步发送和接收
回答
您可以在多线程环境中使用MPI调用。检查MPI_Init_thread功能和本白皮书的手册:http://www.mcs.anl.gov/~thakur/papers/mpi-threads.pdf。请注意,MPI-1标准不要求实现是线程安全的,只有MPI-2(但您使用的实现最可能是MPI-2)。
谢谢。多线程是唯一的选择,还是理论上可以使用非阻塞发送和接收来实现这一点? – arunmoezhi 2013-02-13 17:48:56
如果不详细了解你的代码正在做什么,很难说,也许有可能以某种方式重新排列算法,然后使用非阻塞调用。另一方面,过去我遇到过非常类似的问题 - 我正在进行并行排序,并且需要同时发送和接收消息;我发现的唯一解决方案是使用两个线程和套接字(当时MPI-2尚不存在,所有可用的MPI-1实现都不是线程安全的)。 – miy 2013-02-13 18:10:47
谢谢。假设我有3个等级,每个等级需要向其他等级发送2个消息。例如,Rank1向Rank1发送2条消息,向Rank1发送2条消息。总共每个等级发送4条消息。但每次发送之间的时间间隔是随机的。我不想在每个sendrecv之间放置一个同步块。 – arunmoezhi 2013-02-13 20:29:21
- 1. MPI - 发送和接收列
- 2. MPI - 发送和接收矩阵的行
- 3. MPI发送和接收死锁
- 4. 如何同步发送和接收?
- 5. 在MPI中使用非阻塞发送和阻塞接收?
- 6. MPI缓冲发送/接收指令
- 7. 如何使用所有处理器在MPI中发送/接收
- 8. MPI中的接收和接收:收到不同的值?
- 9. MPI发送和接收不与工作更然后8182双
- 10. 如何修改MPI阻塞发送和接收到非阻塞
- 11. MPI Fox的算法非阻塞发送和接收
- 12. 如何同步客户端的发送帧和接收帧?
- 13. 发送ajax请求和接收响应(同步)
- 14. 发送和接收消息 - mqlight同步模式
- 15. Java Datagram发送和接收不保持同步
- 16. 重复使用相同的套接字发送和接收(Python)
- 17. 是否可以使用BeginConnect同步Socket的发送和接收方法?
- 18. 同时接收和发送数据报
- 19. UdpClient同时接收和发送
- 20. 发送和接收可变使用PHP
- 21. Android - 使用HTTPPOST发送和接收XML
- 22. 使用WSDL发送和接收在C#
- 23. 使用pthreads模拟发送和接收
- 24. 挂接到Outlook联系人的发送/接收同步事件
- 25. 用MPI发送bitset
- 26. 使用相同的发送和接收数据T = 1 APDU
- 27. MPI:如果发送和接收尺寸不匹配会发生什么?
- 28. 的Python:异步发送/接收正常插座和HTTP连接
- 29. Winsocks发送和接收
- 30. 发送和接收信息
你的意思是发送和接收的非阻塞版本? – arunmoezhi 2013-02-13 17:25:34
没关系。其实,我很难理解你的问题来回答它。 – nhahtdh 2013-02-13 17:29:50
我试过使用它,但我需要把发送放在一个随机发送消息的循环中。在执行循环期间,排名应该会收到任何发送给它的消息 – arunmoezhi 2013-02-13 17:32:15