
Что такое кластер
Кластер — группа вычислителей, объединенных высокоскоростными каналами связи и представляющая с точки зрения пользователя единый аппаратный ресурс.
Ускорение вычислений на кластере происходит благодаря параллельному выполнению на разных вычислителях независимых участков программы (см. рисунок 4). В процессе выполнения программы по мере необходимости результаты вычислений объединяются, передаются на другие вычислители и используются в дальнейших вычислениях.
Рисунок 4 «Распараллеливание задач»
Типы суперкомпьютеров
Рассмотрим следующие архитектуры вычислительных систем:
Симметричные мультипроцессорные системы (SMP);
Массивно-параллельные системы (MPP);
Параллельно-векторные системы (PVP);
Системы с неоднородным доступом к памяти (NUMA).
Симметричные мультипроцессорные системы: Система состоит из нескольких однородных процессоров и массива общей памяти (обычно имеющего несколько независимых блоков). Все процессоры имеют доступ к любой точке памяти с одинаковой скоростью. Процессоры подключены к памяти либо с помощью общей шины, либо с помощью специального коммутатора. Архитектура системы представлена на рисунке 5.
Рисунок 5 «Архитектура SMP-системы»
Основные преимущества SMP-систем следующие:
повышение производительности приложений прямым наращиванием производительных аппаратных средств;
создание приложений в привычных программных средах;
одинаковое время доступа ко всей памяти;
высокая пропускная способность пересылки сообщений между вычислительными устройствами;
поддержка когерентности совокупности кэшей и блоков основной памяти, неделимые операции синхронизации и блокировки.
Однако есть и существенный недостаток: степень масштабируемости SMP систем ограничена в пределах технической реализуемости одинакового для всех процессоров доступа в память со скоростью, характерной для однопроцессорных компьютеров. Как правило, количество процессоров в SMP не превышает тридцати двух.
Массивно-параллельные системы: система состоит из однородных вычислительных узлов, включающих
один или несколько центральных процессоров;
локальную память (прямой доступ к памяти других узлов невозможен);
коммуникационный процессор или сетевой адаптер, жесткие диски и/или другие устройства ввода/вывода.
К системе могут быть добавлены специальные узлы ввода-вывода и управляющие узлы. Узлы связаны через некоторую коммуникационную среду (см. рисунок 6).
Рисунок 6 «Архитектура MPP-системы»
Основное преимущество MPP-систем заключается в масштабируемости: процессор имеет доступ только к своей локальной памяти, значит, не возникает необходимости в синхронизации. Кроме того, отсутствие общей памяти снижает скорость межпроцессорного обмена.
Практически все рекорды производительности устанавливаются на машинах именно такой архитектуры, состоящих из нескольких тысяч процессоров.
Однако и такие, достаточно простые системы, имеют значительные недостатки:
требуется специальная техника программирования для реализации обмена сообщениями между процессорами;
каждый процессор может использовать только ограниченный объем локального банка памяти;
требуются значительные усилия для максимального использования системных ресурсов, что приводит к высокой стоимости ПО;
приращение производительности с ростом числа процессоров обычно довольно быстро убывает;
мало задач, способных эффективно загрузить множество процессорных узлов.
проблема переносимости программ между различными системами;
эффективность распараллеливания во многих случаях сильно зависит от деталей архитектуры МРР-системы, например топологии соединения процессорных узлов.
Системы с неоднородным доступом к памяти: Система состоит из однородных базовых модулей, включающих один или несколько процессоров и блок памяти. Модули объединены с помощью высокоскоростной коммуникационной среды. Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти, т.е. к памяти других модулей. При этом доступ к локальной памяти в несколько раз быстрее, чем к удаленной (см. рисунок 7).
Рисунок 7 «Архитектура NUMA-системы»
NUMA-системы аналогичны SMP-системам. Их назначение — частично устранить главный недостаток SMP — низкую масштабируемость, что достигается за счет создания виртуальной общей памяти.
Основное преимущество NUMA-систем — это повышение масштабируемости по сравнению с SMP-системами.
Недостатки:
основная проблема — обеспечение когерентности кэшей;
масштабируемость вырастает на порядок, но за это приходится платить увеличением стоимости аппаратного и программного обеспечения;
аппаратура усложняется за счет появления единой коммуникационной среды, к качеству которой предъявляются высокие требования.
Параллельно-векторные системы: Основным признаком PVP-систем является наличие специальных векторно-конвейерных процессоров, в которых предусмотрен команды однотипной обработки векторов независимых данных, эффективно выполняющиеся на конвейерных функциональных устройствах.
Как правило, несколько таких процессоров работают одновременно с общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций. Несколько таких узлов могут быть объединены с помощью коммутатора (аналогично MPP).
Параллелизм обработки обеспечивается представлением данных в виде векторов значений. Одна и та же операция производится над вектором в целом. Некоторые авторы утверждают, что такие машины не являются параллельными, так как векторы обрабатываются последовательно (параллельность имеется только на уровне компонентов вектора) и относят их к классу непараллельных машин.
Основное преимущество заключается в том, что если алгоритм решения задачи представим в виде операций над векторами, то производительность PVP-системы будет очень высокой. Кроме того, нет необходимости в описании и реализации взаимодействий разных узлов.
Однако основной недостаток системы — это невозможность представления многих алгоритмов в виде операций над векторами. Это определяет низкую эффективность векторных систем на большинстве задач. Также векторные процессоры обычно имеют высокую стоимость.
Современные вычислительные кластеры создаются, как правило, в комбинации архитектур (см. рисунок 8).
Рисунок 8 «Архитектура современного вычислительного кластера»
Современный кластер = SMP + MPP + PVP
Следует заметить, что помимо вычислительных, существуют еще и другие типы кластеров, например, кластеры высокой доступности (high availability) или кластеры распределения (балансировки) нагрузки.