Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка Гуцу Олег.docx
Скачиваний:
5
Добавлен:
21.09.2019
Размер:
2.32 Mб
Скачать

Оглавление

1. ПРЕДПРОЕКТНЫЙ АНАЛИЗ 3

1.1. Введение 3

1.2. Анализ кластерных технологий в контексте лабораторного практикума 4

1.2.2. Показатели эффективности параллельного алгоритма 8

1.2.3. Средства разработки и поддержки параллельных приложений 9

1.2.4. Прин­ци­пы ра­бо­ты среды MPICH 10

1.2.5. Кластер МИИТ Т-4700 14

1.3. Обоснование целесообразности разработки 15

1.4. Требования разработке 16

1.4.1. Требования к кластерной системе 16

Требования к информационному обеспечению 16

1.4.2. Требования к методическому обеспечению 16

1.4.3. Требования к документации 17

1.4.4. Требования к техническому обеспечению 17

1.4.5. Требования к рабочим станциям 17

1.4.6. Требования к разрабатываемому ПО 18

1.4.7. Требования к показателям назначения 18

1.5. Анализ исходных данных 19

2. РАЗРАБОТКА ЛАБОРАТОРНОГО КОМПЛЕКСА «КЛАСТЕРНЫЕ СИСТЕМЫ» 20

2.1. Разработка методического обеспечения для лабораторного комплекса 20

2.2. Содержание лабораторных работ 22

2.2.1. Рабочее задание для лабораторной работы №1 22

2.2.2. Рабочее задание для лабораторной работы №2 24

2.2.3. Рабочее задание для лабораторной работы №3 25

2.3. Разработка программного обеспечения для лабораторного комплекса 27

2.4. Подготовка рабочих мест и описание хода выполнения лабораторных работ 31

2.4.1. Лабораторная работа №1 31

2.4.2. Лабораторная работа №2 46

3. СИСТЕМОТЕХНИЧЕСКИЙ РАСЧЁТ: РАСЧЁТ ПОКАЗАТЕЛЕЙ ЭФФЕКТИВНОСТИ ВЫЧИСЛЕНИЙ 55

3.1. Описание показателей эффективности параллельных вычислений 55

3.2. Описание хода лабораторной работы №3 56

4. АНАЛИЗ ЧЕЛОВЕКО-МАШИННОГО ВЗАИМОДЕЙСТВИЯ 61

4.1. Обзор теории тестовых заданий (Item response theory). 61

4.2. Процедура расчёта 64

4.3. Построение характеристических кривых для заданий 70

4.4. Обсуждение результатов и дальнейших действий 72

4.5. Вывод 75

5. ЭКОНОМИЧЕСКАЯ ЧАСТЬ 76

5.1. Постановка экономической задачи. 76

5.2. Расчет затрат, связанных с разработкой лабораторного комплекса. 77

5.3. Экономическая эффективность 82

5.3.1. Расчёт показателей эффективности 82

5.3.2. Расчет затрат по эксплуатации лабораторного комплекса. 84

5.3.3. Расчёт эффективности разработки. 84

6. СПИСОК ИСТОЧНИКОВ 86

7. ПРИЛОЖЕНИЯ 87

7.1. Приложение 1. Листинг разработанного ПО 87

7.1.1. Листинг программы Интерфейс для MPICH 87

7.1.2. Листинг тестирующей MPI-программы 94

7.2. Приложение 2. Инструкция по написанию и запуску заданий на кластере МИИТ Т-4700. 97

  1. Предпроектный анализ

    1. Введение

Вычислительные кластеры используются в вычислительных целях, в частности в научных исследованиях. Для вычислительных кластеров существенными показателями являются высокая производительность процессора в операциях над числами с плавающей точкой (flops) и низкая латентность объединяющей сети, и менее существенными — скорость операций ввода-вывода, которая в большей степени важна для баз данных и web-сервисов. Вычислительные кластеры позволяют уменьшить время расчетов, по сравнению с одиночным компьютером, разбивая задание на параллельно выполняющиеся ветки, которые обмениваются данными по связывающей сети.[1]

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

Цель дипломного проекта ­­– Разработка лабораторного комплекса «Кластерные технологии» в рамках дисциплины «Высокопроизводительные вычислительные системы» для обучения студентов кафедры АСУ.

Кроме того в ходе дипломного проектирования будет разработано программное обеспечение, которое будет представлять собой интерфейс, позволяющий запускать параллельные программы, балансируя нагрузку между узлами кластера. Поставляемый интерфейс MPICH2 этого не позволяет.

    1. Анализ кластерных технологий в контексте лабораторного практикума

      1. Типы кластеров

Кластер — группа компьютеров, объединённых высокоскоростными каналами связи и представляющая с точки зрения пользователя единый аппаратный ресурс.

Один из первых архитекторов кластерной технологии Gregory F. Pfister [Грегори Пфистер] дал кластеру следующее определение: «Кластер — это разновидность параллельной или распределённой системы, которая:

  • состоит из нескольких связанных между собой компьютеров;

  • используется как единый, унифицированный компьютерный ресурс».

Обычно различают следующие основные виды кластеров:

  • отказоустойчивые кластеры (High-availability clusters, HA, кластеры высокой доступности)

  • кластеры с балансировкой нагрузки (Load balancing clusters)

  • вычислительные кластеры (Computing clusters)

  • grid-системы.

Кластеры высокой доступности

Обозначаются аббревиатурой HA (англ. High Availability — высокая доступность). Создаются для обеспечения высокой доступности сервиса, предоставляемого кластером. Избыточное число узлов, входящих в кластер, гарантирует предоставление сервиса в случае отказа одного или нескольких серверов. Типичное число узлов — два, это минимальное количество, приводящее к повышению доступности. Создано множество программных решений для построения такого рода кластеров.

Отказоустойчивые кластеры и системы вообще строятся по трем основным принципам:

  • с холодным резервом или активный/пассивный. Активный узел выполняет запросы, а пассивный ждет его отказа и включается в работу, когда таковой произойдет. Пример — резервные сетевые соединения, в частности, Алгоритм связующего дерева. Например связка DRBD и HeartBeat.

  • с горячим резервом или активный/активный. Все узлы выполняют запросы, в случае отказа одного нагрузка перераспределяется между оставшимися. То есть кластер распределения нагрузки с поддержкой перераспределения запросов при отказе. Примеры — практически все кластерные технологии, например, Microsoft Cluster Server. OpenSource проект OpenMosix.

  • с модульной избыточностью. Применяется только в случае, когда простой системы совершенно недопустим. Все узлы одновременно выполняют один и тот же запрос (либо части его, но так, что результат достижим и при отказе любого узла), из результатов берется любой. Необходимо гарантировать, что результаты разных узлов всегда будут одинаковы (либо различия гарантированно не повлияют на дальнейшую работу). Примеры — RAID и Triple modular redundancy.

Конкретная технология может сочетать данные принципы в любой комбинации. Например, Linux-HA поддерживает режим обоюдной поглощающей конфигурации (англ. takeover), в котором критические запросы выполняются всеми узлами вместе, прочие же равномерно распределяются между ними.