МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ
(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Граф – схемное потоковое
параллельное программирование и его
реализация на кластерных системах
д.т.н., проф. Кутепов В.П.
Котляров Д.В.

1.
2.

Кутепов В.П. Об интеллектуальных компьютерах и больших компьютерных системах
нового поколения. Теория и системы управления, 1996, №5.
Кутепов В. П. и др. Граф-схемное потоковое параллельное программирование и его
реализация на кластерных системах. Теория и системы управления, 2005, №1.

Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах

Назначение: визуальная разработка модульных
параллельных потоковых программ и их
выполнение на кластерных системах
Состав разработанных программных средств:
– язык граф – схемного потокового программирования (ЯГСПП),
– инструментальная среда программирования,
– средства управления параллельным выполнением программ на
кластерах

Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах

ЯГСПП
Язык позволяет эффективно и единообразно представлять
в программах три вида параллелизма

параллелизм информационно-независимых фрагментов;
потоковый параллелизм, обязанный своим
происхождением
конвейерному принципу обработки данных;
параллелизм множества данных – механизм
тегирования(одна и та же программа или ее фрагмент
применяются к различным данным);

Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах

ЯГСПП
Важными особенностями ЯГСПП являются:
схемное представление программ, программа есть пара
,
возможность визуального графического и текстового
представления программ,
возможность простого структурирования программы и
отражения декомпозиционной иерархии при ее построении
путем использования отношения «схема-подсхема»;
использование традиционных последовательных языков
при программировании модулей(С++, Pascal, Java и т.п.).

Граф – схемное потоковое параллельное
программирование и его реализация на
кластерных системах

ЯГСПП

Структура модуля

Граф – схемное потоковое параллельное
программирование и его реализация на
кластерных системах

ЯГСПП
Типы связей

Граф – схемное потоковое параллельное
программирование и его реализация на
кластерных системах

ЯГСПП Организационная структура
программы

Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах

Примеры ГСПП
Постановка задачи: Необходимо разработать ГСПП,
моделирующую работу предприятия по сборке
автомобилей. В разных цехах предприятия (далее модули)
производятся различные компоненты автомобиля, которые
затем передаются в сборочные цеха, где из этих
компонентов постепенно собирается автомобиль.
Компоненты от разных марок автомобилей помечаются
разными тегами и когда на входе появляются все
необходимые компоненты одной марки автомобиля, то они
помещаются на сборочный конвейер. После сборки
автомобиль красят и он проходит предпродажную
подготовку. При этом будем предполагать, что количество
цехов, где производят компоненты автомобилей столько,
сколько различных марок автомобилей будем
рассматривать, а количество сборочных цехов не больше ki
(i=1,..,4) .

Граф – схемное потоковое параллельное
программирование и его реализация на
кластерных системах

Примеры ГСПП

Граф – схемное потоковое параллельное
программирование и его реализация на
кластерных системах

Примеры
ГСПП

Граф – схемное потоковое параллельное
программирование и его реализация на
кластерных системах
Примеры ГСПП

Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах

Примеры ГСПП
Построим ГСПП решения нелинейного уравнения x ? ae x ? bx 3 ? c x методом простых
итераций с заданной точностью ? и начальным приближением х0.
ГС программы:

Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах
Примеры ГСПП
Текстовое представление ГСПП:


//Программа решения нелинейного уравнения
//Описание модулей








//Описание связей выходов КГВых со входами КГВх


1
1


1
1




1
2


1
1


……………………………………………………………………………


Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах

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

Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах

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

Команда WRITE имеет формат:
WRITE(,,)
При выполнении команды WRITE сохраняется контекст подпрограммы, точнее процесса, где
она была инициализирована, а после ее выполнения процесс продолжает свое
выполнение в прерванном контексте (обычный механизм возврата после вызова
процедуры).
Для более “тонкой” работы с поступающими на КГВх модулей данными, в частности работы с
сопоставляемыми им буферами, предусмотрена команда:

CHECK(.,,)
Команда CHECK проверяет наличие данных с указанными тегами на указанных входах КГВх.

Граф – схемное потоковое параллельное
программирование и его реализация на
кластерных системах

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

Блок текстовой
разработки ГСПП

Блок взаимной
трансляции
Блок
координации
Блок взаимодействия
с базой данных

ОС Windows
База данных

Граф – схемное потоковое параллельное
программирование и его реализация
на кластерных системах

Реализация языка на кластерных системах
Физическая среда реализации

………

………

………



Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах

Организация управления параллельными вычислениями на кластере
Структура и основные блоки управления процессом выполнения
ГСПП на кластерных системах

Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах

Функции сервера
1.

Начальное конфигурирование кластера
[в соответствии с затребованными пользователем ресурсами – количеством компьютеров и т.д.]

2.
3.

Запуск на выполнение пользовательских параллельных
программ[“размещение” буферов на указанных пользователем компьютеров]
Приём и обработка сообщений от компьютеров
кластера[которые разделены на следующие категории: - данные о загруженности

компьютеров; - сообщения о непредвиденных ситуациях(отказах, сбоях, восстановлениях); указания администратора(как должна изменяться конфигурация кластера, как изменить стратегию
планирования и др.)]

4.

Планирование загруженности кластера[на основе данных, полученных

5.

Динамическое управление реконфигурированием
кластера в случае отказов и восстановлений
Реакция на запросы администратора о загруженности
кластера, его конфигурации, текущем состоянии.

6.

от компьютеров о их загруженности, сервер указывает, какие компьютера должны произвести
перераспределение процессов]

Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах

Функции компьютера
– приём и обработка сообщений от сервера,
– управление выполнением “своих” процессов,
– обнаружение отказов, других непредвиденных
ситуаций и информирование о этом сервера,
– определение показателей загруженности,[измерение и

передача на сервер через определённый интервал времени ?t определённых заранее параметров
загруженности компьютера; в более сложном случае интегральная оценка загруженности]

– периодическое сохранение своего состояния на
случай отказа и необходимости восстановления.

Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах

Организация управления кластером

Состояние разработки
Программная реализация выполнена на языках Java, C++, C#

Система проходит экспериментальную проверку на различных
задачах на кластере кафедры прикладной математики


Случайные презентации

Файл
196325.ppt
175589.ppt
Sherlock Holmes.pptx
292784 (1).pptx
309875.ppt




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.