Технологии высокопроизводительных вычислений

Автор работы: Пользователь скрыл имя, 26 Марта 2012 в 23:27, лекция

Краткое описание

Технологии высокопроизводительных вычислений сегодня переживают весьма резкие качественные изменения. Круг вопросов, подлежащих обсуждению при систематическом изложении предмета, не устоялся и стремительно меняется. По этой причине мы разделим настоящий текст на две части.
В первой части, озаглавленной «Освоенные технологии», изложим предмет так, как его надо было рассказывать, скажем, 2 – 3 года назад, не забывая, конечно, о линейном, количественном развитии, имевшем место за эти 2 – 3 года в рамках традиционных подходов.

Содержание работы

Введение.
Часть 1. Освоенные технологии.
1. Таксономия суперкомпьютеров и применяемых в связи с ними программистских технологий.
1.1. Архитектура фон Неймана.
1.2. Три этапа развития суперкомпьютерных технологий и две суперкомпьютерных революции.
1.3. Способы объединения многих процессоров в единую систему.
1.4. Альтернативные архитектуры.
1.5. Простейшая модельная программа.
1.5.1. Решение двумерной краевой задачи для уравнения теплопроводности методом Якоби.
1.5.2. Параллельная реализация «на бумаге».
1.5.3. Что потребуется для параллельной реализации на практике.
1.6. Общий состав программного обеспечения вычислительного кластера
1.7. Некоторые основные определения.
1.8. Технологии параллельной обработки данных без использования суперкомпьютеров.
2. Некоторые основные понятия архитектуры процессоров и ОС.
2.1. Некоторые основные определения.
2.2. Пример системы команд: обработка данных в памяти.
2.3. Чего нам не хватает.
2.3.1. Общее представление об управлении внешними устройствами.
2.3.2. Программа – диспетчер.
2.3.3. Прерывания.
2.3.4. Защита памяти и многорежимность процессора.
2.3.5. Виртуальная память.
2.4. Еще несколько определений.
3. Критерии эффективности коммуникационной сети.
4. Обзор процессорных и сетевых решений, применяемых в современных кластерах.
4.1. Выбор процессора.
4.2. Выбор коммуникационной сети.
5. Суперкомпьютер МВС-1000 и метакластер МВС-900.
5.1. Основные принципы организации МВС – 1000.
5.2. Как работает и зачем нужен метакластер МВС – 900.
6. Модели и технологии параллельного программирования.
6.1. Два способа параллельной обработки данных.
6.2. Два лица программистской модели.
6.3. Модель: явный двусторонний обмен сообщениями.
6.4. Модель: односторонний обмен сообщениями.
6.5. Модель: NUMA.
6.6. Модели, производные от явного двустороннего обмена сообщениями.
6.6.1. Модель библиотек коллективных операций над распределенными массивами.
6.6.2. Модель параллельных трансляторов в стиле HPF.
6.6.3. Модель непроцедурных языков.
6.7. Парадокс неприятия новых технологий.
6.8. Немного о технике реализации MPI.
Часть 2. Технологии, появляющиеся сегодня.
7. Почему «эпоха кластеров» заканчивается.
Литература.

Содержимое работы - 1 файл

Технологии высокопроизводительных вычислений.doc

— 495.50 Кб (Скачать файл)

Многопроцессорные серверы на базе AMD Opteron – это NUMA – системы, конкуренция за доступ к общей памяти при выполнении независимых процессов на разных процессорах в них отсутствует. Это очень важное преимущество при изготовлении вычислительного кластера на базе многопроцессорных узлов.

4.2. Выбор коммуникационной сети.

Кластерная технология построения многопроцессорных вычислителей породила такое невиданное ранее явление, как производящееся серийно сетевое оборудование, предназначенное специально для суперкомпьютеров, то есть не применяемое в сетевых технологиях общего назначения. Как правило, оборудование каждой из таких сетей выпускается единственным производителем. В то же время, далеко не все кластеры оснащаются специальной высокоскоростной сетью – довольно часто делают кластеры на сетевом оборудовании общего назначения. Объясняется это, в первую очередь, высокой ценой специализированных сетевых решений – она может быть от 700 – 800 долларов за узел и выше.

Наиболее дешевое и доступное решение – Gigabit Ethernet (сеть общего назначения). Она характеризуется производительностью около 100 Мбайт/с, латентностью около 50 мкс, приемлемой потребностью в вычислительной мощности. Полнота сети зависит от используемого коммутатора и варьируется в широких пределах.

Самое старое и распространенное решение  из специализированных – Myrinet [8]. До недавнего времени выпускался лишь вариант со скоростью 220 Мбайт/с, сейчас предлагается вариант с учетверенной производительностью. Латентность – 3-6 мкс. Сеть оснащается коммутатором с известными и опубликованными характеристиками, полнота сети достаточно высока, потребность в вычислительной мощности – пренебрежимо мала.

