2.5. Вычислительные системы с распределенной памятью
(мультикомпьютеры)
Как уже указывалось выше, вычислительные узлы этого класса
(массивно-параллельных) компьютеров объединяются друг с другом
20
посредством коммуникационной среды. Каждый узел имеет один или
несколько
процессоров
и
свою
собственную
локальную
память.
Распределенность памяти означает, что каждый процессор имеет
непосредственный доступ только к локальной памяти своего узла. Доступ к
памяти других узлов осуществляется посредством либо специально
проектируемой для данной вычислительной системы, либо стандартной
коммуникационной среды.
Преимущества этой архитектуры - низкое значение отношения
цена/производительность
и
возможность
практически
неограниченно
наращивать число процессоров. Различия компьютеров данного класса
сводятся к различиям в организации коммуникационной среды. Известны
архитектуры, в которых процессоры расположены в узлах прямоугольной
решетки. Иногда взаимодействие идет через иерархическую систему
коммутаторов, обеспечивающих возможность связи каждого узла с каждым.
Используется также топология трехмерного тора, т.е. каждый узел имеет шесть
непосредственных соседей вне зависимости от того, где он расположен.
На рис. 2.2 показана общая схема связей основных элементов системы в
архитектуре многопроцессорных систем с распределенной памятью.
2.6. Параллельные компьютеры с общей памятью (мультипроцессоры)
Рис. 2.2 Архитектура многопроцессорных систем с
распределенной памятью
21
Организация параллельных вычислений для компьютеров этого класса
значительно проще, чем для систем с распределенной памятью. В данном
случае не надо думать о распределении массивов. Однако компьютеры этого
класса имеют небольшое число процессоров и очень высокую стоимость.
Поэтому обычно используются различные решения, позволяющие увеличить
число процессоров, но сохранить возможность работы в рамках единого
адресного пространства.
В частности, общая память может быть физически распределенной,
однако все процессоры имеют доступ к памяти любого процессора. Достигается
это применением специальных программно-аппаратных средств. Основная
проблема, которую при этом решают - обеспечение когерентности кэш-памяти
отдельных
процессоров.
Реализация
мероприятий
по
обеспечению
когерентности кэшей позволяет значительно увеличить число параллельно
работающих процессоров по сравнению с SMP-компьютером. Такой подход
именуется неоднородным доступом к памяти (non-uniform memory access или
NUMA). Среди систем с таким типом памяти выделяют:
o
системы, в которых для представления данных используется
только локальная кэш-память процессоров (cache-only memory
architecture или COMA);
o
системы, в которых обеспечивается когерентность локальных
кэшей разных процессоров (cache-coherent NUMA или CC-
NUMA);
o
системы, в которых обеспечивается общий доступ к локальной
памяти разных процессоров без поддержки на аппаратном
уровне когерентности кэша (non-cache coherent NUMA или
NCC-NUMA.
На рис. 2.3. приведены некоторые типовые схемы связей элементов в
мультипроцессорных системах.
22
Использование распределенной общей памяти (distributed shared memory
или DSM) упрощает проблемы создания мультипроцессоров (известны
примеры систем с несколькими тысячами процессоров). Однако при
построении параллельных алгоритмов в данном случае необходимо учитывать,
что время доступа к локальной и удаленной памяти может различаться на
несколько порядков. Для обеспечения эффективности алгоритма в этом случае
следует в явном виде планировать распределение данных и схему обмена
данными между процессорами таким образом, чтобы минимизировать
обращения к удаленной памяти.
Есть существенные различия векторных и массивно-параллельных
архитектур. В векторной программе явно выполняются операции над всеми
элементами регистра, в параллельной программе каждый из процессоров
выполняет более или менее синхронно машинные команды, оперируя со
своими собственными регистрами. В обоих случаях действия выполняются
одновременно, однако каждый из процессоров параллельной ЭВМ может
реализовывать свой алгоритм, отличающийся от алгоритмов других
процессоров.
Указанное отличие является весьма существенным. Справедливо
следующее утверждение: алгоритм, который можно векторизовать, можно и
Рис. 2.3 Архитектура многопроцессорных систем с общей (разделяемой)
памятью: системы с однородным (а) и неоднородным (б) доступом к памяти
23
распараллелить. Обратное утверждение не всегда верно. Например, для
невекторизуемого фрагмента алгоритма, показанного на рис. 2.1, в, нетрудно
организовать конвейерную схему вычислений на массивно-параллельном
компьютере.
Do'stlaringiz bilan baham: |