Может ли промежуточное ПО, ориентированное на сообщения, использоваться вместо MPI для координации распределенных вычислений? - PullRequest
3 голосов
/ 01 октября 2010

Под промежуточным программным обеспечением, ориентированным на сообщения, я имею в виду такие технологии, как Расширенный протокол очереди сообщений .

Очевидно, что AMQP - это другой зверь, нежели MPI, но я думаю, что вычисления с распределенной памятью, которые работают в режиме «ведущий-ведомый», могут быть тривиально реализованы с использованием AMQP, позволяя AMQP обрабатывать справедливое распределение работы между подчиненными, когда они заканчивают работувместо того, чтобы управлять очередью работы явно в мастере.

Дополнительным преимуществом AMQP (если бы вы работали вместе с тысячами машин) было бы то, что смерть одной машины не остановила бы прогресс вычислений на MPI_Bcast с, потому что AMQP мог просто использоватьразветвление вместо MPI_Bcast, и это не будет препятствовать прогрессу общих вычислений.

Существуют ли примеры использования AMQP для координации задач в распределенных вычислениях?

Обновление: Gearman обеспечивает действительно хороший подход к отказоустойчивым распределенным вычислениям.

1 Ответ

6 голосов
/ 02 октября 2010

Я думаю, что полезно различать распределенные вычисления и параллельные вычисления. Я считаю, что параллельные вычисления являются подклассом распределенных вычислений. В распределенных вычислениях для решения проблемы используется много процессоров, и проблема может быть разложена на множество задач (например, клиент-сервер, чтобы привести очень простой пример), а процессоры могут выполнять множество кодов.

Однако в параллельных вычислениях каждый процессор, вероятно, будет выполнять один и тот же код, но обрабатывать разные части данных.

Теперь нет жесткой и быстрой линии, где заканчивается распределенное вычисление и начинается параллель, но если вы посмотрите на два конца спектра, то найдутся канонические примеры, которые имеют очень разные характеристики. Я полагаю, что Google может продемонстрировать канонический пример распределенных вычислений, в то время как виды научного моделирования, выполняемые крупными суперкомпьютерными центрами, предоставляют канонический пример параллельных вычислений.

Все вышесказанное является просто предысторией моего ответа на ваш вопрос:

Да, вы, безусловно, могли бы использовать AMQP для решения параллельных вычислений, и да, вы могли бы использовать MPI для реализации распределенных вычислений, но я думаю, что вы будете бороться с функциями протоколов, которые предназначены для противоположных концов спектра.

И нет, я не знаю никого, кто использовал AMQP для выполнения того, что я называю параллельными вычислениями.

...