Несколько лет назад серьезную конкуренцию Myrinet составляла сеть SCI [9]. Она имела примерно такую же, как старый вариант Myrinet, производительность, но примерно вдвое меньшую латентность. Сеть не предусматривает наличия коммутатора: узлы связываются в топологию (например, тор), в которой каждый узел является коммутатором транзитных сообщений. Сейчас эта технология мало заметна на рынке.

Главным конкурентом Myrinet сегодня является сеть Infiniband [10]. Основные ее параметры сходны с Myrinet, но производительность масштабируется выбором более «толстых» (с большим числом линий) сетевых кабелей. Самый «тонкий» (с одной линией) вариант кабеля дает производительность, как у старого варианта Myrinet. Число линий часто бывает равно 4, стандарт допускает до 32-х. Сеть коммутируемая, алгоритмы работы коммутаторов опубликованы.

Такие сети, как Giganet и Quadrics [3], применяются довольно редко, в основном – фирмами, поставляющими кластеры «под ключ» и традиционно связанными именно с этими технологиями. Причина – высокая цена и сравнительно малосущественные преимущества перед решениями, упомянутыми выше.

Помимо свойств сети как таковой, важно учитывать интерфейс подключения сети к компьютеру. В самом деле, если 32-разрядный вариант PCI с частотой 33Мгц в принципе не способен пропустить через себя больше 132 Мбайт/с, стоит ли подключать к нему Myrinet? Сейчас как раз происходит переход с традиционных, шинных интерфейсов PCI/PCI-X на современные интерфейсы PCI Express [5] и Hypertransport [6], которые сами по себе являются сетями с масштабируемым числом каналов. Один канал PCI Express (Hypertransport в качестве периферийного разъема встречается гораздо реже) эквивалентен по скорости одному каналу Myrinet или Infiniband. Чаще всего на материнских платах встречаются одноканальные, четырехканальные и шестнадцатиканальные разъемы.

Кроме повышенных, по сравнению с Gigabit Ethernet, показателей по традиционным критериям эффективности, все специализированные сети обладают дополнительными функциональными возможностями, отсутствующими в сетях общего назначения, например, аппаратной поддержкой односторонних обменов, или RDMA (подробнее об односторонних обменах рассказано в разделе, посвященном технологиям параллельного программирования). Сеть SCI, кроме того, обеспечивает аппаратный доступ к памяти  удаленного узла в режиме прямой адресации (NUMA).

На программном обеспечении специализированных сетей следует остановиться особо. Низкая, по сравнению с сетями общего назначения, латентность, а также поддержка RDMA (NUMA) достигаются использованием совершенно специальных системных запросов, не являющихся стандартными в ОС и специфичными только для конкретной сети. Программист может выдавать такие запросы, обращаясь к специальным низкоуровневым библиотекам, которые поставляются с каждой из специализированных сетей. Это принципиально отличается от ситуации с Ethernet, доступ к которой из прикладной программы всегда осуществляется через стандартную во всех ОС программную «надстройку» - стек tcp/ip. Эта программная надстройка рассчитана на наиболее общий случай использования локальной сети – в составе Internet, и сама по себе вносит очень заметный (если не решающий) вклад в латентность. Именно желанием обойти эту громоздкую надстройку и продиктовано решение производителей специализированных сетей предоставить специальные, нестандартные библиотеки специальных же, нестандартных системных вызовов. Таким образом, с программистской точки зрения каждое сетевое устройство специализированной сети – это два устройства. Одно – быстрое, с низкой латентностью, но совершенно нестандартное, второе – обычный сетевой интерфейс под управлением стека tcp/ip. Конечно, второй вариант отличается гораздо большей латентностью, чем первый, зато он стандартен. Можно ли сделать то же самое для Gigabit Ethernet? В принципе, можно, такие попытки были, но проблема в том, что сетевые карты Ethernet от разных производителей не совместимы друг с другом по программистским интерфейсам к аппаратуре, и различных модификаций очень много. Разработчики «сокращенных протоколов» для Ethernet катастрофически не успевают за разнообразием сетевых плат, разработки затягиваются, а тем временем планируемый выигрыш в латентности достигается сам собой, просто в результате повышения частоты процессора, выполняющего стек tcp/ip.

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

Таким образом, краткие рекомендации по выбору коммуникационной сети выглядят примерно так:

Если Вы уверены, что Ваши задачи мало чувствительны к латентности, или вообще не очень чувствительны к производительности сети, Ваш выбор – Gigabit Ethernet.

В противном случае следует ориентироваться на Myrinet или Infiniband, если требуется очень высокая производительность, то на Infiniband. В любом случае следует обращать внимание на сбалансированность пропускной способности сети и пропускной способности интерфейса сетевого адаптера с компьютером. Современные периферийные интерфейсы (PCI Express, Hypertransport) предпочтительнее, чем PCI/PCI-X.

