Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Суперкомпьютеры и системы. Построение вычислительных кластеров

Покупка
Основная коллекция
Артикул: 779501.01.99
В пособии содержатся материалы, которые можно использовать при изучении структурной и функциональной организации кластерных вычислительных систем, а также для освоения принципов их использования. Описываются архитектурные решения четырех актуальных программных продуктов, имеющих практическую ценность для организации параллельных вычислений: PelicanHPC, Тorque, HTCondor, Slurm. Пособие адресовано студентам, обучающимся по направлениям 09.03.01 «Информатика и вычислительная техника» и 09.03.04 «Программная инженерия», а также может быть полезно студентам-старшекурсникам и аспирантам других специальностей и преподавателям смежных дисциплин.
Малявко, А. А. Суперкомпьютеры и системы. Построение вычислительных кластеров : учебное пособие / А. А. Малявко, С. А. Менжулин. - Новосибирск : Изд-во НГТУ, 2018. - 96 с. - ISBN 978-5-7782-3633-2. - Текст : электронный. - URL: https://znanium.com/catalog/product/1870465 (дата обращения: 17.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Министерство образования и науки Российской Федерации 

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ 

 
 
 
 
А.А. МАЛЯВКО, С.А. МЕНЖУЛИН 
 
 
СУПЕРКОМПЬЮТЕРЫ  
И СИСТЕМЫ 

ПОСТРОЕНИЕ  
ВЫЧИСЛИТЕЛЬНЫХ  
КЛАСТЕРОВ 
 
 
Утверждено  
Редакционно-издательским советом университета  
в качестве учебного пособия 
 
 
 
 
 
НОВОСИБИРСК 
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). Иногда могут применяться автономные 
гипервизоры, не имеющие базовой операционной системы. Такие гипервизоры используют собственные драйверы и планировщик, поэтому они не зависят от базовой ОС. Так как автономный гипервизор работает непосредственно на оборудовании, то он более производителен. 
В качестве оборудования, на котором функционируют виртуальные 
машины, может выступать один или несколько высокопроизводительных серверов или персональный компьютер. 
 Кластер на основе физических серверов. При такой реализации в 
узлах кластера расположены только серверы или персональные компьютеры. В связи с этим производительность кластера ограничена 
только производительностью или количеством его узлов. 
По однородности вычислительных узлов кластеры могут быть следующими. 
Однородные. Все узлы кластера являются однотипными. Центральный процессор, оперативная память, дисковая подсистема, сетевые адаптеры – все эти компоненты узла являются однотипными. При 
такой организации узлы являются взаимозаменяемыми. Замена производится либо на аналогичный компонент вычислительного узла, либо 
производится замена узла целиком. Такая организация вычислительного кластера позволяет свести к минимуму задержки, связанные с не
равномерной загрузкой суперкомпьютера. Как правило, не возникает 
ситуаций, при которых одни вычислительные узлы простаивают в связи с тем, что на других еще производится обработка данных. 
Смешанного типа. При такой организации в качестве узла кластера 
может выступать любой вычислитель, который поддерживает программное обеспечение и имеет общий доступ к разделяемым ресурсам. 
В связи с этим может наблюдаться неоднородность загрузки вычислительного кластера. Более производительные узлы будут заканчивать 
работу раньше, чем менее производительные. При работе на таком 
кластере требуется уделять больше внимания при написании программ. 

В6. Программное обеспечение  
вычислительных кластеров 

От используемого программного обеспечения (ПО) в вычислительном кластере зависит производительность, надежность и специфика 
решаемых задач. Именно программное обеспечение определяет круг 
задач, которые могут решаться на кластере. Основу ПО составляет 
операционная система. Прочие составляющие программного обеспечения кластеров будут рассмотрены в разделах 2–4 настоящего учебного пособия. 

В7. Операционные системы 

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

В качестве операционных систем для кластеров, как правило, используются серверные версии UNIX-подобных операционных систем 
(SUSE Server, RedHat (CentOS), Ubuntu Server). До недавнего времени 
эти системы были фактически стандартом для вычислительных кластеров. После 2006 г. в связи с выходом Microsoft HPC Cluster Server 
стало возможным создавать вычислительные кластеры на основе операционных систем Microsoft. 
При выборе операционной системы следует основываться прежде 
всего на рекомендациях разработчиков программного обеспечения. 
Однако, если есть выбор, то при прочих равных условиях следует отдать предпочтение Linux.  
Для Linux доступно огромное количество серверного программного обеспечения, компиляторов, библиотек, средств отладки и пр. 
Большое количество программного обеспечения имеется в свободном 
доступе, для многих программ есть исходные коды и обширная документация. Достоинством Linux является «прозрачность» для пользователя и системного администратора, что позволяет быстрее и проще 
разрешать все возникающие проблемы.  
Основой кластера является не операционная система, а коммуникационная среда (PVM, MPI), обеспечивающая возможность частям 
параллельной программы, выполняющимся на разных компьютерах, 
эффективно взаимодействовать между собой. 
Рассмотренные ранее средства для построения кластера (PVM, 
MPI) имеют реализации как для операционных систем семейства UNIX 
(Linux, FreeBSD и т. п.), так и для систем фирмы Майкрософт. Кластер 
может быть создан и под ОС Windows, причем трудозатраты на установку коммуникационной среды будут такими же, как и в варианте с 
UNIX, т. е. небольшими. Основная трудность будет заключаться в том, 
чтобы научиться писать параллельные программы.  
Однако следует заметить, что подавляющее большинство высокопроизводительных кластеров в мире работает все же в среде UNIX. 
Такой выбор обусловлен небольшими трудозатратами по настройке и 
установке кластера, более низкими требованиями ОС по сравнению с 
ОС Windows и большим количеством поддерживаемого программного 
обеспечения. Поскольку библиотеки для параллельных вычислений