通过面向消息的中间件,我指的是诸如Advanced Message Queuing Protocol之类的技术。
显然AMQP是一个与MPI不同的野兽,但我认为使用AMQP可以轻松实现以主从方式运行的分布式内存计算,让AMQP处理公平的工作分配给奴隶,因为他们完成了部分而不是管理主服务器中明确的工作队列。
AMQP的额外好处(如果您有数千台计算机一起工作)将导致单个计算机的死亡不会阻止计算进度MPI_Bcast
,因为AMQP可能只是使用扇出而不是MPI_Bcast
,这将对整个计算的进度无阻塞。
是否有任何AMQP用于分布式计算中的任务协调的例子?
更新: Gearman为容错分布式计算提供了一种非常好的方法。
答案 0 :(得分:6)
我认为区分分布式计算和并行计算是有帮助的。我认为并行计算是分布式计算的子类。在分布式计算中,许多处理器用于解决问题,并且问题可以分解为各种任务(例如客户端 - 服务器,给出一个非常简单的示例),处理器可能运行各种代码。
然而,在并行计算中,每个处理器可能运行相同的代码,但需要处理不同的数据部分。
现在,没有硬分布计算结束和并行开始的硬线和快线,但是如果你看一下光谱的两端,那么有规范的例子具有非常不同的特征。我想谷歌可能会展示分布式计算的典型例子,而大型超级计算机中心运行的科学模拟类型提供了并行计算的典型例子。
以上所有内容仅仅是我对你问题的回答的背景:
是的,您当然可以使用AMQP来处理并行计算,是的,您可以使用MPI来实现分布式计算,但我认为您将会遇到针对频谱两端设计的协议功能。
不,我不知道有人使用AMQP做我称之为并行计算的事情。