Основные классы современных параллельных компьютеров: MPP, SMP, NUMA, PVP, кластеры. Коммуникационные технологии построения кластеров. Классификация и использование кластерных систем. Ведущие производители кластеров и массивно-параллельных систем.
Аннотация к работе
Архитектура Система состоит из однородных вычислительных узлов, включающих: - один или несколько центральных процессоров (обычно RISC), - локальную память (прямой доступ к памяти других узлов невозможен), - коммуникационный процессор или сетевой адаптер - иногда - жесткие диски (как в SP) и/или другие устройства В/В К системе могут быть добавлены специальные узлы ввода-вывода и управляющие узлы. Но возможны также варианты динамического "подразделения" системы, когда отдельные "разделы" системы работают под управлением разных ОС (например, Windows NT и UNIX в NUMA-Q 2000). Например, система пакетной обработки кластера позволяет послать задание на обработку кластеру, а не какому-нибудь отдельному компьютеру. Компьютеры, образующие кластер, - так называемые узлы кластера-всегда относительно независимы, что допускает остановку или выключение любого из них для проведения профилактических работ или установки дополнительного оборудования без нарушения работоспособности всего кластера. Компьютеры VAX могут объединяться в кластер также посредством локальной сети Ethernet, используя NI - Network Interconnect (так называемые локальные VAX-кластеры), однако производительность таких систем сравнительно низкая изза необходимости делить пропускную способность сети Ethernet между компьютерами кластера и другими клиентами сети.Ведущие производители кластеров и массивно-параллельных систем: Compaq, Hewlett-Packard, Sun Microsystems, IBM, Microsoft и Novell придерживаются одинаковой точки зрения на будущее отрасли суперкомпьютеров, на смену отдельным, независимым суперкомпьютерам должны прийти группы высокопроизводительных серверов, объединяемых в кластер. Уже сегодня распределенные кластерные системы опережают современные классические суперкомпьютеры по производительности: самый мощный на сегодняшний день компьютер в мире - IBM ASCI White - обладает производительностью в 12 ТЕРАФЛОП, производительность сети SETI@Home оценивается примерно в 15 ТЕРАФЛОП. Рассмотрев и изучив в данной работе концептуальные подходы и технические решения при построении кластерных и массивно-параллельных систем различных производителей, предназначенных для высокопроизводительных вычислений, можно сделать выводы: Параллельное программирование - основа высокопроизводительных вычислений. Кластер - множество отдельных компьютеров, объединенных в сеть. В данной работе были изучены типичные классы архитектур современных параллельных компьютеров - MPP , SMP , NUMA , PVP , кластеры и их особенности.
Введение
Развитие сетевых технологий привело к появлению недорогих, но эффективных коммуникационных решений. Это и предопределило появление кластерных вычислительных систем, фактически являющихся одним из направлений развития компьютеров с массовым параллелизмом.
Вычислительные системы (ВС), создаваемые из массово выпускаемых компонентов, стали альтернативой традиционным суперкомпьютерным системам. При выполнении многих прикладных задач такие ВС, даже с небольшим или средним (до 128-256) числом вычислительных модулей, показывают производительность, не уступающую или даже превосходящую производительность традиционных суперкомпьютеров как с распределенной, так и с разделяемой памятью. При этом такие ВС обладают рядом преимуществ, среди которых: более низкая стоимость, короткий цикл разработки и возможность оперативно использовать наиболее эффективные вычислительные и коммуникационные компоненты из имеющихся на рынке во время создания системы. Поэтому неудивительно, что ведущие разработчики высокопроизводительной техники приступили к созданию кластерных систем.
Кластерные системы возникли как более дешевое решение проблемы недостатка вычислительных ресурсов, и основываются на использовании в своей архитектуре широко распространенных и относительно дешевых технологий, аппаратных и программных средств, таких как PC, Ethernet, Linux и т.д. Использование массовых технологии в кластерных системах стало возможным благодаря значительному прогрессу в развитии компонентов обычных вычислительных систем, таких как центральные процессоры, операционные системы, коммуникационные среды.
Тема данной работы: «Кластеры и массивно-параллельные системы различных производителей. Примеры кластерных решений IBM».
Выбранная тема в настоящее время имеет особую значимость в системе вычислительных ресурсов, поскольку многим организациям, ведущим коммерческую деятельность, так или иначе, приходится сталкиваться с вычислительными системами.
Целю данной курсовой работы, является изучение концептуальных подходов и технических решений при построении кластерных и массивно- параллельных систем различных производителей, предназначенных для высокопроизводительных вычислений.
Для достижения поставленной цели поставлены следующие задачи: 1. Изучение теоретических аспектов основных классов современных параллельных компьютеров.
2. Исследование и анализ принципа построения кластерных систем.
3. Анализ существующих кластерных систем.
4. Изучение существующих кластерных решений компании IBM.
Объектом исследования являются кластерные и массивно-параллельные системы различных производителей.
1. Основные классы современных параллельных компьютеров - MPP , SMP , NUMA , PVP , кластеры
В данной главе подробно рассмотрим особенности всех классов современных параллельных компьютеров, а также описание конкретных компьютеров - представителей этих классов. Для каждого класса приводится следующая информация: - краткое описание особенностей архитектуры, - примеры конкретных компьютеров, - перспективы масштабируемости, - типичные особенности построения операционных систем, - наиболее характерная модель программирования (хотя возможны и другие).
Кластерные системы являются развитием параллельных систем. Чтобы показать место кластерных систем среди остальных типов параллельных архитектур вычислительных систем нужно привести их классификацию.
Параллельные системы могут быть классифицированы по различным критериям.
Основным параметром классификации параллельных компьютеров является наличие общей (SMP ) или распределенной памяти (MPP ). Нечто среднее между SMP и MPP представляют собой NUMA -архитектуры, где память физически распределена, но логически общедоступна. Кластерные системы являются более дешевым вариантом MPP. При поддержке команд обработки векторных данных говорят о векторно-конвейерных процессорах, которые, в свою очередь могут объединяться в PVP -системы с использованием общей или распределенной памяти. Все большую популярность приобретают идеи комбинирования различных архитектур в одной системе и построения неоднородных систем.
Рассмотрим наиболее типичные классы архитектур современных параллельных компьютеров (не рассматриваются устаревшие и проектируемые архитектуры): а) Массивно-параллельные системы (MPP) - таблица1.
Основные причины появления массивно-параллельных компьютеров - это, во-первых, необходимость построения компьютеров с гигантской производительностью, и, во-вторых, необходимость производства компьютеров в большом диапазоне как производительности, так и стоимости. Не все в состоянии купить однопроцессорный CRAY Y-MP C90, да и не всегда такие мощности и нужны. Для массивно-параллельного компьютера, в котором число процессоров может сильно меняться, всегда можно подобрать конфигурацию с заранее заданной производительностью и/или стоимостью.Особенность архитектуры состоит в том, что память физически разделена.
Система строится из отдельных модулей, содержащих процессор, локальный банк операционной памяти, коммуникационные процессоры или сетевые адаптеры, иногда - жесткие диски и/или другие устройства ввода/вывода. Доступ к банку операционной памяти из данного модуля имеют только процессоры из этого же модуля. Модули соединяются специальными коммуникационными каналами.
Таблица 1
Архитектура Система состоит из однородных вычислительных узлов, включающих: - один или несколько центральных процессоров (обычно RISC), - локальную память (прямой доступ к памяти других узлов невозможен), - коммуникационный процессор или сетевой адаптер - иногда - жесткие диски (как в SP) и/или другие устройства В/В К системе могут быть добавлены специальные узлы ввода-вывода и управляющие узлы. Узлы связаны через некоторую коммуникационную среду (высокоскоростная сеть, коммутатор и т.п.)
Примеры IBM RS/6000 SP2 , Intel PARAGON/ASCI Red, CRAY T3E , Hitachi SR8000 , транспьютерные системы Parsytec .
Масштабируемость Общее число процессоров в реальных системах достигает нескольких тысяч (ASCI Red, Blue Mountain).
Операционная система Существуют два основных варианта: 1. Полноценная ОС работает только на управляющей машине (front-end), на каждом узле работает сильно урезанный вариант ОС, обеспечивающие только работу расположенной в нем ветви параллельного приложения. Пример: Cray T3E. 2. На каждом узле работает полноценная UNIX-подобная ОС (вариант, близкий к кластерному подходу). Пример: IBM RS/6000 SP ОС AIX, устанавливаемая отдельно на каждом узле.
Модель программирования Программирование в рамках модели передачи сообщений (MPI , PVM , BSPLIB )
Главным преимуществом систем с раздельной памятью является хорошая масштабируемость: в отличие от SMP-систем, в машинах с раздельной памятью каждый процессор имеет доступ только к своей локальной памяти, в связи с чем не возникает необходимости в потактовой синхронизации процессоров. Практически все рекорды по производительности на сегодня устанавливаются на машинах именно такой архитектуры, состоящих из нескольких тысяч процессоров (ASCI Red, ASCI Blue Pacific) Недостатки архитектуры: •отсутствие общей памяти заметно снижает скорость межпроцессорного обмена, поскольку нет общей среды для хранения данных, предназначенных для обмена между процессорами. Требуется специальная техника программирования для реализации обмена сообщениями между процессорами;
•каждый процессор может использовать только ограниченный объем локального банка памяти;
•вследствие указанных архитектурных недостатков требуются значительные усилия для того, чтобы максимально использовать системные ресурсы. Именно этим определяется высокая цена программного обеспечения для массивно-параллельных систем с раздельной памятью. б) Симметричные мультипроцессорные системы (SMP) - таблица 2.
Можно сказать, что SMP система - это один компьютер с несколькими равноправными процессорами. Все остальное - в одном экземпляре: одна память, одна подсистема ввода/вывода, одна операционная система.
Таблица 2
Архитектура Система состоит из нескольких однородных процессоров и массива общей памяти (обычно из нескольких независимых блоков). Все процессоры имеют доступ к любой точке памяти с одинаковой скоростью. Процессоры подключены к памяти либо с помощью общей шины (базовые 2-4 процессорные SMP-сервера), либо с помощью crossbar-коммутатора (HP 9000). Аппаратно поддерживается когерентность кэшей.
Примеры HP 9000 V-class , N-class; SMP-сервера и рабочие станции на базе процессоров Intel (IBM, HP, Compaq, Dell, ALR, Unisys, DG, Fujitsu и др.).
Масштабируемость Наличие общей памяти сильно упрощает взаимодействие процессоров между собой, однако накладывает сильные ограничения на их число - не более 32 в реальных системах. Для построения масштабируемых систем на базе SMP используются кластерные или NUMA -архитектуры.
Операционная система Вся система работает под управлением единой ОС (обычно UNIX-подобной, но для Intel-платформ поддерживается Windows NT). ОС автоматически (в процессе работы) распределяет процессы/нити по процессорам (scheduling), но иногда возможна и явная привязка.
Модель программирования Программирование в модели общей памяти. (POSIX threads, OPENMP ). Для SMP-систем существуют сравнительно эффективные средства автоматического распараллеливания .
SMP часто применяется в науке, промышленности, бизнесе, где программное обеспечение специально разрабатывается для многопоточного выполнения. В то же время, большинство потребительских продуктов, таких как текстовые редакторы и компьютерные игры написаны так, что они не могут получить много пользы от SMP систем.
Преимущество заключается в том, что программы, запущенные на SMP системах, получают прирост производительности даже если они были написаны для днопроцессорных систем. Это связано с тем, что аппаратные прерывания, обычно приостанавливающие выполнение программы для их обработки ядром, могут обрабатываться на свободном процессоре. Эффект в большинстве приложений проявляется не столько в приросте производительности, сколько в ощущении, что программа выполняется более плавно.
Недостатки архитектуры: - Ограничение на количество процессоров. При увеличении числа процессоров заметно увеличивается требование к полосе пропускания шины памяти. Это накладывает ограничение на количество процессоров в SMP архитектуре. Современные конструкции позволяют разместить до четырех процессоров на одной системной плате.
- Необходимость организации канала процессоры-память с очень высокой пропускной способностью. в) Системы с неоднородным доступом к памяти (NUMA) - таблица 3
Проще всего охарактеризовать NUMA-систему, представив себе большую систему SMP, разделенную на несколько частей, эти части связаны коммуникационной магистралью, подключенной к системным шинам, и каждая часть включает собственную основную память и подсистему ввода/вывода. Это и есть NUMA: большая SMP, разбитая на набор более мелких и простых SMP.
Таблица 3
Архитектура Система состоит из однородных базовых модулей (плат), состоящих из небольшого числа процессоров и блока памяти. Модули объединены с помощью высокоскоростного коммутатора. Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти, т.е. к памяти других модулей. При этом доступ к локальной памяти в несколько раз быстрее, чем к удаленной. В случае, если аппаратно поддерживается когерентность кэшей во всей системе (обычно это так), говорят об архитектуре cc-NUMA (cache-coherent NUMA)
Примеры HP HP 9000 V-class в SCA-конфигурациях, SGI Origin2000 , Sun HPC 10000 , IBM/Sequent NUMA-Q 2000 , Масштабируемость Масштабируемость NUMA-систем ограничивается объемом адресного пространства, возможностями аппаратуры поддежки когерентности кэшей и возможностями операционной системы по управлению большим числом процессоров. На настоящий момент, максимальное число процессоров в NUMA-системах составляет 256 (Origin2000).
Операционная система Обычно вся система работает под управлением единой ОС, как в SMP . Но возможны также варианты динамического "подразделения" системы, когда отдельные "разделы" системы работают под управлением разных ОС (например, Windows NT и UNIX в NUMA-Q 2000).
Модель программирования Аналогично SMP .
Основной проблемой NUMA является обеспечение когерентности кэшей. Аппаратура позволяет работать со всеми отдельными устройствами основной памяти составных частей системы (называемых обычно узлами) как с единой гигантской памятью. г) Параллельные векторные системы (PVP) - таблица 4
Основным признаком PVP-систем является наличие специальных векторно-конвейерных процессоров. Как правило, несколько таких процессоров работают одновременно над общей памятью (аналогично SMP) в рамках многопроцессорных конфигураций.
Таблица 4
Архитектура Основным признаком PVP-систем является наличие специальных векторно-конвейерных процессоров, в которых предусмотрены команды однотипной обработки векторов независимых данных, эффективно выполняющиеся на конвейерных функциональных устройствах. Как правило, несколько таких процессоров (1-16) работают одновременно над общей памятью (аналогично SMP ) в рамках многопроцессорных конфигураций. Несколько таких узлов могут быть объединены с помощью коммутатора (аналогично MPP ).
Примеры NEC SX-4/SX-5 , линия векторно-конвейерных компьютеров CRAY: от CRAY-1, CRAY J90/T90 , CRAY SV1 , CRAY X1 , серия Fujitsu VPP .
Модель программирования Эффективное программирование подразумевает векторизацию циклов (для достижения разумной производительности одного процессора) и их распараллеливание (для одновременной загрузки нескольких процессоров одним приложением). д) Кластерные системы - таблица 5
Кластер - это два или более сервера (иногда называемые узлами), объединенные при помощи коммуникационных каналов, которые образуют системную, или технологическую, сеть.
Такое соединение позволяет повысить готовность или масштабируемость или и то и другое одновременно.
Таблица 5
Архитектура Набор рабочих станций (или даже ПК) общего назначения, используется в качестве дешевого варианта массивно-параллельного компьютера. Для связи узлов используется одна из стандартных сетевых технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора.
При объединении в кластер компьютеров разной мощности или разной архитектуры, говорят о гетерогенных (неоднородных) кластерах.
Узлы кластера могут одновременно использоваться в качестве пользовательских рабочих станций. В случае, когда это не нужно, узлы могут быть существенно облегчены и/или установлены в стойку.
Примеры NT-кластер в NCSA, Beowulf -кластеры.
Операционная система Используются стандартные для рабочих станций ОС, чаще всего, свободно распространяемые - Linux/FREEBSD, вместе со специальными средствами поддержки параллельного программирования и распределения нагрузки.
Модель программирования Программирование, как правило, в рамках модели передачи сообщений (чаще всего - MPI ). Дешевизна подобных систем оборачивается большими накладными расходами на взаимодействие параллельных процессов между собой, что сильно сужает потенциальный класс решаемых задач.
Кластер формируется в тех случаях, когда возникает необходимость в объединении нескольких серверов в единую вычислительную систему с целью повышения готовности или производительности.
В кластере несколько компьютеров работают вместе, как одна система, и совместно предоставляют пользователю приложения, системные ресурсы и данные. Каждый компьютер в кластере может иметь множество процессоров. При этом кластер демонстрирует производительность и надежность на уровне, недоступном одиночным серверам. Производительность распределяется между серверами и в кластере, при этом сохраняется возможность ее увеличения путем добавления процессоров, памяти и пр. Кроме того, в случае выхода из строя одного из серверов остальные распределят между собой его задачи.
2. Теоретические аспекты принципа построения кластерных систем параллельный компьютер кластер производитель
Рассмотрим кластерную архитектуру вычислительных систем в классификации параллельных компьютеров.
Кластер - это связанный набор полноценных компьютеров, используемый в качестве единого ресурса. Под понятием "полноценный компьютер" понимается завершенная компьютерная система, обладающая всем, что требуется для ее функционирования, включая процессоры, память, подсистему ввода/вывода, а также операционную систему, подсистемы, приложения и т.д. Обычно для этого годятся персональные компьютеры или параллельные системы, которые могут обладать архитектурой SMP и даже NUMA. Кластеры являются слабосвязанными системами, для связи узлов используется одна из стандартных сетевых технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора. Поэтому они являются более дешевой в построении модификацией MPP архитектуры.
2.1 Кластерная архитектура
Как уже было сказано раньше вычислительный кластер - это совокупность компьютеров, объединенных в рамках некоторой сети для решения одной задачи (рисунок 1), которая для пользователя представляется в качестве единого ресурса.
Такую концепцию кластера впервые предложила и реализовала в начале 80-х корпорация Digital Equipment, которая и по сей день развивает эту технологию
Понятие "единый ресурс" означает наличие программного обеспечения, дающего возможность пользователям, администраторам и прикладным программам считать, что имеется только одна сущность, с которой они работают - кластер. Например, система пакетной обработки кластера позволяет послать задание на обработку кластеру, а не какому-нибудь отдельному компьютеру.
Более сложным примером являются системы баз данных. Практически у всех производителей систем баз данных имеются версии, работающие в параллельном режиме на нескольких машинах кластера. В результате приложения, использующие базу данных, не должны заботиться о том, где выполняется их работа. Система управления баз данных (СУБД) отвечает за синхронизацию параллельно выполняемых действий и поддержание целостности базы данных.
Компьютеры, образующие кластер, - так называемые узлы кластера -всегда относительно независимы, что допускает остановку или выключение любого из них для проведения профилактических работ или установки дополнительного оборудования без нарушения работоспособности всего кластера.
В качестве вычислительных узлов в кластере обычно используются однопроцессорные персональные компьютеры, двух- или четырех-процессорные SMP-серверы.
Каждый узел работает под управлением своей копии операционной системы, в качестве которой чаще всего используются стандартные операционные системы: Linux, NT, Solaris и т.п. Состав и мощность узлов может меняться даже в рамках одного кластера, давая возможность создавать неоднородные системы.
Выбор конкретной коммуникационной среды определяется многими факторами: особенностями класса решаемых задач, необходимостью последующего расширения кластера и т.п.
Возможно включение в конфигурацию специализированных компьютеров, например, файл-сервера, и, как правило, предоставлена возможность удаленного доступа на кластер через Internet.
Рисунок 1
Из определения архитектуры кластерных систем следует, что она включает в себя очень широкий спектр систем. Рассматривая крайние точки, кластером можно считать как пару ПК, связанных локальной 10-мегабитной сетью Ethernet, так и вычислительную систему, создаваемую в рамках проекта Cplant в Национальной лаборатории Sandia: 1400 рабочих станций на базе процессоров Alpha, связанных высокоскоростной сетью Myrinet.
Таким образом, видно, что различных вариантов построения кластеров очень много. При этом в архитектуре кластера большое значение имеют используемые коммуникационные технологии и стандарты. Они во многом определяют круг задач, для решения которых можно использовать кластеры, построенные на основе этих технологий.
2.2 Коммуникационные технологии построения кластеров
Кластеры могут стоится как на основе специализированных высокоскоростных шин передачи данных, так и на основе массовых сетевых технологий. Среди массовых коммуникационных стандартов сейчас чаще всего используется сеть Ethernet или более ее производительный вариант - Fast Ethernet, как правило, на базе коммутаторов. Однако большие накладные расходы на передачу сообщений в рамках Fast Ethernet приводят к серьезным ограничениям на спектр задач, которые можно эффективно решать на таком кластере. Если от кластера требуется большая производительность и универсальность, то необходимо применять более скоростные и специализированные технологии. К ним относятся SCI, Myrinet, CLAN, SERVERNET и др.
Сравнительная характеристика параметров этих технологий приведена в таблице 6.
Таблица 6
Параметры производительности SCI Myrinet CLAN SERVERNET Fast Ethernet
Пропускная способность (аппаратная), Мбайт/с 400 160 150 н/д 12,5
Реализация MPI SCAMPI HPVM, MPICH-GM и др. MPI/Pro MVICH MPICH
Производительность коммуникационных сетей в кластерных системах определяется несколькими числовыми характеристиками. Основных характеристик две: латентность - время начальной задержки при посылке сообщений и пропускная способность сети, определяющая скорость передачи информации по каналам связи. При этом важны не столько пиковые характеристики, заявленные в стандарте, сколько реальные, достигаемые на уровне пользовательских приложений, например, на уровне MPI-приложений. В частности, после вызова пользователем функции посылки сообщения Send() сообщение последовательно пройдет через целый набор слоев, определяемых особенностями организации программного обеспечения и аппаратуры, прежде, чем покинуть процессор - поэтому существует существенный разлом по стандартам значений латентности. Наличие латентности приводит к тому, что максимальная скорость передачи по сети не может быть достигнута на сообщениях с небольшой длиной.
Скорость передачи данных по сети в рамках технологий Fast Ethernet и Scalable Coherent Interface (SCI) зависит от длины сообщения. Для Fast Ethernet характерна большая величина латентности - 160-180 мкс, в то время как латентность для SCI это величина около 5,6 мкс. Максимальная скорость передачи для этих же технологий 10 Мбайт/с и 80 Мбайт/с соответственно.
2.3 Классификация и использование кластерных систем
Для каждого класса кластеров характерны свои особенности архитектуры и применяемые аппаратные средства. Рассмотрим их более подробно.
2.3.1 Отказоустойчивые кластеры (VAX/VMS)
Для обеспечения надежности и отказоустойчивости вычислительных систем применяется множество различных аппаратурных и программных решений. Например, в системе может дублироваться все подверженные отказам элементы - источники питания, процессоры, оперативная и внешняя память. Такие отказоустойчивые системы с резервированием компонентов применяются для решения задач, в которых недостаточно надежности обычных вычислительных систем, оцениваемой в настоящий момент вероятностью безотказной работы 99%. В таких задачах требуется вероятность 99,999% и выше.
Такую надежность можно достичь применяя отличные от приведенного выше метода повышения отказоустойчивости. В зависимости от уровня готовности вычислительной системы к использованию выделяют четыре типа надежности (таблица 7).
Таблица 7
Уровень готовности, % Максимальное время простоя Тип системы
99,0 3,5 дня в год Обычная (Conventional)
99,9 8,5 часов в год Высокая надежность (High Availability)
99,99 1 час в год Отказоустойчивая (Fault Resilient)
99,999 5 минут в год Безотказная (Fault Tolerant)
В отличие от отказоустойчивых систем с избыточными компонентами, а также различных вариантов многопроцессорности, кластеры объединяют относительно независимые друг от друга машины, каждую из которых можно остановить для профилактики или реконфигурирования, не нарушая при этом работоспособности кластера в целом. Высокая производительность кластера и сведение к минимуму времени простоев приложений достигается благодаря тому, что: - в случае сбоя ПО на одном из узлов приложение продолжает функционировать или автоматически перезапускается на других узлах кластера;
- выход из строя одного из узлов (или нескольких) не приведет к краху всей кластерной системы;
- профилактические и ремонтные работы, реконфигурацию или смену версий программного обеспечения, как правило, можно осуществлять в узлах кластера поочередно, не прерывая работы других узлов.
Неотъемлемой частью кластера является специальное программное обеспечение, которое, собственно, и решает проблему восстановления узла в случае сбоя, а также решает другие задачи. Кластерное ПО обычно имеет несколько заранее заданных сценариев восстановления работоспособности системы, а также может предоставлять администратору возможности настройки таких сценариев.
Восстановление после сбоев может поддерживаться как для узла в целом, так и для отдельных его компонентов - приложений, дисковых томов и т.д. Эта функция автоматически инициируется в случае системного сбоя, а также может быть запущена администратором, если ему, например, необходимо отключить один из узлов для реконфигурации.
Кластеры могут иметь разделяемую память на внешних дисках, как правило, на дисковом массиве RAID. Дисковый массив RAID - это серверная подсистема ввода- вывода для хранения данных большого объема. В массивах RAID значительное число дисков относительно малой емкости используется для хранения крупных объемов данных, а также для обеспечения более высокой надежности и избыточности. Подобный массив воспринимается компьютером как единое логическое устройство.
Восстановление после сбоев может поддерживаться как для узла в целом, так и для отдельных его компонентов - приложений, дисковых томов и т.д. Эта функция автоматически инициируется в случае системного сбоя, а также может быть запущена администратором, если ему, например, необходимо отключить один из узлов для реконфигурации.
Узлы кластера контролируют работоспособность друг друга и обмениваются специфической «кластерной» информацией, например, о конфигурации кластера, а также передавать данные между разделяемыми накопителями и координировать их использование. Контроль работоспособности осуществляется с помощью специального сигнала, который узлы кластера передают друг другу, для того чтобы подтвердить свое нормальное функционирование. Прекращение подачи сигналов с одного из узлов сигнализирует кластерному программному обеспечению о произошедшем сбое и необходимости перераспределить нагрузку на оставшиеся узлы. В качестве примера рассмотрим отказоустойчивый кластер VAX/VMS.
Компания DEC первой анонсировала концепцию кластерной системы в 1983 году, определив ее как группу объединенных между собой вычислительных машин, представляющих собой единый узел обработки информации. Целью создания этой машины было повышение надежности работы системы, обеспечение высокой готовности и отказоустойчивости системы.
По существу VAX-кластер представляет собой слабосвязанную многомашинную систему с общей внешней памятью, обеспечивающую единый механизм управления и администрирования.
VAX-кластер обладает следующими свойствами: - Разделение ресурсов. Компьютеры VAX в кластере могут разделять доступ к общим ленточным и дисковым накопителям. Все компьютеры VAX в кластере могут обращаться к отдельным файлам данных как к локальным.
- Высокая готовность. Если происходит отказ одного из VAX-компьютеров, задания его пользователей автоматически могут быть перенесены на другой компьютер кластера. Если в системе имеется несколько контроллеров HSC и один из них отказывает, другие контроллеры HSC автоматически подхватывают его работу.
- Высокая пропускная способность. Ряд прикладных систем могут пользоваться возможностью параллельного выполнения заданий на нескольких компьютерах кластера.
- Удобство обслуживания системы. Общие базы данных могут обслуживаться с единственного места. Прикладные программы могут инсталлироваться только однажды на общих дисках кластера и разделяться между всеми компьютерами кластера.
- Расширяемость. Увеличение вычислительной мощности кластера достигается подключением к нему дополнительных VAX-компьютеров. Дополнительные накопители на магнитных дисках и магнитных лентах становятся доступными для всех компьютеров, входящих в кластер.
Работа VAX-кластера определяется двумя главными компонентами. Первым компонентом является высокоскоростной механизм связи, а вторым - системное программное обеспечение, которое обеспечивает клиентам прозрачный доступ к системному сервису. Физически связи внутри кластера реализуются с помощью трех различных шинных технологий с различными характеристиками производительности.
Основные методы связи в VAX-кластере представлены на рисунке 2.
Рисунок 2 Отказоустойчивый кластер VAX/VMS
Шина связи компьютеров CI (Computer Interconnect) работает со скоростью 70 Мбит/с и используется для соединения компьютеров VAX и контроллеров HSC с помощью коммутатора Star Coupler. Каждая связь CI имеет двойные избыточные линии, две для передачи и две для приема, используя базовую технологию CSMA, которая для устранения коллизий использует специфические для данного узла задержки. Максимальная длина связи CI составляет 45 метров. Звездообразный коммутатор Star Coupler может поддерживать подключение до 32 шин CI, каждая из которых предназначена для подсоединения компьютера VAX или контроллера HSC. Контроллер HSC представляет собой интеллектуальное устройство, которое управляет работой дисковых и ленточных накопителей.
Компьютеры VAX могут объединяться в кластер также посредством локальной сети Ethernet, используя NI - Network Interconnect (так называемые локальные VAX-кластеры), однако производительность таких систем сравнительно низкая изза необходимости делить пропускную способность сети Ethernet между компьютерами кластера и другими клиентами сети.
Также кластера могут строиться на основе шины DSSI (Digital Storage System Interconnect). На шине DSSI могут объединяться до четырех компьютеров VAX нижнего и среднего класса. Каждый компьютер может поддерживать несколько адаптеров DSSI. Отдельная шина DSSI работает со скоростью 4 Мбайт/с (32 Мбит/с) и допускает подсоединение до 8 устройств. Поддерживаются следующие типы устройств: системный адаптер DSSI, дисковый контроллер серии RF и ленточный контроллер серии TF. DSSI ограничивает расстояние между узлами в кластере 25 метрами.
Системное программное обеспечение VAX-кластеров.
Для гарантии правильного взаимодействия процессоров друг с другом при обращениях к общим ресурсам, таким, например, как диски, компания DEC использует распределенный менеджер блокировок DLM (Distributed Lock Manager).
Очень важной функцией DLM является обеспечение когерентного состояния дисковых кэшей для операций ввода/вывода операционной системы и прикладных программ.
Задача поддержания когерентности кэш-памяти ввода/вывода между процессорами в кластере подобна задаче поддержания когерентности кэш-памяти в сильно связанной многопроцессорной системе, построенной на базе некоторой шины. Блоки данных могут одновременно появляться в нескольких кэшах и если один процессор модифицирует одну из этих копий, другие существующие копии не отражают уже текущее состояние блока данных. Концепция захвата блока (владения блоком) является одним из способов управления такими ситуациями. Прежде чем блок может быть модифицирован должно быть обеспечено владение блоком.
Работа с DLM связана со значительными накладными расходами. Накладные расходы в среде VAX/VMS могут быть большими, требующими передачи до шести сообщений по шине CI для одной операции ввода/вывода. Накладные расходы могут достигать величины 20% для каждого процессора в кластере.
В настоящее время существует множество аналогичных по архитектуре систем от других производителей.
2.3.2 Высокопроизводительные кластеры
Архитектура высокопроизводительных кластеров появилась как развитие принципов построения систем MPP на менее производительных и массовых компонентах, управляемых операционной ситемой общего назначения. Кластеры также как и MPP системы состоят из слабосвязанных узлов, которые могут быть как однородными, так и, в отличие от MPP, различными или гетерогенными. Особое внимание при проектировании высокопроизводительной кластерной архутектуры уделяется обеспечению высокой эффективности коммуникационной шины, связывающей узлы кластера. Так как в кластерах нередко применяются массовые относительно низкопроизводительные шины, то приходится принимать ряд мер по исключению их низкой пропускной способности на производительность кластеров и организацию эффективного распараллеливания в кластере. Так например пропускная способность одной из самых высокоскоростных технологий Fast Ethernet на порядки ниже, чем у межсоединений в современных суперкомпьютерах МРР-архитектуры.
Для решения проблем низкой производительности сети применяют несколько методов: - кластер разделяется на несколько сегментов, в пределах которых узлы соединены высокопроизводительной шиной типа Myrinet, а связь между узлами разных сегментов осуществляется низкопроизводительными сетями типа Ethernet/Fast Ethernet. Это позволяет вместе с сокращением расходов на коммуникационную среду существенно повысить производительность таких кластеров при решении задач с интенсивным обменом данными между процессами.
- применение так называемого «транкинга», т.е. объединение нескольких каналов Fast Ethernet в один общий скоростной канал, соединяющий несколько коммутаторов. Очевидным недостатком такого подхода является «потеря» части портов, задействованных в межсоединении коммутаторов.
- для повышения производительности создаются специальные протоколы обмена информацией по таким сетям, которые позволяют более эффективно использовать пропускную способность каналов и снимают некоторые ограничения накладываемые стандартными протоколами (TCP/IP,IPX). Такой метод часто используют в ситемах класса Beowulf.
Основным качеством, которым должен обладать высокопроизводительный кластер является горизонтальная масштабируемость, так как одним из главных преимуществ, которые предоставляет кластерная архитектура является возможность наращивать мощность существующей системы за счет простого добавления новых узлов в систему. Причем увеличение мощности происходит практически пропорционально мощности добавленных ресурсов и может производиться без остановки системы во время ее функционирования. В системах с другой архитектурой (в частности MPP) обычно возможна только вертикальная масштабируемость: добавление памяти, увеличение числа процессоров в многопроцессорных системах или добавление новых адаптеров или дисков. Оно позволяет временно улучшить производительность системы. Однако в системе будет установлено максимальное поддерживаемое количество памяти, процессоров или дисков, системные ресурсы будут исчерпаны, и для увеличеия производительности придется создавать новую систему или существенно перерабатывать старую. Кластерная система также допускает вертикальную масштабируемость. Таким образом, за счет вертикального и горизонтального масштабирования кластерная модель обеспечивает большую гибкость и простоту увеличения производительности систем.
Целью создания кластерных систем является создание дешевых высокопроизводительных параллельных вычислительных систем. Один из первых проектов, давший имя целому классу параллельных систем - кластер Beowulf. В качестве примера рассмотрим высокопроизводительный кластер Beowulf.
Кластер Beowulf возник в научно - космическом центре NASA Goddard Space Flight Center для поддержки необходимыми вычислительными ресурсами проекта Earth and Space Sciences. Проект Beowulf начался летом 1994 года, и вскоре был собран 16-процессорный кластер на процессорах Intel 486DX4/100 МГЦ. На каждом узле было установлено по 16 Мбайт оперативной памяти и по 3 сетевых Ethernet-адаптера.
Проект Beowulf объединил около полутора десятков организаций (главным образом университетов) в Соединенных Штатах. Ведущие разработчики проекта - специалисты агентства NASA. В данном виде кластеров можно выделить следующие основные особенности: - кластер Beowulf состоит из нескольких отдельных узлов, объединенных в общую сеть, общие ресурсы узлами кластера не используются;
- оптимальным считается построение кластеров на базе двухпроцессорных SMP систем;
- для умень
Вывод
Ведущие производители кластеров и массивно-параллельных систем: Compaq, Hewlett-Packard, Sun Microsystems, IBM, Microsoft и Novell придерживаются одинаковой точки зрения на будущее отрасли суперкомпьютеров, на смену отдельным, независимым суперкомпьютерам должны прийти группы высокопроизводительных серверов, объединяемых в кластер. Уже сегодня распределенные кластерные системы опережают современные классические суперкомпьютеры по производительности: самый мощный на сегодняшний день компьютер в мире - IBM ASCI White - обладает производительностью в 12 ТЕРАФЛОП, производительность сети SETI@Home оценивается примерно в 15 ТЕРАФЛОП. При этом, IBM ASCI White был продан за 110 миллионов долларов, а за всю историю существования SETI@Home было потрачено около 500 тысяч долларов.
Рассмотрев и изучив в данной работе концептуальные подходы и технические решения при построении кластерных и массивно- параллельных систем различных производителей, предназначенных для высокопроизводительных вычислений, можно сделать выводы: Параллельное программирование - основа высокопроизводительных вычислений.
Кластер - множество отдельных компьютеров, объединенных в сеть.
Ключевые особенности - это отсутствие общей памяти и пересылка данных по сети. Основные особенности - это дешевизна и простая расширяемость.
Кластеры стали фактическим стандартом высокопроизводительных систем. Вычислительные задачи очень требовательны к ресурсам и работают днями и даже неделями.
Кластеры, как правило, используются одновременно большим количеством пользователей.
Необходимы специализированные системы, способные эффективно управлять ресурсами кластера.
Наиболее часто используемые сетевые интерфейсы: Gigabit Ethernet, Myrinet. Наиболее распространенные процессоры Intel. Наиболее распространенное количество ядер - 2.
В данной работе были изучены типичные классы архитектур современных параллельных компьютеров - MPP , SMP , NUMA , PVP , кластеры и их особенности. Изучены теоретические аспекты принципа построения кластерных систем. Подробно рассмотрены архитектуры и применяемые аппаратные средства в отказоустойчивых кластерах VAX/VMS и высокопроизводительных Beowulf.
Проанализировав итоги работ, выполненных в рамках проекта Beowulf, можно прийти к следующему выводу: найденные решения позволяют самостоятельно собрать высокопроизводительный кластер на базе стандартных для ПК компонентов и использовать обычное программное обеспечение. Среди самых крупных экземпляров нельзя не отметить 50-узловой кластер в CESDIS, включающий 40 узлов обработки данных (на базе одно- и двухпроцессорных плат Pentium Pro/200 МГЦ) и 10 масштабирующих узлов (двухпроцессорная плата Pentium Pro/166 МГЦ). Соотношение стоимость/пиковая производительность в таком кластере представляется очень удачным. Вопрос в том, насколько эффективно удается распараллелить приложения - иными словами, какова будет реальная, а не пиковая производительность. Над решением этой проблемы сейчас и работают участники проекта.
В работе были рассмотрены самые крупные компании являющиеся производителями кластеров и массивно-параллельных систем, такие как производители Compaq, Hewlett-Packard, Sun Microsystems, IBM, Microsoft и Novell. Расмотрены их подходы к кластерным решениям.
Так же в работе были изучены существующие кластерные решения компании IBM на примере кластерных установок - кластер 1350, 1600, RS/6000, IBM SP2.
В связи, с чем можно сказать, что интегрированные кластерные решения компании IBM обеспечивают существенное улучшение соотношения цены и производительности для многих высокопроизводительных рабочих нагрузок благодаря правильному использованию преимуществ инновационных серверов. Поскольку обширный портфель серверных решений можно оптимизировать в соответствии с требованиями заказчика - и для формирования небольшого кластера отдела, и для создания суперкомпьютера.
В заключении отмечу, что разнообразие подхода к реализации кластерных решений - это идеальное решение для ряда прикладных сред, включая среды, оптимизированные для промышленного проектирования и производства, финансовых услуг, естественных наук, нефтегазовой отрасли, государственных учреждений и сферы образования.