4

我所说的面向消息的中间件是指高级消息队列协议等技术。

显然 AMQP 是与 MPI 不同的野兽,但我认为以主从方式运行的分布式内存计算可以使用 AMQP 轻松实现,让 AMQP 在从属完成时处理公平的工作分配,而不是管理队列明确地在主人身上工作。

AMQP 的额外好处(如果您有数千台机器一起工作)将是单台机器的死亡不会在MPI_Bcasts 处停止计算的进度,因为 AMQP 可以简单地使用扇出而MPI_Bcast不是阻塞整个计算的进度。

有没有在分布式计算中用于任务协调的 AMQP 示例?

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

4

1 回答 1

7

我认为区分分布式计算和并行计算是有帮助的。我认为并行计算是分布式计算的一个子类。在分布式计算中,许多处理器用于解决问题,问题可能分解为各种任务(例如客户端-服务器,举一个非常简单的例子),处理器可能运行各种代码。

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

现在,分布式计算结束和并行开始并没有硬性规定,但如果你看看频谱的两端,就会发现典型的例子具有非常不同的特征。我想谷歌可能会展示一个分布式计算的典型例子,而大型超级计算机中心运行的各种科学模拟提供了一个并行计算的典型例子。

以上所有内容只是我回答您问题的背景:

是的,你当然可以使用 AMQP 来处理并行计算,是的,你可以使用 MPI 来实现分布式计算,但我认为你会在为相反的两端设计的协议的特性上苦苦挣扎。

不,我不知道有人使用 AMQP 来做我所说的并行计算。

于 2010-10-02T10:25:24.327 回答