Распространение по сравнению с MPI по сравнению с zeromq?

for (int i = 1; i < list.length; i++)
      list[i] = list[i - 1];

эквивалентно:

list [1] = list [1-1] = list [0] = 1 list [2] = list [2-1] = list [1 ] = 1 список [3] = список [3-1] = список [2] = 1 список [4] = список [4-1] = список [3] = 1 список [5] = список [5-1] = list [4] = 1

Получил?

45
задан Community 23 May 2017 в 11:55
поделиться

2 ответа

MPI был разработан с сильной связью, вычисляют кластеры с быстрыми, надежными сетями. Распространение и ØMQ разработаны для больших распределенных систем. При разработке параллельного научного приложения пойдите с MPI, но если Вы разрабатываете персистентную распределенную систему, которая должна быть эластичной к отказам и сетевой нестабильности, использовать одного из других.

MPI имеет очень ограниченные средства для отказоустойчивости; поведение обработки ошибок по умолчанию в большинстве реализаций является сбоем в масштабе всей системы. Кроме того, семантика MPI требуют, чтобы все сообщения, отправленные в конечном счете, были использованы. Это имеет много смысла для моделирований на кластере, но не для распределенного приложения.

53
ответ дан Todd Gamblin 26 November 2019 в 21:21
поделиться

Я не пользовался ни одной из этих библиотек, но я могу быть в состоянии дать некоторые подсказки.

  1. MPI является протоколом связи, в то время как Распространено, и ØMQ являются фактической реализацией.
  2. MPI прибывает из программирования "параллели", в то время как Распространение прибывает из "распределенного" программирования.

Так, это действительно зависит от того, пытаетесь ли Вы создать параллельную систему или распределенную систему. Они связаны друг с другом, но подразумеваемые коннотации/цели отличаются. Параллельное программирование имеет дело с увеличением вычислительной мощности при помощи нескольких компьютеров одновременно. Распределенное программирование имеет дело с надежным (последовательный, отказоустойчивый и высоконадежный) группа компьютеров.

понятие "надежности" немного отличается от того из TCP. Надежность TCP, "дают этому пакету до конца программу несмотря ни на что." Надежность распределенного программирования, "даже если некоторые машины перестают работать, система в целом продолжает работать последовательным способом". Чтобы действительно гарантировать, что все участники получили сообщение, можно было бы быть нужно что-то как 2 фиксации фазы или одна из более быстрых альтернатив.

14
ответ дан Eugene Yokota 26 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: