Суперкомпьютеры и системы. Построение вычислительных кластеров
Покупка
Основная коллекция
Тематика:
Программирование и алгоритмизация
Издательство:
Новосибирский государственный технический университет
Год издания: 2018
Кол-во страниц: 96
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7782-3633-2
Артикул: 779501.01.99
В пособии содержатся материалы, которые можно использовать при изучении структурной и функциональной организации кластерных вычислительных систем, а также для освоения принципов их использования. Описываются архитектурные решения четырех актуальных программных продуктов, имеющих практическую ценность для организации параллельных вычислений: PelicanHPC, Тorque, HTCondor, Slurm. Пособие адресовано студентам, обучающимся по направлениям 09.03.01 «Информатика и вычислительная техника» и 09.03.04 «Программная инженерия», а также может быть полезно студентам-старшекурсникам и аспирантам других специальностей и преподавателям смежных дисциплин.
Тематика:
ББК:
УДК:
ОКСО:
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство образования и науки Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ А.А. МАЛЯВКО, С.А. МЕНЖУЛИН СУПЕРКОМПЬЮТЕРЫ И СИСТЕМЫ ПОСТРОЕНИЕ ВЫЧИСЛИТЕЛЬНЫХ КЛАСТЕРОВ Утверждено Редакционно-издательским советом университета в качестве учебного пособия НОВОСИБИРСК 2018
УДК 004.272.43:004.382.2(075.8) М 219 Рецензенты: канд. техн. наук, доцент В.Г. Качальский канд. техн. наук, доцент С.П. Ильиных Работа подготовлена на кафедре вычислительной техники для студентов, обучающихся по направлениям 09.03.01 – Информатика и вычислительная техника и 09.03.04 – Программная инженерия Малявко А.А. М 219 Суперкомпьютеры и системы. Построение вычислительных кластеров: учебное пособие / А.А. Малявко, С.А. Менжулин. – Новосибирск: Изд-во НГТУ, 2018. – 96 с. ISBN 978-5-7782-3633-2 В пособии содержатся материалы, которые можно использовать при изучении структурной и функциональной организации кластерных вычислительных систем, а также для освоения принципов их использования. Описываются архитектурные решения четырех актуальных программных продуктов, имеющих практическую ценность для организации параллельных вычислений: PelicanHPC, Тorque, HTCondor, Slurm. Пособие адресовано студентам, обучающимся по направлениям 09.03.01 «Информатика и вычислительная техника» и 09.03.04 «Программная инженерия», а также может быть полезно студентам-старшекурсникам и аспирантам других специальностей и преподавателям смежных дисциплин. УДК 004.272.43:004.382.2(075.8) ISBN 978-5-7782-3633-2 © Малявко А.А., Менжулин С.А., 2018 © Новосибирский государственный технический университет, 2018
ОГЛАВЛЕНИЕ Введение ................................................................................................................... 5 В1. Концепция кластерных систем ................................................................... 5 В2. Требования к аппаратному обеспечению .................................................. 6 В3. Пути достижения параллелизма ................................................................. 7 В4. Методы построения вычислительных кластеров..................................... 8 В5. Типы кластеров ............................................................................................ 9 В6. Программное обеспечение вычислительных кластеров ....................... 11 В7. Операционные системы ............................................................................ 11 В8. Учебно-лабораторное техническое обеспечение .................................... 13 1. Кластер PelicanHPC ......................................................................................... 15 1.1. Описание архитектуры и характеристики программного продукта PelicanHPC ....................................................................................... 15 2.2. Развертывание кластера PelicanHPC ....................................................... 16 Вопросы для самопроверки .................................................................................. 24 2. Система пакетной обработки Torque ........................................................... 25 2.1. Основные теоретические сведения о Torque .......................................... 25 2.2. Структура системы .................................................................................... 28 2.2.1. Сервер заданий ................................................................................ 28 2.2.2. Сервис вычислительного узла: процесс pbs_mom ........................ 28 2.2.3. Представление вычислительных узлов ......................................... 29 2.2.4. Планировщик заданий ..................................................................... 32 2.3. Задания в Torque ........................................................................................ 32 2.3.1. Понятие задания .............................................................................. 32 2.3.2. Атрибуты задания ............................................................................ 34 2.3.3. Очереди заданий .............................................................................. 34 2.3.4. Возможные состояния задания ....................................................... 35 2.3.5. Операции с заданиями .................................................................... 35 2.3.6. Понятие ресурса. Типы ресурсов, управляемых Torque .............. 36
2.4. Взаимодействие Torque с пользовательской средой .............................. 36 2.4.1. Настройка пользовательской среды на примере оболочки csh ..................................................................................................... 37 2.4.2. Переменные окружения .................................................................. 38 2.5. Команды настройки Torque ...................................................................... 39 2.5.1. Настройка узлов с помощью команды qmgr ................................. 39 2.5.2. Команда pbsnodes ............................................................................ 42 2.6. Установка и настройка Torque на вычислительном кластере .............. 43 Вопросы для самопроверки .................................................................................. 49 3. Вычислительный кластер Condor ................................................................ 51 3.1. Основные теоретические сведения. Возможности Condor .................... 51 3.2. Архитектура Condor .................................................................................. 54 3.2.1. Аппаратная структура ..................................................................... 54 3.2.2. Программная архитектура .............................................................. 55 3.2.3. Управление ресурсами .................................................................... 56 3.2.4. Подготовка задания ......................................................................... 57 3.2.5. Обращение к Condor ........................................................................ 59 3.2.6. Управление процессом выполнения задания ................................ 61 3.3. Выполнение параллельных приложений ................................................ 63 3.4. Ограничения Condor ................................................................................. 64 3.5. Безопасность .............................................................................................. 65 3.6. Примеры файлов описания задания ........................................................ 66 3.7. Развертывание кластера Condor ............................................................... 68 3.7.1. Настройка главного и вычислительного узлов Condor на ОС Linux ...................................................................................... 68 3.7.2. Настройка вычислительного узла Condor на ОС Windows ......... 70 Вопросы для самопроверки .................................................................................. 76 4. Менеджер кластеров и планировщик заданий SLURM .......................... 77 4.1. Основные теоретические сведения .......................................................... 77 4.2. Архитектура SLURM ................................................................................ 78 4.3. Основные команды SLURM ..................................................................... 80 4.3.1. Команды запуска задач .................................................................. 80 4.3.2. Информационные команды ........................................................... 84 4.4. Установка SLURM .................................................................................... 87 Вопросы для самопроверки .................................................................................. 94 Библиографический список .................................................................................. 95
ВВЕДЕНИЕ Кластер [1] – это группа вычислительных машин, которые связаны между собой и функционируют как один узел обработки информации. Как правило, кластер представляет собой группу однородных вычислительных узлов, соединенных высокоскоростным каналом связи. В1. Концепция кластерных систем Согласно концепции определения кластерной системы структура типичного кластера представлена на рисунке, где LAN – Local Area Network, локальная сеть; SAN – Storage Area Network, сеть хранения данных. Кластерная система
Как правило, кластерные системы применяются при решении сложных научных задач. Это могут быть задачи физики, математики, механики и т. д. Активное применение кластерные системы находят в решении задач моделирования и Data Mining. Анализ больших объемов данных требует высокой скорости их обработки. В связи с этим задачи анализа данных могут также решаться при помощи вычислительных кластеров. Для обеспечения высокой производительности и эффективности работы вычислительных кластеров требуются самые производительные и современные компоненты. В силу специфики предметной области изготовление такого оборудования требует повышенного внимания к таким показателям, как высокая производительность и надежность. Наиболее известные производители аппаратного обеспечения имеют специализированные линейки оборудования, включающие в себя исключительно аппаратное обеспечение для вычислительных кластеров (графические карты NVidia Tesla, AMD FirePro; кластерные системы HP, IBM, Fujitsu). В сфере производства высокопроизводительных решений для суперкомпьютерных кластеров присутствуют компании, специализирующиеся на поставках оборудования для суперкомпьютеров (Т-платформы, Ниагара). В2. Требования к аппаратному обеспечению Оборудование суперкомпьютерных кластеров должно отвечать ряду требований для обеспечения заданного уровня производительности. К таким требованиям можно отнести: высокую готовность; высокое быстродействие; масштабирование; общий доступ к ресурсам; удобство обслуживания. Следует учитывать, что в зависимости от решаемых задач отдельным пунктам из этого списка будет назначен больший приоритет.
В3. Пути достижения параллелизма Под параллельными вычислениями понимаются процессы обработки данных, в которых одновременно могут выполняться несколько машинных операций. Достижение параллелизма возможно только при выполнении следующих требований к архитектурным принципам построения вычислительной системы: независимость функционирования отдельных устройств вычислительной системы – требование, относящееся в равной степени ко всем ее основным компонентам: к устройствам ввода-вывода, к обрабатывающим процессорам и к устройствам памяти; избыточность элементов вычислительной системы; организация избыточности может осуществляться в следующих основных формах: использование специализированных устройств, например, таких как отдельные процессоры для целочисленной и вещественной арифметики, устройства многоуровневой памяти (регистры, кэш); дублирование устройств ЭВМ путем использования, например, нескольких однотипных обрабатывающих процессоров или нескольких устройств оперативной памяти. Дополнительной формой обеспечения параллелизма может служить конвейерная реализация обрабатывающих устройств, при которой выполнение операций в устройствах представляется в виде исполнения последовательности составляющих операцию подкоманд; как результат, при вычислениях на таких устройствах могут находиться на разных стадиях обработки одновременно несколько различных элементов данных. При рассмотрении проблемы организации параллельных вычислений следует различать следующие возможные режимы выполнения независимых частей программы: многозадачный режим (режим разделения времени), при котором для выполнения процессов используется единственный процессор; данный режим является псевдопараллельным, когда активным (исполняемым) может быть один-единственный процесс, а все остальные процессы находятся в состоянии ожидания своей очереди на использование процессора. Использование режима разделения времени может повысить эффективность организации вычислений (например, если
один из процессов не может выполняться из-за ожидания вводимых данных). Процессор может быть задействован для исполнения готового процесса. Кроме того, в данном режиме проявляются многие эффекты параллельных вычислений (необходимость взаимоисключения и синхронизации процессов и др.), и, как результат, этот режим может быть использован при начальной подготовке параллельных программ; параллельное выполнение – когда в одно и то же время может выполняться несколько команд обработки данных; такой режим вычислений может быть обеспечен не только при наличии нескольких процессоров, но и реализуем при помощи конвейерных и векторных обрабатывающих устройств; «распределенные вычисления» – термин, который обычно применяется для указания параллельной обработки данных, при которой используется несколько обрабатывающих устройств, достаточно удаленных друг от друга и в которых передача данных по линиям связи приводит к существенным временным задержкам. В результате эффективная обработка данных при таком способе организации вычислений возможна только для параллельных алгоритмов с низкой интенсивностью потоков межпроцессорных передач данных. Перечисленные условия являются характерными, например, при организации вычислений в многомашинных вычислительных комплексах, образуемых объединением нескольких отдельных ЭВМ с помощью каналов связи локальных или глобальных информационных сетей. В4. Методы построения вычислительных кластеров Высокопроизводительные вычисления на основе кластеров стали появляться сравнительно недавно. До конца 1980-х гг. практически все суперкомпьютеры представляли собой большой массив соединенных между собой процессоров. Подобные разработки чаще всего были уникальными и имели огромную стоимость не только в смысле приобретения, но и поддержки. Поэтому в 1990-х гг. все более широкое распространение стали получать кластерные системы, которые в качестве основы используют недорогие однотипные вычислительные узлы. К основным преимуществам кластеров можно отнести относительно низкую стоимость вычислительных узлов и легкую расширяемость.
Основной их недостаток – сложность отладки параллельных программ для систем с разделенной памятью. Как уже было отмечено, кластеры представляют собой системы с разделенной памятью, поэтому типичное параллельное приложение является совокупностью нескольких процессов, исполняемых на разных вычислительных узлах и взаимодействующих по сети. В принципе, разработчик может полностью взять на себя программирование распределенного приложения и самостоятельно реализовать общение по сети, например, на основе сокетов. Однако в настоящее время существует довольно много технологий, упрощающих создание параллельных приложений для кластеров (например, MPI). Эти технологии существуют уже достаточно продолжительное время, в течение которого они доказали свою состоятельность и легли в основу огромного числа параллельных приложений. Кластеры стали фактическим стандартом в области высокопроизводительных вычислений. Можно с большой долей уверенности сказать, что этот подход будет актуален всегда: сколь бы совершенен не был один компьютер, кластер из узлов такого типа справится с любой задачей гораздо быстрее. В5. Типы кластеров Кластерные системы могут иметь различную организационную структуру. По физической реализации кластеры бывают следующими. Кластеры специальной разработки с быстродействием 1011…1012 плавающих операций в секунду (терафлопсовый диапазон). К таким кластерам относится СКИФ (Суперкомпьютерная инициатива Феникс), созданный по программе Союза Беларусь–Россия. Появление этого кластера и сам процесс разработки подготовили основу для развития параллельных вычислений, вследствие чего возникла проблема широкой подготовки программистов для решения параллельных задач. Кластеры, которые строятся на базе уже имеющихся локальных сетей из персональных компьютеров. Для создания таких кластеров
требуется только дополнительное программное обеспечение (ПО), поэтому их можно организовать в вузах и небольших организациях. Подобные кластеры имеют относительно небольшое быстродействие, но их удобно использовать для обучения основам параллельного программирования и подготовки параллельных программ, которые затем могут выполняться на больших кластерах. По способу представления вычислительных узлов можно выделить следующие группы кластеров. Кластер, расположенный в виртуальной среде. Все узлы вычислительного кластера являются виртуальными машинами. Как правило, используются гипервизоры на основе базовой ОС (Microsoft Virtual PC, VMware Workstation, QEMU, Parallels, VirtualBox) или же гибридные гипервизоры (Microsoft Virtual Server, Sun Logical Domains, Xen, Citrix XenServer, Microsoft Hyper-V). Иногда могут применяться автономные гипервизоры, не имеющие базовой операционной системы. Такие гипервизоры используют собственные драйверы и планировщик, поэтому они не зависят от базовой ОС. Так как автономный гипервизор работает непосредственно на оборудовании, то он более производителен. В качестве оборудования, на котором функционируют виртуальные машины, может выступать один или несколько высокопроизводительных серверов или персональный компьютер. Кластер на основе физических серверов. При такой реализации в узлах кластера расположены только серверы или персональные компьютеры. В связи с этим производительность кластера ограничена только производительностью или количеством его узлов. По однородности вычислительных узлов кластеры могут быть следующими. Однородные. Все узлы кластера являются однотипными. Центральный процессор, оперативная память, дисковая подсистема, сетевые адаптеры – все эти компоненты узла являются однотипными. При такой организации узлы являются взаимозаменяемыми. Замена производится либо на аналогичный компонент вычислительного узла, либо производится замена узла целиком. Такая организация вычислительного кластера позволяет свести к минимуму задержки, связанные с не