Симметричные многопроцессорные и распределенные системы? - PullRequest
3 голосов
/ 02 октября 2011

Являются ли распределенные системы полностью независимой концепцией по сравнению с симметричной многопроцессорной обработкой (поскольку в распределенной системе у нас имеется отдельная память / дисковое хранилище на ЦП, тогда как в симметричных у нас много ЦП, использующих одну и ту же память / дисковое хранилище)?

Ответы [ 2 ]

2 голосов
/ 02 октября 2011

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

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

0 голосов
/ 02 октября 2011

Распределенные вычисления и SMP не одно и то же, хотя DC может использовать SMP.DC - это способ распараллеливания независимых данных рабочей нагрузки для разнородных и слабосвязанных различных систем.

Система SMP - это машина с тесно связанными ЦП и памятью, получающая выгоду от доступа к памяти с малой задержкой и совместного использования данных.среди процессоров, в то время как вычисления происходят.

Пример для распределенных вычислений:
Einstein @ Home - это проект, который пытается найти гравитационные волны по экспериментальным данным, собранным с огромных лазерных интерферометров.Данные, которые должны быть обработаны, довольно независимы, поэтому распределение данных по нескольким различным машинам не составляет проблем.

  • Хранение: общее хранилище не требуется.
  • Общая память: не требуется, посколькупроцедуры FFT, используемые для поиска желаемых результатов, работают с независимыми порциями данных.
  • Распределение рабочей нагрузки: выполняется по пулу разнородных машин.

Пример для симметричной многопроцессорной обработки:
Выполнение вычислений на больших таблицах / матрицах требует определенной близости вычислительных узлов («ЦП» / «DC-узлов»), чтобы иметь возможность завершить вычисления.Если результат вычислений зависит от результата «соседнего» узла, парадигма распределенных вычислений не очень вам поможет.

  • Хранение: должно быть общим и доступным как можно быстрее
  • Общая память: необходим для обмена промежуточными результатами
  • Распределение рабочей нагрузки: происходит в циклическом соединении;программист должен заботиться о том, чтобы спроектировать свои циклы таким образом, чтобы связанные вычисления происходили почти одновременно

Надеюсь, это поможет ... Алекс.

...