Как уже отмечалось, MIMD-система содержит много процессоров, которые (как правило, асинхронно) выполняют разные команды над разными данными. Подавляющее большинство современных высокопроизводительных ЭВМ на верхнем уровне иерархии имеют архитектуру MIMD.
Для MIMD-систем в настоящее время общепризнанна классификация, основанная на используемых способах организации оперативной памяти в этих системах. По этой классификации, прежде всего, различают мультипроцессорные вычислительные системы (или мультипроцессоры) или вычислительные системы с разделяемой памятью (multiprocessors, common memory systems, shared-memory systems) и мультикомпьютерные вычислительные системы (мультикомпьютеры) или вычислительные системы с распределенной памятью (multicomputers, distributed memory systems). Структура мультипроцессорной и мультикомпьютерной систем приведена рис. 1, где - процессор, - модуль памяти.
Рис. 1.  а) - структура мультипроцессора; б) – структура мультикомпьютера.
Мультипроцессоры.
В мультипроцессорах адресное пространство всех процессоров является единым. Это значит, что если в программах нескольких процессоров мультипроцессора встречается одна и та же переменная, то для получения или изменения значения этой переменной эти процессоры будут обращаться в одну физическую ячейку общей памяти. Это обстоятельство имеет как положительные, так и отрицательные последствия.
С одной стороны, не нужно физически перемещать данные между коммутирующими программами, что исключает затраты времени на межпроцессорный обмен.
С другой стороны, так как одновременное обращение нескольких процессоров к общим данным может привести к получению неверных результатов, необходимы системы синхронизации параллельных процессов и обеспечения когерентности памяти. Поскольку процессорам необходимо очень часто обращаться к общей памяти, требования к пропускной способности коммуникационной среды чрезвычайно высоки.
Последнее обстоятельство ограничивает число процессоров в мультипроцессорах несколькими десятками. Остроту проблемы доступа к общей памяти частично удается снять разделением памяти на блоки, которые позволяют распараллелить обращения к памяти от различных процессоров.
Отметим еще одно преимущество мультипроцессоров – мультипроцессорная система функционирует под управлением единственной копией операционной системы (обычно, UNIX-подобной) и не требует индивидуальной настройки каждого процессорного узла.
Однородные мультипроцессоры с равноправным (симметричным) доступом к общей оперативной памяти принято называть SMP-системами (системами с симметричной мультипроцессорной архитектурой). SMP-системы появились как альтернатива дорогим мультипроцессорным системам на базе векторно-конвейерных процессоров и векторно-параллельных процессоров (см. Рис.2).

Мультикомпьютеры.
Вследствие простоты своей архитектуры наибольшее распространение в настоящее время получили мультикомпьютеры. Мультикомпьютеры не имеют общей памяти. Поэтому межпроцессорный обмен в таких системах осуществляется обычно через коммуникационную сеть с помощью передачи сообщений.
Каждый процессор в мультикомпьютере имеет независимое адресное пространство. Поэтому наличие переменной с одним и тем же именем в программах разных процессоров, приводит к обращению к физически разным ячейкам собственной памяти этих процессоров. Это обстоятельство требует физического перемещения данных между коммутирующими программами в разных процессорах. Чаще всего основная часть обращений производится каждым процессором к собственной памяти. Поэтому требования к коммутационной среде ослабляются. В результате число процессоров в мультикомпьютерных системах может достигать нескольких тысяч, десятков тысяч и даже сотен тысяч.
Пиковая производительность крупнейших систем с общей памятью ниже пиковой производительности крупнейших систем с распределенной памятью; стоимость систем с общей памятью выше стоимости аналогичных по производительности систем с распределенной памятью.
Однородные мультикомпьютеры с распределенной памятью называются вычислительными системами с массивно-параллельной архитектурой (MPP-системами) - см. рис.2.
Нечто среднее между SMP-системами и MPP-системами представляют собой NUMA-системы.

