消息导向中间件能否代替MPI来协调分布式计算?

4
通过面向消息的中间件,我指的是诸如高级消息队列协议等技术。
显然,AMQP与MPI不同,但我认为,以主从方式运行的分布式内存计算可以轻松地使用AMQP进行实现,让AMQP在从机完成任务后处理公平的工作分配,而不是在主节点中显式地管理工作队列。
如果您有数千台机器一起工作,则AMQP的附加好处是,单个机器的死亡不会使计算在MPI_Bcast时停止进展,因为AMQP可以简单地使用扇出而不是MPI_Bcast,这对整个计算的进展是非阻塞的。
有没有使用AMQP来协调分布式计算中任务的示例?
更新:Gearman提供了一种非常好的容错分布式计算方法。
1个回答

7
我认为有必要区分分布式计算和并行计算。我认为并行计算是分布式计算的一个子类。在分布式计算中,许多处理器被用来解决一个问题,该问题可以分解成各种任务(例如客户端-服务器,只是一个非常简单的例子),处理器可以运行各种代码。
然而,在并行计算中,每个处理器可能在运行相同的代码,但会获取不同部分的数据进行处理。
现在,不存在明确的界限来区分分布式计算和并行计算,但如果您看一下这两个极端,就会发现它们具有非常不同的特点。我想谷歌可能展示了分布式计算的典型例子,而大型超级计算机中心运行的科学模拟则提供了并行计算的典型例子。
所有上述内容只是回答您问题的背景:
是的,您当然可以使用AMQP来解决并行计算问题,也可以使用MPI来实现分布式计算,但我认为您将会受到协议功能的挑战,因为这些功能是为相反极端而设计的。
而且,我不知道是否有人使用AMQP来做我所说的并行计算。

我一直认为并行计算是共享内存和分布式内存并行计算的超类。我已经编辑了这个问题。 - awesomo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接