- •Документация по проекту «Разработка программного обеспечения для организации эффективного выполнения параллельных вычислений на кластерах» Указатель
- •Описание проекта
- •Общая архитектура программного комплекса
- •Задачи интегрированной среды разработки граф-схемных параллельных программ
- •Задачи системы выполнения граф-схемных параллельных программ на кластерах
- •Реализация программного комплекса на платформе .Net
- •Реализация и системные требования интегрированной среды разработки граф-схемных параллельных программ.
- •Реализация и системные требования системы выполнения граф-схемных параллельных программ на кластерах.
- •Инструкция по инсталляции
- •Инструкция пользователя
- •Пример. Задача вычисления числа Pi
- •Параметры рассматриваемой задачи
- •Граф-схема решения:
Задачи системы выполнения граф-схемных параллельных программ на кластерах
Эффективность системы выполнения параллельных программ вносит основной вклад наряду с характеристиками оборудования в производительность вычислительной системы в целом. В связи с этим, а также учитывая прочие требования к системе, следующие требования ставились при реализации данных средств для системы ГСПП:
Обеспечить возможность построения иерархических вычислительных систем.
Максимально эффективно использовать встроенные средства операционных систем, установленных на компьютерах.
Получить максимально возможную производительность вычислений в распределенной среде.
Минимизировать затраты ресурсов на пересылку команд управления и данных между узлами вычислительной системы.
Общая архитектура и основные блоки управления процессом выполнения ГСПП на кластере, приведены на рис. 2.
Рис. 2. Общая архитектура управления процессом выполнения ГСПП
Сервер выполнения – это специально выделенный узел кластера, в задачу которого входит распределение пользовательских программ по вычислительным узлам кластера, их запуск, мониторинг и управление их состоянием, а также выдача пользователю промежуточных (режим трассировки) и окончательных результатов выполнения программы, а также сообщений об ошибках. Одной из важнейших функций сервера выполнения, качественно отличающих среду ГСПП от прочих средств параллельного программирования для кластеров, является управление процессами и загруженностью ВС в целом. На основе информации о загруженности вычислительных узлов кластера, средства планирования способны принимать решение о перемещении задач с сильно загруженных узлов на слабо загруженные или простаивающие узлы.
Также в системе присутствует сервер хранения данных, чьей задачей является хранения промежуточных результатов вычислений, с помощью которых в режиме трассировки ГСПП можно восстановить историю процесса вычисления во времени.
Процесс выполнения ГСПП начинается с получения сервером выполнения пакета запуска ГСПП, который включает саму программу (в виде сборки .NET) и описание ее начального размещения по узлам кластера. Это описание может быть получено как заданием вручную, так и с помощью автоматизированных средств среды разработки. Далее, этот пакет рассылается по всем затребованным в начальном размещении узлам кластера и ГСПП инициализируется.
После того, как ГСПП была инициализирована на всех затребованных в размещении узлах, сервер генерирует команду запуска программы. Для передачи данных между модулями используются функции из библиотеки базовых классов, которые могут быть адаптированы под конкретную сетевую инфраструктуру заказчика. Если на каком-либо вычислительном узле накапливается полный кортеж данных (полный в том смысле, что все фактические параметры метода одного из модулей, приписанных вычислительному узлу, определены и имеют одинаковые теги), то на вычислительном узле формируется готовая к выполнению задача.
Рис. 3. Процесс выполнения ГСПП на вычислительном узле
Готовые к выполнению задачи поступают в очередь планировщика, где ожидают освобождения ресурсов вычислительного узла. Как только ресурсы освобождаются (в случае, если какая-либо задача закончила вычисления или была приостановлена), готовая задача из очереди передается в пул потоков специального вида, где происходит ее запуск (рис. 3). Этот пул потоков управляется непосредственно планировщиком.
Задачи, стоящие в очереди, могут быть перенесены планировщиком на другие вычислительные узлы, если в этом есть необходимость.