Разработка ПО для организации параллельных вычислений на кластерах
Описание файла
Документ из архива "Разработка ПО для организации параллельных вычислений на кластерах", который расположен в категории "". Всё это находится в предмете "параллельные системы и параллельные вычисления" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "параллельные системы и параллельные вычисления" в общих файлах.
Онлайн просмотр документа "Разработка ПО для организации параллельных вычислений на кластерах"
Текст из документа "Разработка ПО для организации параллельных вычислений на кластерах"
Инкомтел |
Документация по проекту «Разработка программного обеспечения для организации эффективного выполнения параллельных вычислений на кластерах» |
Версия 1.0 |
i-vamala 12/10/2007 |
Документация
по проекту «Разработка программного обеспечения для организации эффективного выполнения параллельных вычислений на кластерах»
Указатель
1. Описание проекта 3
2. Общая архитектура программного комплекса 3
1.1 Задачи интегрированной среды разработки граф-схемных параллельных программ 5
1.2 Задачи системы выполнения граф-схемных параллельных программ на кластерах 5
2. Реализация программного комплекса на платформе .NET 8
2.1 Реализация и системные требования интегрированной среды разработки граф-схемных параллельных программ. 8
2.2 Реализация и системные требования системы выполнения граф-схемных параллельных программ на кластерах. 10
3. Инструкция по инсталляции 14
4. Инструкция пользователя для программного комплекса «Инструментальная среда граф-схемного параллельного программирования». 14
-
Описание проекта
В ходе выполнения проекта («Разработка программного обеспечения для организации эффективного выполнения параллельных вычислений на кластерах») был реализован программный комплекс (ПК) для визуального проектирования и выполнения граф-схемных параллельных программ на кластерах.
-
Общая архитектура программного комплекса
В основе ПК лежит язык граф-схемного параллельного программирования. Основными этапами жизненного цикла параллельной программы являются ее разработка и выполнение на вычислительной системе. Одной из важных особенностей граф-схемной концепции является возможность разделить эти два этапа. То есть программист на этапе разработки может не задумываться над тем, каким образом и на каких ВС будет выполняться его программа и сосредоточиться на разработке граф-схемы. Результатом этого этапа будет исходный код программы. Обеспечение данного этапа нужными инструментами – задача системы поддержки разработки граф-схемных параллельных программ. О требованиях, предъявляемых к такой системе, и ее составе будет подробнее рассказано в 2.1. Выполнение запуска и исполнение параллельных программ требует специальных средств для управления, о которых подробнее рассказано в 2.2.
Интеграция предполагает, что при реализации обеспечено совместное функционирование всех элементов, предполагающих взаимодействие с пользователем, в однородном окружении – оболочке Microsoft Visual Studio 2008.
Общая архитектура среды представлена на рис. 1, а подробное описание всех элементов изображенных на рисунке представлено в продолжении.
-
Задачи интегрированной среды разработки граф-схемных параллельных программ
Назначение интегрированной среды разработки – организовать работу программиста на этапе разработки параллельной программы.
Среда разработки предоставляет обособленное рабочее пространство для хранения всей информации относительно разрабатываемой программы в рамках системы проектов. Проект содержит всю информацию о разрабатываемой программе и ее элементах и служит для согласованного управления ими.
Граф-схемная параллельная программа (ГСПП) является совокупностью классов специального вида, и может быть представлена на объектно-ориентированном языке семейства .NET в одном или нескольких текстовых файлах. Однако среда разработки предоставляет программисту инструменты для проектирования ГСПП не только в текстовом режиме, но и путем создания экранной диаграммы – графического представления граф-схем (ГС) из отдельно создаваемых элементов – модулей и других граф-схем. Система оснащена визуальным редактором граф-схем и редактором модулей и граф-схем, необходимым для задания интерпретации (структуры и подпрограмм модулей). Разрабатывая графическое представление ГС, программист должен быть, избавлен от необходимости вручную добавлять соответствующие участки кода в текстовое представление ГСПП. Таким образом, в функции среды разработки входит организация взаимно-однозначного отображения графических элементов, используемых при проектировании, в исходный код и обратно. Двустороннее отображение обязано поддерживаться по той причине, что зачастую программист вносит изменения в программу на обоих уровнях – на графическом и изменяя текст программы вручную.
Практически все современные среды, позволяющие редактировать программный код, оснащены такими полезными функциями, как подсветка синтаксиса, использование шаблонов, возможность интеллектуальной модификации (рефакторинга) исходного кода. Такие элементы значительно повышают эффективность разработки кода, поэтому и они включены и в функции среды разработки ГСПП.
Кроме инструментов, используемых при разработке программ, среда разработки содержит блоки, обеспечивающие графический интерфейс пользователя для управления системой выполнения параллельных программ.
Для детальной проработки интерфейса и определения полного списка команд была промоделирована деятельность пользователя при работе с системой и нашла отражение в реализации системы. Подробнее о порядке работы с системой можно узнать в 4.
-
Задачи системы выполнения граф-схемных параллельных программ на кластерах
Эффективность системы выполнения параллельных программ вносит основной вклад наряду с характеристиками оборудования в производительность вычислительной системы в целом. В связи с этим, а также учитывая прочие требования к системе, следующие требования ставились при реализации данных средств для системы ГСПП:
-
Обеспечить возможность построения иерархических вычислительных систем.
-
Максимально эффективно использовать встроенные средства операционных систем, установленных на компьютерах.
-
Получить максимально возможную производительность вычислений в распределенной среде.
-
Минимизировать затраты ресурсов на пересылку команд управления и данных между узлами вычислительной системы.
Общая архитектура и основные блоки управления процессом выполнения ГСПП на кластере, приведены на рис. 2.
Рис. 2. Общая архитектура управления процессом выполнения ГСПП
Сервер выполнения – это специально выделенный узел кластера, в задачу которого входит распределение пользовательских программ по вычислительным узлам кластера, их запуск, мониторинг и управление их состоянием, а также выдача пользователю промежуточных (режим трассировки) и окончательных результатов выполнения программы, а также сообщений об ошибках. Одной из важнейших функций сервера выполнения, качественно отличающих среду ГСПП от прочих средств параллельного программирования для кластеров, является управление процессами и загруженностью ВС в целом. На основе информации о загруженности вычислительных узлов кластера, средства планирования способны принимать решение о перемещении задач с сильно загруженных узлов на слабо загруженные или простаивающие узлы.
Также в системе присутствует сервер хранения данных, чьей задачей является хранения промежуточных результатов вычислений, с помощью которых в режиме трассировки ГСПП можно восстановить историю процесса вычисления во времени.
Процесс выполнения ГСПП начинается с получения сервером выполнения пакета запуска ГСПП, который включает саму программу (в виде сборки .NET) и описание ее начального размещения по узлам кластера. Это описание может быть получено как заданием вручную, так и с помощью автоматизированных средств среды разработки. Далее, этот пакет рассылается по всем затребованным в начальном размещении узлам кластера и ГСПП инициализируется.
После того, как ГСПП была инициализирована на всех затребованных в размещении узлах, сервер генерирует команду запуска программы. Для передачи данных между модулями используются функции из библиотеки базовых классов, которые могут быть адаптированы под конкретную сетевую инфраструктуру заказчика. Если на каком-либо вычислительном узле накапливается полный кортеж данных (полный в том смысле, что все фактические параметры метода одного из модулей, приписанных вычислительному узлу, определены и имеют одинаковые теги), то на вычислительном узле формируется готовая к выполнению задача.
Рис. 3. Процесс выполнения ГСПП на вычислительном узле
Готовые к выполнению задачи поступают в очередь планировщика, где ожидают освобождения ресурсов вычислительного узла. Как только ресурсы освобождаются (в случае, если какая-либо задача закончила вычисления или была приостановлена), готовая задача из очереди передается в пул потоков специального вида, где происходит ее запуск (рис. 3). Этот пул потоков управляется непосредственно планировщиком.
Задачи, стоящие в очереди, могут быть перенесены планировщиком на другие вычислительные узлы, если в этом есть необходимость.
-
Реализация программного комплекса на платформе .NET
-
Реализация и системные требования интегрированной среды разработки граф-схемных параллельных программ.
-
Одним из условий разработки проекта был выбор .NET в качестве платформы реализации и Microsoft Visual Stusio 2008 (VS) в качестве базового пакета для интеграции средств разработки. Реализовация интеграции было проведено с использованием специальной программы интеграции Microsoft Visual Studio Integration Program (VSIP) (http://www.microsoft.com/vsip).
Далее рассмотрим объекты, которые были добавлены в VS при реализации среды разработки ГСПП:
-
Новый тип проекта – “Parallel project”, который управляет файлами, подготавливает и запускает процесс компиляции, а также определяет действия по развертыванию ГСПП (т.е. запуску на вычислительной системе).
-
Редактор граф-схем – специализированный визуальный редактор, полностью соответствующий требованиям, описанным в 2.1 и адаптированный для работы во внутренней архитектуре и интерфейсе VS. Обеспечивает взаимно-однозначное соответствие между графическим и текстовым представлением ГСПП.
-
Средства коммуникации с удаленными вычислительными системами основанные на технологии Web сервисов и .NET Remoting.
-
Редактор размещения, предназначенный для отображения логической структуры программы на физическую структуру кластера. Данный редактор с помощью системы коммуникации получает информацию о структуре вычислительной системы, на которой предполагается проводить вычисления и позволяет создать специальный файл размещения, который передается потом среде выполнения ГСПП.
-
Средства визуализации загруженности вычислительных узлов кластера и контроля за процессом выполнения ГСПП.
Каждый объект, описанный выше, представляет собой объект COM, реализующий набор интерфейсов, введенных в VS для определения функциональности и назначения элемента. Пример интерфейса инструментальной среды ГСПП интегрированной в VS см. на рис. 4.
Системные требования:
-
Для установки интегрированной среды разработки требуется персональный компьютер с установленной средой Microsoft Visual Studio 2008 Professional (или выше).
-
Для управления кластером – наличие сетевого соединения по протоколу TCP/IP с головным узлом кластера
Для установки среды Visual Studio 2008 Professional Edition:
-
Компьютер с ЦП с тактовой частотой не ниже 1.6 GHz
-
Windows Vista® (x86 & x64), Windows® XP (x86 & x64) с SP2 или выше (за исключением Starter Edition), Windows Server® 2003 (x86 & x64) с SP1 или выше, Windows Server 2003 R2 (x86 and x64)
-
.NET Framework 3.0
-
384 MB ОП (768 MB ОП для Windows Vista)
-
2.2 GB дискового пространства
-
Реализация и системные требования системы выполнения граф-схемных параллельных программ на кластерах.
С точки зрения программиста – пользователя среды ГСПП, она реализует многоуровневый подход к организации распределенных параллельных приложений. Здесь в иерархии клиент-сервер среда разработки представляет собой клиента вычислительной системы, которая в свою очередь логически является сервером (то есть исполнителем) вычислений.