Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка ПО для организации параллельных вычислений на кластерах.doc
Скачиваний:
24
Добавлен:
28.06.2014
Размер:
14.02 Mб
Скачать
    1. Задачи системы выполнения граф-схемных параллельных программ на кластерах

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

  • Обеспечить возможность построения иерархических вычислительных систем.

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

  • Получить максимально возможную производительность вычислений в распределенной среде.

  • Минимизировать затраты ресурсов на пересылку команд управления и данных между узлами вычислительной системы.

Общая архитектура и основные блоки управления процессом выполнения ГСПП на кластере, приведены на рис. 2.

Рис. 2. Общая архитектура управления процессом выполнения ГСПП

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

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

Процесс выполнения ГСПП начинается с получения сервером выполнения пакета запуска ГСПП, который включает саму программу (в виде сборки .NET) и описание ее начального размещения по узлам кластера. Это описание может быть получено как заданием вручную, так и с помощью автоматизированных средств среды разработки. Далее, этот пакет рассылается по всем затребованным в начальном размещении узлам кластера и ГСПП инициализируется.

После того, как ГСПП была инициализирована на всех затребованных в размещении узлах, сервер генерирует команду запуска программы. Для передачи данных между модулями используются функции из библиотеки базовых классов, которые могут быть адаптированы под конкретную сетевую инфраструктуру заказчика. Если на каком-либо вычислительном узле накапливается полный кортеж данных (полный в том смысле, что все фактические параметры метода одного из модулей, приписанных вычислительному узлу, определены и имеют одинаковые теги), то на вычислительном узле формируется готовая к выполнению задача.

Рис. 3. Процесс выполнения ГСПП на вычислительном узле

Готовые к выполнению задачи поступают в очередь планировщика, где ожидают освобождения ресурсов вычислительного узла. Как только ресурсы освобождаются (в случае, если какая-либо задача закончила вычисления или была приостановлена), готовая задача из очереди передается в пул потоков специального вида, где происходит ее запуск (рис. 3). Этот пул потоков управляется непосредственно планировщиком.

Задачи, стоящие в очереди, могут быть перенесены планировщиком на другие вычислительные узлы, если в этом есть необходимость.