Визуализация моделей процессов, управляемых сообщениями, в системе Graphplus templet
Программа управления параллельными вычислениями типа "разветвление – слияние". Используемые для представления каналов графические примитивы. Объект-процесс, описывающий алгоритм обработки поступающих сообщений - ориентированный аннотированный граф.
| Рубрика | Программирование, компьютеры и кибернетика |
| Вид | статья |
| Язык | русский |
| Дата добавления | 28.01.2020 |
| Размер файла | 28,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru//
Визуализация моделей процессов, управляемых сообщениями, в системе Graphplus templet
С.В. Востокин
Рассматривается способ визуализации моделей процессов, управляемых сообщениями. Приведен пример параллельной программы типа «разветвление - слияние».
Ключевые слова: визуальное программирование, модель процессов, параллельное программирование.
При разработке параллельных и распределенных программ часто удобнее структурировать код в терминах моделей процессов, управляемых сообщениями. В моделях этого типа естественно представляется параллелизм, что позволяет применять их для программирования многопроцессорных компьютеров. Они подходят для программирования как в общей, так и в распределенной памяти; проще в использовании, чем аппаратно ориентированные модели многопоточных вычислений и обмена сообщениями в API операционных систем. В то же время применение объектно-ориентированных языков, например C++, C#, Java, для выражения семантики моделей процессов, управляемых сообщениями, приводит к ряду трудностей, проистекающих из процедурной семантики вызовов методов в перечисленных языках.
Для преодоления указанного недостатка традиционных объектно-ориентированных языков в разрабатываемой нами системе Graphplus templet используется визуальное проектирование процессов и каналов - интерфейсов обмена сообщениями между процессами.
Базовыми концепциями визуального языка являются типы сообщений (типы данных, определяемых пользователем) и методы (процедуры), выполняющие действия над переменными указанных типов, передаваемых как параметры вызова. Типы и методы кодируются обычным образом на языках C++, C#, Java и не содержат обращений к примитивам синхронизации или обмена сообщениями.
Объект-канал описывает протокол обмена сообщениями между парой процессов, подключенных к нему. Канал представляется ориентированным аннотированным графом. Вершины графа имеют пометки типа «клиент» и «сервер», обозначающие направление передачи сообщения. Пометки дуг адресуют тип передаваемого сообщения. Одна из вершин типа «клиент» имеет пометку «исходная», обозначающую начальное состояние. Канал работает как конечный автомат. Используемые для представления каналов графические примитивы показаны на рис. 1.
Объект-процесс описывает алгоритм обработки поступающих сообщений. Процесс также представляет собой ориентированный аннотированный граф. Вершины графа относятся к двум типам: порты и методы. Порты - это точки подключения каналов, они дополнительно снабжены пометками «клиент» или «сервер». Порты идентифицируются именами и типами каналов. Вершины-методы идентифицируются именами. Вершины графа-процесса связаны дугами двух типов: описывающих передачу управления и передачу сообщений из каналов в методы. На рис. 2 дуги а, б, в, г описывают возможные связи между вершинами по данным, а дуги д и е - связи по управлению.
управление сообщение граф
Размещено на http://www.allbest.ru//
Р и с. 1. Графические символы, используемые для описания каналов
Размещено на http://www.allbest.ru//
Р и с. 2. Графические символы, используемые для описания процессов.
Пример использования описанных выше графических обозначений приведен на рис. 3.
Размещено на http://www.allbest.ru//
Р и с. 3. Модель параллельной программы
На рис. 3 представлена программа управления параллельными вычислениями типа «разветвление - слияние». Здесь Main - это главный процесс, запускающий вычисления, о чем говорит пометка его вершины begin. Метод begin имеет два выходных параметра типа call, соответствующих исходящим из его вершины дугам. Сообщения call передаются по каналам типа Call, связывающих процессы, и поступают на серверные порты p1, а затем в методы proc процессов Branch1 и Branch2. Выходными параметрами методов являются ответные сообщения ret, в конечном итоге поступающие в метод end процесса Main. Пометка 2 метода end говорит о том, что он запустится, только когда его достигнут 2 сообщения. Так как из метода end больше сообщений не отправляется, вычисления останавливаются.
Показанный пример, а также другие примеры параллельных управляющих алгоритмов размещены на сайте проекта «Графплюс» по адресу http://graphplus.ssau.ru. Модели параллельных программ [1], подобные модели, показанной на рис. 3, хранятся в XML-файлах. По файлам специальным генератором строится код на языке C++. Данный код повторяет структуру графов рис. 3: вершины графа соответствуют case-секции инструкции switch в обработчиках сообщений процессов. Поэтому сгенерированный код понятен и удобен для отладки. Также видны преимущества графического кодирования - помимо наглядности, графическая нотация оказывается лаконичнее сгенерированного кода на языке C++. Описанный метод визуализации основан на парадигме автоматного программирования [2]. Шаги автомата - это вызовы методов процесса. Достоинством данной графической нотации является явное определение контекста вызова метода и интерфейсов взаимодействия процессов. В отличие от других автоматных подходов, работа процессов в общем случае асинхронна.
Представленный визуальный язык применяется в системе автоматизации параллельного программирования Graphplus templet для суперкомпьютера «Сергей Королев», который установлен в Самарском государственном аэрокосмическом университете (национальном исследовательском университете). Дальнейшее развитие языка предполагает большую адаптацию к технологиям XML, таким как схемы XSL и трансформации XSLT, с целью использования стандартных средств визуализации современных XML-редакторов, в том числе поставляемых в комплектах интегрированных средств разработки.
Библиографический список
Востокин С.В. Графическая объектная модель параллельных процессов и ее применение в задачах численного моделирования. - Самара: Изд-во Самарского научного центра РАН, 2007. - 286 с.
Поликарпова Н.И., Шалыто А.А. Автоматное программирование. - СПб.: Питер, 2009. - 176 с.
Размещено на Allbest.ru
Подобные документы
Векторная компьютерная графика. Графические примитивы. Графические возможности языка программирования Pascal. Методические рекомендации к изучению графики в языке программирования Pascal. Построение графиков функций.
курсовая работа [28,3 K], добавлен 13.06.2007Формы представления моделей: модели материальные и модели информационные. Формализация текстовой информации, представление данных в табличной форме. Граф как совокупность точек, соединённых между собой линиями. Упорядочение информации в форме графа.
реферат [2,5 M], добавлен 10.04.2010Язык Паскаль - процедурно-ориентированный язык высокого уровня, его основные достоинства. Разработка программ для решения задач. Выбор метода обработки информации. Форма представления исходных данных. Разработка алгоритма, его описание, листинг программы.
курсовая работа [3,6 M], добавлен 17.02.2013- Визуализация профиля пользователя социальной сети на основе обработки семантического описания данных
Анализ существующих музыкальных сетей, профиля музыкального файла. Технологии и возможности Web 2.0. Анализ алгоритмов в Data Mining. Структура социальной сети. Набор графических элементов, описывающий человека в зависимости от прослушиваемой музыки.
дипломная работа [3,7 M], добавлен 20.04.2012 Понятие информационной безопасности. История развития криптографии. Функции информационных моделей. Переменные, используемые при разработке прикладной программы для шифрования и дешифрования сообщений с помощью шифра Цезаря. Блок-схема общего алгоритма.
курсовая работа [975,5 K], добавлен 11.06.2014Задача об оптимальном графе для децентрализованного поиска. Жадный алгоритм. Модель Клайнберга. Математическая модель. Алгоритмы решения. Алгоритм локального поиска. Табу алгоритм. Метод ветвей и границ. Выбор между одинаковыми соседями. Стартовый граф.
дипломная работа [4,1 M], добавлен 23.10.2016Способы управления переключением потока заданий к системе, состоящей из двух серверов: одноуровневое и гистерезисное. Изображение графа цепи Маркова, соответствующего процессу рождения и гибели. Примеры оценки динамических характеристик систем управления.
курсовая работа [1,2 M], добавлен 25.01.2013Разработка алгоритмов и блок-схем, описывающих процесс визуализации и модификации поведения нестандартных управляющих элементов. Описание принципов композиции и организации элементов управления, а также описание выбранного стиля и цветовой гаммы.
курсовая работа [4,2 M], добавлен 22.05.2012Построение систем визуализации моделей раскроя и их модификации. Анализ способов и методов создания универсального хранилища данных, на примере построения динамически формируемого информационного файла. Графические возможностей языка высокого уровня С.
научная работа [355,5 K], добавлен 06.03.2009Технологическая схема системы. Структурно-функциональная модель обработки сообщений системой управления технологическим процессом. Поток сообщений в общем виде. Моделирование в среде GPSS и в среде C#, их результаты. Алгоритм имитационного моделирования.
курсовая работа [1,3 M], добавлен 14.12.2012


