Тема: ОТКАЗОУСТОЙЧИВЫЙ ПЛАНИРОВЩИК ДЛЯ РАСПРЕДЕЛЁННЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
ГЛАВА 1. ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ВЫЧИСЛЕНИЯ 8
1.1. Параллелизм в современных вычислительных системах 8
1.2. Классификация параллельных вычислительных систем 8
1.2.1. Уровни параллелизма 11
1.2.2. Архитектуры SMP и NUMA 11
1.2.3. Вычислительные сети 13
1.3. Обзор современных технологий организации параллелизма 13
1.3.1. OpenMP 14
1.3.2. OpenAAC 16
1.3.3. OpenCL 17
1.3.4. CUDA 19
1.3.5. MPI 20
1.3.6. PVM 24
1.3.7. BOINC 25
ГЛАВА 2. ОТКАЗОУСТОЙЧИВОСТЬ РАСПРЕДЕЛЁННЫХ СИСТЕМ. .28
2.1. Метод прямого восстановления 29
2.2. Метод обратного восстановления 29
2.2.1. Хранение журнала передачи сообщений 30
2.2.2. Хранение контрольных точек в локальной памяти узлов 30
2.3. Обзор существующих отказоустойчивых систем 30
2.3.1. Egida 30
2.3.2. Manetho 31
2.3.3. BLCR 31
2.3.4. CoCheck 32
2.4. Отказоустойчивость MPI 33
2.4.1. FT-MPI 34
2.4.2. MPICH-V 35
2.4.3. ULFM 36
2.5. Требования к новой системе 37
ГЛАВА 3. РАЗРАБОТКА ОТКАЗОУСТОЙЧИВОЙ РАСПРЕДЕЛЁННОЙ
СИСТЕМЫ 40
3.1. Описание реализации 41
3.2. Использование программной библиотеки 42
3.2.1. Инициализация программной библиотеки 43
3.2.2. Перехват вызовов MPI-функций 45
3.2.3. Получение информации об активных процессах 45
3.2.4. Завершение работы программной библиотеки 46
3.3. Инструкции для разработчика 46
3.4. Тестирование 49
ЗАКЛЮЧЕНИЕ 51
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 52
📖 Введение
В современной науке компьютеры используются учёными для решения множества проблем — от расчёта простейших уравнений и формул, до сложнейших задач численного моделирования, требующих выполнения очень больших объёмов вычислений. Примеры таких задач — прогнозирование климатических изменений [1], предсказание геологических катаклизмов, эксперименты на коллайдерах [2], математическое моделирование химических и физических процессов [3], расшифровка генома человека и многие другие. Возможность решения таких задач выводит исследования на новый уровень, позволяя решать ранее неизвестные и казавшиеся невыполнимыми задачи. Это вынуждает человечество изобретать новые технологии и усовершенствовать уже использующиеся.
Но, современных персональных компьютеров, даже самых мощных, уже не хватает для решения подобных задач. Проблема разработки высокопроизводительных вычислительных систем является одной из наиболее сложных научно-технических задач на сегодняшний день. Для её решения существует несколько путей - увеличение мощности и быстродействия отдельных компьютеров или создание специализированных распределённых систем, наряду с разработкой различных методов параллельного программирования. Кажется, что разработчики центральных процессоров уже близки к физическим пределам, и, в ближайшем будущем, тактовые частоты уже не будут так стабильно расти [4]. Поэтому, разработчики пошли по пути увеличения количества вычислительных единиц в системе, стали появляться многопроцессорные и многокомпьютерные системы. Появление таких технологий сделало возможным объединение большого числа вычислительных единиц, для решения общей задачи, путём разбиения на мелкие подзадачи и параллельного их выполнения. Это позволило уменьшить время расчетов, по сравнению с одиночным персональным компьютером.
Наиболее доступной и дешёвой технологией из перечисленных является кластерная система, которая представляет собой совокупность нескольких персональных компьютеров, объединённых между собой по высокоскоростной сети в один «виртуальный суперкомпьютер». Компьютеры такой сети общаются между собой через отправку друг другу сообщений.
С увеличением количества элементов вычислительной системы растёт и вероятность отказа её компонентов [5, 6]. А существующие отказоустойчивые системы достаточно тяжеловесны и трудноразвёртываемы. Разработаны различные аппаратные и программные средства, направленные на уменьшение вероятности отказа компонентов вычислительной системы.
Например, для систем использующих технологию MPI, сбой одного узла или самого сервера приводит к остановке работы всей системы. Для решения этой проблемы существуют специальные методики и технологии предназначенные для быстрого восстановления работоспособности системы.
Именно такая технология используется в локальном вычислительном кластере, находящемся в Алтайском государственном университете. И именно с такой проблемой сталкиваются преподаватели и студенты его использующие.
Поэтому, целью данной работы будет модификация существующей распределённой системы, использующей технологию MPI для обеспечения большей отказоустойчивости.
Для достижения поставленной цели, необходимо решить следующие задачи:
1. Произвести анализ существующих методов организации параллелизма в вычислительных системах.
2. Произвести анализ существующих методов обеспечения отказоустойчивости распределённых систем.
3. Разработать программное обеспечение, позволяющее повысить отказоустойчивость вычислительной системы, использующей технологию MPI.
✅ Заключение
• произведён обзор существующих методов параллельного программирования;
• рассмотрены методы и средства организации распределённых вычислительных систем;
• произведён обзор существующих подходов и технологий, нацеленных на повышение отказоустойчивости распределённых систем;
• рассмотрены проблемы стандарта MPI и возможные способы их решения;
• разработана программная библиотека для повышения отказоустойчивости распределённой вычислительной системы, использующей MPI.
Результатом данной выпускной квалификационной работы является программная библиотека, которая представляет собой прозрачный слой между пользовательским приложением и библиотекой MPI. Разработанный программный продукт позволяет разработчику параллельных программ повысить отказоустойчивость разрабатываемых приложений с минимальной модификацией исходного кода.
Таким образом, цель, поставленную в выпускной квалификационной работе можно считать достигнутой.





