Визуализация моделей процессов, управляемых сообщениями, в системе 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Разработка программы для визуализации результатов статистической обработки экспериментальных данных. График, визуализирующей зависимость температуры физического объекта от времени, регистрируемой датчиками на протяжении фиксированного промежутка времени.
курсовая работа [1,8 M], добавлен 18.09.2014Особенности формирования растрового изображения. Графические примитивы, которые используются наиболее часто в современных графических системах (линии и фигуры). Основные алгоритмы создания растровых изображений в графических компьютерных программах.
презентация [883,6 K], добавлен 26.01.2015Разработка приложения, представляющего собой графический многопользовательский чат с передачей данных в закодированном виде. Алгоритмы обработки данных. Графические диалоговые системы. Тестирование и анализ результатов. Алгоритм декодирования сообщений.
курсовая работа [830,1 K], добавлен 12.03.2014Применение теории графов и алгоритмов на графах среди дисциплин и методов дискретной математики. Граф как совокупность двух множеств. Основные способы численного представления графа. Элементы и изоморфизмы графов. Требования к представлению графов в ЭВМ.
курсовая работа [162,2 K], добавлен 04.02.2011Рассмотрение управляемых марковских процессов с дисконтированием. Изучение систем массового обслуживания. Алгоритм метода анализа систем с групповым поступлением требований и управлением входящим потоком. Описание программы, реализующая алгоритм метода.
дипломная работа [1,3 M], добавлен 08.07.2014Аннуитетная схема погашения кредита. Клиент-серверные сообщения, их обработка. Хранение данных, структура базы. Алгоритм формирования цен и курса валют. Визуализация данных на стороне клиента. Результат обработки стратегии. Система администрирования.
дипломная работа [745,8 K], добавлен 08.12.2013Основы проектирования 3D моделей реального мира в программном продукте Dev C++. Выбор и обоснование языка программирования. Реализация построения интерактивной модели. Минимальные требования к технической базе. Алгоритм визуализации спортивного зала.
курсовая работа [2,1 M], добавлен 20.04.2014Понятие и специфические особенности языка программирования Си, история его создания. Интегрированная система Borland C. Процесс программирования с помощью данного языка. Графические примитивы в языках программирования. Преобразования на плоскости.
курс лекций [782,2 K], добавлен 04.10.2011Разработка клиентской и серверной частей программы, осуществляющей обмен текстовыми сообщениями между удаленными компьютерами локальной сети. Ключевые элементы управления программой, ее листинг и тестирование. Использование систем защиты информации.
курсовая работа [1,9 M], добавлен 18.12.2011Программные средства и системы для создания, автоматизирования технологических процессов. Разработка технологического процесса в системе "Вертикаль". Создание 3D моделей операционных заготовок в системе "Catia", технологической оснастки в "Solid Works".
дипломная работа [6,1 M], добавлен 25.06.2012