- •МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •ЯГСПП
- •структура Организационная ЯГСПП программы
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Примеры ГСПП
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
- •Состояние разработки
Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
Примеры ГСПП
Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
Примеры ГСПП
Построим ГСПП решения нелинейного уравнения x aex bx3 c x методом простых итераций с заданной точностью и начальным приближением х0.
ГС программы:
Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
Примеры ГСПП
Текстовое представление ГСПП:
<?xml version="1.0" encoding="Windows-1251" ?> <!DOCTYPE schema SYSTEM "schema.dtd">
<schema name="GSPP2"> //Программа решения нелинейного уравнения <nodes>//Описание модулей
<node id="GenData" module="GenData" /> <node id="Mult1" module="Mult1" /> <node id="Mult2" module="Mult2" /> <node id="Mult3" module="Mult3" /> <node id="Sum" module="Sum" />
<node id="CheckCond" module="CheckCond" /> <node id="Output" module="Output" /> </nodes>
<relations>//Описание связей выходов КГВых со входами КГВх <relation>
<first id="GenData"> <group>1</group> <output>1</output> </first>
<second id="Mult1"> <group>1</group> <input>1</input> </second> </relation> <relation>
<first id="GenData"> <group>1</group> <output>2</output> </first>
<second id="Mult2"> <group>1</group> <input>1</input> </second> </relation>
……………………………………………………………………………
</schema>
Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
Операционная семантика
Перейдем к описанию процесса выполнения ГСПП
Модуль ГСПП считается готовым для выполнения по любой из своих КГВх, если на всех входах этой КГВх (в соответствующих входам буферах) есть данные, помеченные одним и тем же тегом.
Различные теги идентифицируют различные данные, к которым одновременно применяется ГСПП, точнее, подпрограммы, отнесенные к соответствующим КГВх ее модулей (таким образом реализуется параллелизм множества данных)
Считается, что модули, у которых КГВх не имеют входов (этим КГВх сопоставляются подпрограммы с пустым множеством параметров), готовы для выполнения по этим КГВх с момента инициализации выполнения ГСПП
Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
Операционная семантика
При выполнении процесса в его подпрограмме могут использоваться специальные системные команды (реализуемые посредством обычного обращения к специальным функциям) WRITE (запись), READ (чтение), OUT (выход) – позволяющие осуществлять
межмодульное взаимодействие.
Команда WRITE имеет формат:
WRITE(<номер КГВых>,<тег>,<список выходов><список переменных>)
При выполнении команды WRITE сохраняется контекст подпрограммы, точнее процесса, где она была инициализирована, а после ее выполнения процесс продолжает свое выполнение в прерванном контексте (обычный механизм возврата после вызова
процедуры).
Для более “тонкой” работы с поступающими на КГВх модулей данными, в частности работы с сопоставляемыми им буферами, предусмотрена команда:
CHECK(<номер КГВх>.<тег>,<список входов>,<переменная>)
Команда CHECK проверяет наличие данных с указанными тегами на указанных входах КГВх.
Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
Инструментальная среда разработки ГСПП
Предназначена для разработки ГСПП. Можно разделять аспекты при проектировании программы, последовательно переходя от графического представления к содержательному, используя многооконную организацию. В отдельном окне для каждой КГВх модуля можно задать связанную с ней подпрограмму, отредактировать текст самой подпрограммы, автоматически проверить правильность согласования типов входов КГВх с типами связанных с ними выходов КГВых.
Блок графической |
|
Блок текстовой |
разработки ГСПП |
|
разработки ГСПП |
|
|
|
Блок взаимной трансляции
Блок
координации
Блок взаимодействия с базой данных
ОС Windows
База данных
Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
Реализация языка на кластерных системах
Физическая среда реализации
………
……… |
……… |
…
Граф – схемное потоковое параллельное
программирование и его реализация на кластерных системах
Организация управления параллельными вычислениями на кластере
Структура и основные блоки управления процессом выполнения ГСПП на кластерных системах
Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
Функции сервера
1.Начальное конфигурирование кластера
[в соответствии с затребованными пользователем ресурсами – количеством компьютеров и т.д.]
2.Запуск на выполнение пользовательских параллельных
программ[“размещение” буферов на указанных пользователем компьютеров]
3.Приём и обработка сообщений от компьютеров
кластера[которые разделены на следующие категории: - данные о загруженности
компьютеров; - сообщения о непредвиденных ситуациях(отказах, сбоях, восстановлениях); - указания администратора(как должна изменяться конфигурация кластера, как изменить стратегию планирования и др.)]
4.Планирование загруженности кластера[на основе данных, полученных
от компьютеров о их загруженности, сервер указывает, какие компьютера должны произвести перераспределение процессов]
5.Динамическое управление реконфигурированием кластера в случае отказов и восстановлений
6.Реакция на запросы администратора о загруженности кластера, его конфигурации, текущем состоянии.
Граф – схемное потоковое параллельное программирование и его реализация на кластерных системах
Функции компьютера
–приём и обработка сообщений от сервера,
–управление выполнением “своих” процессов,
–обнаружение отказов, других непредвиденных ситуаций и информирование о этом сервера,
–определение показателей загруженности,[измерение и
передача на сервер через определённый интервал времени ∆t определённых заранее параметров загруженности компьютера; в более сложном случае интегральная оценка загруженности]
–периодическое сохранение своего состояния на случай отказа и необходимости восстановления.