可以使用面向消息的中间件代替MPI来协调分布式计算吗?

awe*_*omo 3 language-agnostic parallel-processing message-queue amqp

面向消息的中间件我指的是诸如高级消息队列协议之类的技术.

显然AMQP是一个与MPI不同的野兽,但我认为使用AMQP可以轻松实现以主从方式运行的分布式内存计算,让AMQP处理公平的工作分配给奴隶,因为它们完成了部分而不是管理队列在主人中明确地工作.

AMQP(如果你有成千上万一起工作的机器)的附加好处是,一台机器的死也不会失速在计算进度MPI_BcastS,因为AMQP可以简单地使用扇出代替MPI_Bcast,这将是不阻止整体计算的进度.

是否有任何AMQP用于分布式计算中的任务协调的示例?

更新: Gearman为容错分布式计算提供了一种非常好的方法.

Hig*_*ark 6

我认为区分分布式计算和并行计算是有帮助的.我认为并行计算是分布式计算的子类.在分布式计算中,许多处理器用于解决问题,并且该问题可以被分解成各种任务(例如,客户端 - 服务器,给出非常简单的示例),并且处理器可以运行各种代码.

但是,在并行计算中,每个处理器可能运行相同的代码,但需要处理不同的数据部分.

现在,没有硬分布计算结束和并行开始的硬线和快线,但是如果你看一下光谱的两端,那么有规范的例子具有非常不同的特征.我想谷歌可能会演示一个分布式计算的典型例子,而大型超级计算机中心运行的各种科学模拟提供了并行计算的典型例子.

所有上述内容仅仅是我对您问题的回答的背景:

是的,您当然可以使用AMQP来处理并行计算,是的,您可以使用MPI来实现分布式计算,但我认为您可能正在努力应对针对频谱两端设计的协议的功能.

不,我不知道有人使用AMQP做我称之为并行计算的事情.