Наконец, следует помнить о том, что оснащение кластера единственной сетью не желательно (и тем менее желательно, чем крупнее кластер). До сих пор мы молчаливо предполагали, что сеть нашего кластера будет использоваться, грубо говоря, для поддержки MPI. В действительности сеть вычислительного кластера выполняет еще, как минимум, две функции: управление кластером и параллельный ввод – вывод (поддержку доступа к общей для всех узлов файловой системе). Использование для реализации всех трех перечисленных функций единственной сети нежелательно по ряду причин, хотя в небольших кластерах так иногда и поступают. Дело не только в непредсказуемости производительности такой сети, и не только в том, что для разных функций желательны разные сетевые протоколы (для управления и ввода – вывода – tcp/ip, для MPI – специальные высокопроизводительные протоколы, упомянутые выше). Дело еще и в том, что сетям со стандартными протоколами присущи сетевые перегрузки [1], то есть «плавающие» отказы в выполнении сетевых запросов в отсутствие неисправностей отдельных компонентов. Сетевые перегрузки органически присущи ip – сетям, их нельзя искоренить, но можно и нужно всемерно снижать их вероятность. По этой причине очень полезно выделить для каждой из трех сетевых функций кластера – поддержки MPI, управления и поддержки ввода – вывода – по одной физически отдельной сети. Даже если все три сети будут сетями Ethernet. По крайней мере, напряженный трафик в одной сети не «сломает» никакую другую.

Наконец – замечание о SAN/NAS. Доступ к общей файловой системе в вычислительном кластере, зачастую, является даже более узким местом, чем коммуникации между узлами посредством MPI. Это довольно естественно – большие машины обрабатывают большие объемы данных, которые надо откуда-то брать и куда-то класть. Для этого есть готовые, предлагаемые на рынке аппаратные решения – специальные сети, интегрированные с мощным файловым сервером, применяемые для поддержки параллельного ввода-вывода и ни для чего другого. Это решение идеально для вычислительных кластеров, во всех отношениях, кроме одного – цены. Такая сеть может оказаться заметно дороже всего остального оборудования, из которого состоит кластер.

5. Суперкомпьютер МВС-1000 и метакластер МВС-900.

5.1. Основные принципы организации МВС – 1000.

МВС-1000 – это Linux – кластер, определенным образом сконфигурированный [1,11]. Тип процессора и сети могут быть разными.

Общая структура МВС-1000:

-                              сервер доступа, он же инструментальный сервер,

-                              управляющая машина,

-                              вычислительное поле, состоящее из узлов,

-                              файловый сервер,

-                              три сети.

Сервер доступа – это машина, используемая для разработки программ. На эту машину пользователь «заходит» сеансом, копирует на нее свои файлы и т. п. На этой же машине он выполняет команды запуска параллельных программ.

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

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

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

О трех сетях – сети управления, сети ввода-вывода и сети коммуникаций – мы уже говорили выше. Это также функции, распределение которых по конкретным сетям может быть разным. Это могут быть действительно три сети, или две (сеть коммуникаций выделена), или даже, в небольших кластерах, всего одна сеть.

Само название «МВС – 1000» относится, в первую очередь, к системе управления ресурсами, функционирующей на управляющей машине. В первую очередь речь идет о процессорном ресурсе.

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

Довольно очевидно, что работать так можно (хотя и не без трудностей) лишь на установке, монопольно занятой одним пользователем. Попытка использовать при таких условиях систему в режиме коллективного пользования и удаленного доступа – это гарантированный кошмар. Разные параллельные программы будут пересекаться по используемым узлам, узлы будут постепенно «деградировать» за счет оставшихся на них «обломков» от прошлых запусков и т. п. Доступные системы управления ресурсами, вроде Open PBS [3], решают проблему лишь отчасти: они позволяют вести учет свободных и занятых узлов. Но ведь надо еще проследить, чтобы эта «бухгалтерия» соответствовала действительности. В самом деле, если пользователь всегда авторизован на узле для беспарольного входа, ничто не мешает ему запросить у PBS три узла на час, а занять – 100 узлов на сутки (при этом про оставшиеся 97 узлов PBS будет «думать», что они свободны).

Система управления ресурсами МВС – 1000 была задумана для преодоления трудностей именно такого рода, а в конечном счете – для обеспечения устойчивой эксплуатации кластера в режиме коллективного пользования при удаленном доступе (то есть без каких-либо «договоренностей», кто и когда «возьмет» те или иные узлы).

Функциональные принципы управления процессорным ресурсом таковы:

- единая точка входа. Пользователь «видит» при сетевом доступе только сервер доступа,

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

Информация о работе Технологии высокопроизводительных вычислений