Материал: А. Д. Чередов, А. Н. Мальчуков

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
оперативная память и т.д.). В результате аппаратные затраты возрастают чуть ли не в квадратичной зависимости, а производительность системы упорно «не желает» увели- чиваться пропорционально числу процессоров. То, что могут себе поз- волить дорогостоящие и сложные мэйнфреймы и суперкомпьютеры, не годится для компактных многопроцессорных серверов.

Архитектура SMP


Для простой и «дешевой» поддержки многопроцессорной органи- зации была предложена архитектура SMP мультипроцессирование с разделением памяти, предполагающая объединение процессоров на общей шине оперативной памяти. За аппаратную простоту реализации средств SMP приходится расплачиваться процессорным временем ожи- дания в очереди к шине оперативной памяти. В большинстве случаев пользователи готовы добавить в сервер один или более процессоров (но редко более четырёх) в надежде увеличить производительность си- стемы. Стоимость этой операции ничтожна по сравнению со стоимо- стью всего сервера, а результат чаще всего оправдывает ожидания поль- зователя.

Пропускную способность памяти в таких системах можно значи- тельно увеличить путём применения больших многоуровневых кэшей. При этом кэши могут содержать как разделяемые, так и частные дан- ные. Частные данные – это данные, которые используются одним про- цессором, в то время как разделяемые данные используются многими процессорами, по существу обеспечивая обмен между ними. Если кэ- шируются разделяемые данные, то они реплицируются и могут содер- жаться в нескольких кэшах. Кроме сокращения задержки доступа и тре- буемой полосы пропускания, такая репликация данных способствует также общему сокращению количества обменов. Однако кэширование разделяемых данных вызывает новую проблему: когерентность кэш- памяти. Эта проблема возникает из-за того, что значение элемента дан- ных в памяти, используемое двумя разными процессорами, доступно этим процессорам только через их индивидуальные кэши. На рис. 6.2
показан простой пример, иллюстрирующий эту проблему, где А и В – кэшированные копии элементов А и В в основной памяти. Когерентное (адекватное) состояние кэша и основной памяти, когда А = А & В = B, изображено на рис. 6.2, а. Во втором случае (рис. 6.2, б) предполагается использование кэш-памяти с обратной записью, когда ЦП записывает

значение 550 в ячейку А. В результате А содержит новое значение, а в основной памяти осталось старое значение – 100. При попытке вы- вода Аиз памяти будет получено старое значение.

В третьем случае (рис. 6.2, в) подсистема ввода/вывода вводит в ячейку памяти В новое значение 440, а в кэш-памяти осталось старое значение В.


ЦП

ЦП

ЦП
а б в






100




200






Кэш

А B




100




200






Память
А

B

Ввод/вывод

Кэш





550




200






АB




100




200






Память
А

B

Ввод/вывод

Кэш





100




200






АB




100




440






Память
А

B

Ввод/вывод



Рис. 6.2. Кэш и память когерентны: A = A & B = B (a), кэш и память некогерентны: A A(б), кэш и память некогерентны: В В(в)

Обычно в малых мультипроцессорах небольшим количеством про- цессоров) используется аппаратный механизм, называемый протоколом когерентности кэш-памяти, позволяющий решить эту проблему.

Основное преимущество SMP относительная простота про- граммирования. В ситуации, когда все процессоры имеют одинаково быстрый доступ к общей памяти, вопрос о том, какой из процессоров

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

Архитектура SMP стала своего рода стандартом для всех совре- менных многопроцессорных серверов.

    1. Слабосвязанные многопроцессорные системы


Существует несколько способов построения крупномасштабных систем с распределённой памятью.

  1. Многомашинные системы. В таких системах отдельные ком- пьютеры объединяются либо с помощью сетевых средств, либо с помо- щью общей внешней памяти (обычно – дисковые накопители большой емкости).

  2. Системы с массовым параллелизмом МРР (Massively Parallel Processor). Идея построения систем этого класса тривиальна: берутся серийные микропроцессоры, снабжаются каждый своей локальной па- мятью, соединяются посредством некоторой коммуникационной среды, например сетью.

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

Однако есть и решающий «минус», сводящий многие «плюсы» на нет. Дело в том, что межпроцессорное взаимодействие в компьютерах этого класса идет намного медленнее, чем происходит локальная обра- ботка данных самими процессорами. Именно поэтому написать эффек- тивную программу для таких компьютеров очень сложно, а для некото- рых алгоритмов иногда просто невозможно.

  1. Кластерные системы. Данное направление, строго говоря, не является самостоятельным, а, скорее, представляет собой комбинацию из архитектур SMP и МРР. Из нескольких стандартных микропроцессо- ров и общей для них памяти формируется вычислительный узел (обыч-

но по архитектуре SMP). Для достижения требуемой вычислительной мощности узлы объединяются высокоскоростными каналами.

Эффективность распараллеливания процессов во многих случаях сильно зависит от топологии соединения процессорных узлов. Идеаль- ной является топология, в которой любой узел мог бы напрямую свя- заться с любым другим узлом. Однако в кластерных системах это тех- нически трудно реализуемо. Обычно процессорные узлы в современных кластерных системах образуют или двумерную решетку, или гиперкуб.

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

Время передачи информации от узла к узлу зависит от стартовой задержки и скорости передачи. Прогресс в производительности процес- соров гораздо больше, чем в пропускной способности каналов связи. За время передачи процессорные узлы успевают выполнить большое коли- чество команд. Поэтому инфраструктура каналов связи является одной из главных компонент кластерной или МРР-системы.

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

Источник: https://files.student-it.ru/previewfile/151041