Каждый из способов организации доступа к памяти имеет свои достоинства и недостатки. При наличии общей памяти значительно упрощается написание параллельных программ, что является неоспоримым преимуществом, но при этом значительно ограничена масштабируемость таких систем. Наличие распределённой памяти между отдельными узлами системы имеет следующие преимущества: уменьшается задержка обращения к локальной памяти из-за отсутствия конфликтов при доступе к ней; наличие распределённой памяти – это эффективный способ повышения пропускной способности, так как все операции обращения к памяти могут выполняться параллельно. Недостатком же таких систем является большая трудоёмкость написания эффективных параллельных программ. Поэтому естественно появление промежуточного класса систем (класса по организации оперативной памяти), объединяющего достоинства первого и второго класса.

Оперативная память в таких системах распределена по отдельным вычислительным узлам и одновременно доступна для всех процессоров. Такие многопроцессорные системы называются системами с распределённой разделяемой (общей) памятью (DSM – Distributed Shared Memory), а иногда NUMA (Non-Uniform Memory Access), поскольку время доступа зависит от расположения данных в подсистеме памяти. Схематично архитектура таких систем представлена на рис.1.4.

 

 

Рис.1.4. Архитектура мультипроцессорных систем с распределенной совместно используемой памятью

 

Структуры DSM-систем и MPP-систем очень сходны, однако технически они реализуются по-разному. В DSM-системах физически отделённые, распределённые по вычислительным узлам устройства памяти могут представляться логически как единое целое адресное пространство. Это означает, что любой процессор может обращаться к любым ячейкам памяти вне зависимости от их физического расположения.