假设有人有兴趣编写一个 python
应用程序,其中应该有不同进程之间的通信。通信将通过发送 strings
和/或 numpy
数组来完成。
选择 OpenMPI
与 RabbitMQ
之类的工具相比,有哪些考虑因素?
最佳答案
这个问题没有单一的正确答案。这一切都取决于大量不同的因素。例如:
- 你有什么样的沟通方式?您发送的是大数据包还是小数据包,您需要好的带宽还是低延迟?
- 您需要什么样的交付保证?
- OpenMPI 可以立即将消息仅传递给正在运行的进程,而不同的 MQ 解决方案可以对消息进行排队并允许花哨的生产者-消费者配置。
- 你有什么样的网络?如果你在本地主机上运行,像
ZeroMQ
这样的东西可能是最快的。如果您在一组主机上运行,则取决于可用的互连。例如。 OpenMPI 可以利用 infiniband/mirynet 链接。 - 你在做什么处理?使用 MPI,所有进程通常同时启动,同时进行处理和终止。
关于Python:OpenMPI 与。兔MQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6756630/