40. Примеры организации систем параллельной обработки информации: GPU, мультипроцессоры UMA, COMA, NUMA.

UMA – архитектура с однородным доступом к памяти. В машинах UMA каждый процессор имеет одно и тоже время доступа к памяти.

NUMA – архитектура с неоднородным доступом к памяти.

COMA – архитектура с доступом только к кэш-памяти.

UMA

В основе самых простых мультипроцессоров лежит одна шина. Если процессору нужно считать информацию из памяти, он проверяет, свободна ли шина.

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

Для разрешения этой проблемы необходимо добавить кэш-память к каждому процессору (рис. 16.6 б) Поскольку теперь слова можно получать из кэш-памяти, то и движения в шине будет меньше и система сможет поддержать большее число процессоров. Следующая разработка – каждый процессор имеет не только кэш-память, но и свою локальную память, к которой он получает доступ через локальную шину.

Каждый элемент кэш-памяти может находится в одном из четырех состояний(протокол MESI):

  1. Invalid – элемент кэш-памяти содержит недействительные данные.
  2. Shared – несколько кэшей могут содержать данную строку, основная память обновлена.
  3. Exclusive – никакой другой кэш не содержит эту строку, основная память обновлена.
  4. Modified – элемент действителен, основная память недействительна, копий элемента не существует.

UMA-мультипроцессоры с перекрестной коммутацией

Имеются 4 адресные шины, которые используются для отслеживания строк в кэш- памяти. Каждая шина использует ¼ часть физического адресного пространства. Для выбора шины используется 2 адресных бита.

UMA-мультипроцессоры с многоступенчатой коммутацией

Коммутатор содержит два входа и два выхода. Сообщения, приходящие на один из входов могут переключаться на любой выход. Коммутаторы 2 х 2 можно компоновать различными способами и получать многоступенчатые сети.

NUMA

Мультипроцессоры NUMA (Non Uniform Memory Access – с неоднородным доступом к памяти). Как и мультипроцессоры UMA, они обеспечивают единое адресное пространство для всех процессоров, но в отличие от машин UMA, доступ к локальным модулям памяти происходит быстрее, чем к удаленным. Следовательно, все программы UMA будут работать без изменений на машинах NUMA, но производительность будет хуже, чем на машинах UMA с той же тактовой частотой.

Машины NUMA три ключевые характеристики, которыми все они обладают и которые в совокупности отличают их от других мультипроцессоров.

  1. Существует одно адресное пространство, видимое для всех процессоров.
  2. Доступ к удаленной памяти осуществляется с использованием команд load и store.
  3. Доступ к удаленной памяти происходит медленнее, чем доступ к локальной памяти.

Мультипроцессор Stanford DASH.
Мультипроцессор Sequent NUMA-Q.
NUMA-мультипроцессор Sun Fire E25K.

COMA

Основная память каждого процессора используется как кэш-память. Такая машина называется COMA (Cache Only Memory Access). При такой организации памяти страницы не имеют собственных фиксированных машин.

Память, которая привлекает строки по мере необходимости, называется attraction memory. Использование основной памяти в качестве большой кэш-памяти увеличивает частоту успешных обращений в кэш-память, а, следовательно, и производительность.

В результате появляются две новые проблемы:

  1. как разместить строки кэш-памяти;
  2. если строка удаляется из памяти, что произойдет, если это последняя копия.

Машина COMA обещает существенно увеличить производительности системы, но в настоящее время известно очень мало машин COMA (2 машины: KSR-1 и Data Diffusion Machine).