Кластерные системы (вычислительные кластеры).
Кластерные системы (вычислительные кластеры) представляют собой более дешевый вариант MPP-систем. Вычислительный кластер состоит из совокупности персональных компьютеров или рабочих станций), объединенных локальной сетью в качестве коммуникационной среды. Детально вычислительные кластеры рассмотрены позже.
Рис. 2.  Классификация мультипроцессоров и мультикомпьютеров.
SMP-системы
Все процессоры SMP-системы имеют симметричный доступ к памяти, т.е. память SMP-системы представляет собой UMA-память. Под симметричностью понимается следующее: равные права всех процессоров на доступ к памяти; одна и та же адресация для всех элементов памяти; равное время доступа всех процессоров системы к памяти (без учета взаимных блокировок).
Общая структура SMP-системы приведена на рис. 3. Коммуникационная среда SMP-системы строится на основе какой-либо высокоскоростной системной шины или высокоскоростного коммутатора. Кроме одинаковых процессоров и общей памяти M к этой же шине или коммутатору подключаются устройства ввода-вывода.
За кажущейся простотой SMP-систем скрываются значительные проблемы, связанные в основном с оперативной памятью. Дело в том, что в настоящее время скорость работы оперативной памяти значительно отстает от скорости работы процессора. Для того чтобы сгладить этот разрыв, современные процессоры снабжаются высокоскоростной буферной памятью (кэш-памятью). Скорость доступа к этой памяти в несколько десятков раз превышает скорость доступа к основной памяти процессора. Однако наличие кэш-памяти нарушается принцип равноправного доступа к любой точке памяти, поскольку данные, находящиеся в кэш-памяти одного процессора, недоступны для других процессоров. Поэтому после каждой модификации копии переменной, находящейся в кэш-памяти какого-либо процессора, необходимо производить синхронную модификацию самой этой переменной, расположенной в основной памяти. В современных SMP-системах когерентность кэш-памяти поддерживается аппаратно или операционной системой.
Рис. 3.  Общая структура SMP-системы
Наиболее известными SMP-системами являются SMP-cерверы и рабочие станции IBM, HP, Compaq, Dell, Fujitsu и др. SMP-система функционирует под управлением единой операционной системой (чаще всего – UNIX и подобной ей).
Из-за ограниченной пропускной способности коммуникационной среды SMP-системы плохо масштабируются. В настоящее время в реальных системах используется не более нескольких десятков процессоров.
Известным неприятным свойством SMP-систем является то, что их стоимость растет быстрее, чем производительность при увеличении числа процессоров в системе.
MPP-системы.
MPP-системы строится из процессорных узлов, содержащих процессор, локальный блок оперативной памяти, коммуникационный процессор или сетевой адаптер, иногда - жесткие диски и/или другие устройства ввода/вывода. По сути, такие модули представляют собой полнофункциональные компьютеры (см. рис. 4.). Доступ к блоку оперативной памяти данного модуля имеет только процессор этого же модуля. Модули взаимодействуют между собой через некоторую коммуникационную среду. Используются два варианта работы операционной системы на MPP-системах. В одном варианте полноценная операционная система функционирует только на управляющей ЭВМ, а на каждом отдельном модуле работает сильно урезанный вариант операционной системы, поддерживающий только базовые функции ядра операционной системы. Во втором варианте на каждом модуле работает полноценная UNIX-подобная операционная система. Заметим, что необходимость наличия (в том или ином виде) на каждом процессоре MPP-системы операционной системы, позволяет использовать только ограниченный объем памяти каждого из процессоров.
По сравнению с SMP-системами, архитектура MPP-системы устраняет одновременно как проблему конфликтов при обращении к памяти, так и проблему когерентности кэш-памяти.
Главным преимуществом MPP-систем является хорошая масштабируемость. Так супер-ЭВМ серии CRAY T3E, способны масштабироваться до 2048 процессоров. Практически все рекорды по производительности на сегодняшний день установлены именно на MPP-системах, состоящих из нескольких тысяч процессоров.
Рис. 4.  Общая структура MPP-системы.
С другой стороны, отсутствие общей памяти заметно снижает скорость межпроцессорного обмена в MPP-системах. Это обстоятельство для MPP-систем выводит на первый план проблему эффективности коммуникационной среды.
Кроме того, в MPP-системах требуется специальная техника программирования для реализации обмена данными между процессорами. Этим объясняется высокая цена программного обеспечения для MPP-систем. Этим же объясняется то, что написание эффективных параллельных программ для MPP-систем представляет собой более сложную задачу, чем написание таких же программ для SMP-систем. Для широкого круга задач, для которые известны хорошо зарекомендовавшие себя последовательные алгоритмы, не удается построить эффективные параллельные алгоритмы для MPP-систем.
NUMA-системы.
Логически общий доступ к данным может быть обеспечен и при физически распределенной памяти. При этом расстояние между различными процессорами и различными элементами памяти, вообще говоря, различно и длительность доступа различных процессоров к различным элементам памяти различна. Т.е. память таких систем представляет собой NUMA-память.
NUMA-система обычно строится на основе однородных процессорных узлов, состоящих из небольшого числа процессоров и блока памяти. Модули объединены с помощью некоторой высокоскоростной коммуникационной среды (см. рис. 5). Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти, т.е. к памяти других модулей. При этом доступ к локальной памяти осуществляется в несколько раз быстрее, чем к удаленной. По существу, NUMA-система представляет собой MPP-систему, где в качестве отдельных вычислительных элементов используются SMP-узлы.
Среди NUMA-систем выделяют следующие типы систем:
Рис. 5.  Общая структура NUMA-системы.
Логическая общедоступность памяти в NUMA-системах, с одной стороны, позволяет работать с единым адресным пространством, а, с другой стороны, позволяет достаточно просто обеспечить высокую масштабируемость системы. Данная технология позволяет в настоящее время создавать системы, содержащие до нескольких сот процессоров.
NUMA-системы серийно производятся многими компьютерными фирмами как многопроцессорные серверы и прочно удерживают лидерство в классе малых суперкомпьютеров.