Templet – метод процессно-ориентированного моделирования параллелизма

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

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

Кроме этого, созданные системы использовались при чтении лекций и выполнении лабораторных работ по ряду дисциплин в процессе подготовки студентов по специальностям «Информационно-измерительная техника», «Автоматизированные системы обработки информации и управления» во многих ведущих университетах Поволжья.

Литература

1. Дедус Ф.Ф., Махортых С.А., Устинин М.Н., Дедус А.Ф. Обобщенный спектрально-аналитический метод обработки информационных массивов. Задачи анализа изображений и

распознавания образов. М.: Машиностроение, 1999. 357 с.

2. Дедус Ф.Ф. Достижения и перспективы развития обобщенного спектрально-аналитического метода в решении сложных информационных задач // Математические методы распознавания образов (ММРО-12): докл. 12-й Всеросс. конф. М.: ВЦ РАН, 2005. С. 84-86.

3. Батищев В.И., Мелентьев В.С. Аппроксимационные методы и системы промышленных измерений, контроля, испытаний, диагностики. М.: Машиностроение-1, 2007. 393 с.

4. Прикладной анализ случайных процессов / С.А. Прохоров, А.В. Графкин, В.В. Графкин [и др.]. Самара: Изд-во СНЦ РАН, 2007. 582 с.

5. Прохоров С.А. Математическое описание и моделирование случайных процессов / Самара: СГАУ, 2001. 209 с.

6. Прохоров С.А. Прикладной анализ неэквидистантных временных рядов / Самара: СГАУ, 2001. 375 с.

7. Прохоров С.А. Аппроксимативный анализ случайных процессов. 2-е изд., перераб. и доп. Самара: СНЦ РАН, 2001. 380 с.

References

1. Dedus F.F., Makhortykh SA., Ustinin М.М, Dedus А^., Obobshchenny spektralno-analiticheskiy metod obrabotki informa-tsionnykh massivov. Zadachi analiza isobrazheny i raspoznavaniya obrazov (Generalized Spectral-Analytic Method of Information Array Processing. Problems of Image Analysis and Pattern Recognition), Moscow, Mashinostroyeniye, 1999, 357 p.

2. Dedus F.F., Doklady 12 Vserossiyskoy konferentsii «Mate-maticheskie metody raspoznavaniya obrazov» (ММКО-12), (Proceedings of the 12th All-Russian Conference «Mathematical Methods for Pattern Recognition»), Мoscow, Computer Center of RAS, 2005, pp. 84-86.

3. Batishchev V.I., Melentyev V.S., Approksimatsionnye metody i sistemy promyshlennykh izmereniy, kontrolya, ispytaniy, diagnostiki (Approximating Methods and Systems of Industrial Measurements, Monitoring, Testing, Diagnostics), Мoscow, Mashinostroyenie-1, 2007, 393 p.

4. Prokhorov SA., Grafkin А^., Grafkin V.V., Degtyare-va О.А., Ivashchenko А^., Kudrina М.А., Kulikovskikh 1М., Lezin IA, Lezina I.V., Moskalenko I.S., Sapozhnikova E.S., Stankevich А.1, Shirokov O.Yu., Prikladnoy analiz sluchainykh protsessov (Application Analysis of Random Processes), Samara, Izdatelstvo Samara Research Center RAS, 2007, 582 p.

5. Prokhorov SA., Matematicheskoe opisanie i modelirova-nie sluchainykh protsessov (Mathematical Representation and Simulation of Random Processes), Samara, Samara State Aerospace Univ., 2001, 209 p.

6. Prokhorov SA., Prikladnoy analiz neekvidistantnykh vre-mennykh ryadov (Application Analysis of Non-uniform Time Series), Samara, Samara State Aerospace Univ., 2001, 375 p.

7. Prokhorov SA., Approksimativny analiz sluchainykh pro-tsessov (Approximative Analysis of Random Processes), 2nd ed., Samara, Samara Research Center RAS, 2001, 380 p.

УДК 519.685

TEMPLET - МЕТОД ПРОЦЕССНО-ОРИЕНТИРОВАННОГО МОДЕЛИРОВАНИЯ ПАРАЛЛЕЛИЗМА

С.В. Востокин, д.т.н.

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

обрабатывающих сообщения; визуализировать процессы и их взаимодействие при помощи аннотированных графов. Метод моделирования предназначен для описания систем с внутренним параллелизмом на основе процессного подхода. Особое внимание уделяется следующим аспектам методологии: способ декомпозиции процессов на процедуры обработки сообщений, описание протоколов взаимодействия процессов в виде конечных автоматов, графическая нотация для визуализации модели процессов, подробное описание правил для передачи динамики модели. В качестве иллюстрации приведен пример простейшей системы процессов типа «разветвление-слияние». Рассмотрены цели проектирования. Показана диаграмма верхнего уровня, описывающая композицию процессов и используемые в ней пиктографические элементы. Дается анализ примеров для объектов, составляющих диаграмму композиции процессов. Рассматриваются диаграммы коммуникационных объектов - каналы, диаграммы объектов, обрабатывающих сообщения, процессы. Кратко описаны программные средства поддержки методологии моделирования TEMPLET, дается ссылка на источники с примерами ее применения. Также предлагается ссылка на сайт исследовательского проекта, посвященного данной методологии, где размещены программные средства ее поддержки.

Ключевые слова: процесс, сообщение, канал, протокол, моделирование, визуализация, графическая нотация, автоматизация проектирования.

TEMPLET - METHOD OF PROCESS ORIENTED SIMULATION OF PARALLELISM

Vostokin S. V., Ph.D. (Samara State Aerospace University, easts@mail.ru) Abstract. This paper presents a new methodology of simulation of parallel processes TEMPLET being developed by the author at the department of information systems and technologies of Samara State Aerospace University. It reviews the improved version of notation, which makes it possible: to describe interprocess communication protocols in the form of sequence of communicated messages; to represent the logic of process operation by means of message processing procedures; to visualize the processes and their communication by means of annotated graphs. Simulation method is designed to describe the systems with inherent parallelism on the basis of a process approach. The following aspects of methodology are focused on: the way of process decomposition into message processing procedures; description of process communication protocols in the form of finite-state machines; graphic notation for visualization of process model; detailed description of rules for transmission of model dynamics. An example of the simplest system of fork-join type processes is given to illustrate this. The article consists of five parts. The Introduction considers the purposes of design. The main part shows the upper level diagram describing the process composition and pictographic elements used in it. Then the analysis of examples for the objects comprising the process composition diagram is represented. Further the communication object diagrams are reviewed - channels, diagrams of message processing objects - processes. The representation finishes with a brief description of the support software for TEMPLET simulation methodology and a reference to sources with examples of its usage. Besides, the reference to the web site of the research project related to this methodology is proposed, where you can find its support software. Keywords: process, message, channel, protocol, modeling, visualization, graphical notation, computer-aided design.

Процессно-ориентированный метод широко применяется в параллельных вычислениях, в системах сбора и обработки данных, при моделировании информационных процессов на производстве [1-4]. Используемые нотации сходны между собой на уровне взаимодействия процессов: это графы, вершины которых обозначают процессы, а дуги - информационные связи. Отличие состоит в способе описания процессов и логики их взаимодействия. В статье предлагается новый метод спецификации перечисленных аспектов процессной модели, позволяющий: 1) описывать протоколы взаимодействия процессов в виде последовательности передаваемых сообщений; 2) представлять логику работы процессов посредством процедур, обрабатывающих сообщения; 3) визуализировать процессы и их взаимодействие при помощи аннотированных графов.

Композиция процессов. Параллельная система в целом моделируется как композиция элементов модели «процесс» и элементов модели «канал». Интерфейсными элементами процессов, участвующих в композиции, являются порты. Система «разветвление-слияние» ForkJoin в описываемой нотации представлена на рисунке 1. Родительский процесс p выдает задания дочерним процессам c1 и c2, а затем выполняет обработку их ответов.

Пометки графа на рисунке 1 обозначают: p:Parent - процесс p типа Parent; p1->p:Call - кли-

ентский порт pi (процесса p), связанный с серверным портом p (процесса c1) каналом, имеющим тип Call; точка на дуге указывает положение серверного порта.

ForkJoin

Рис. 1. Композиция процессов в системе «разветвление-слияние»

Каналы. Диаграмма канала описывает объекты, задающие информационные связи между процессами, показывает, какие именно сообщения передаются между процессами, и определяет возможный порядок их передачи. Во взаимодействии по каналу участвуют два процесса - клиент и сервер. Возможна передача произвольного числа сообщений в обе стороны. В любой момент времени передается не более одного сообщения.

На рисунке 2 показан протокол взаимодействия между родительским и дочерним процессами

в системе «разветвление-слияние», описанный каналом Call. Пометки графа на рисунке 2 обозначают: s0 - начальная вершина процесса-клиента; si - вершина процесса-сервера; s2 - вершина процесса-клиента; call и ret - передаваемые сообщения.

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

В начальном состоянии возможна передача сообщений процессом-клиентом по дугам, исходящим из начальной вершины (с пометкой, как у s0 на рис. 2). Новым состоянием канала будет дуга, соответствующая переданному сообщению.

Если состоянием канала является дуга, то возможен прием сообщения, помечающего ее. Принять сообщение может процесс-клиент, если вершина, в которую входит дуга, является вершиной процесса-клиента. Иначе сообщение может принять процесс-сервер. Принимающий сообщение процесс может отправить ответное сообщение из тех, которые помечают дуги, исходящие из рассматриваемой вершины. Аналогично новым состоянием канала будет дуга, соответствующая переданному сообщению.

Граф на рисунке 2 показывает, что вначале клиент (родительский процесс p на рис. 1) передает дочернему процессу сообщение call, затем получает от него сообщение ret. На этом взаимодействие заканчивается.

Процессы. Диаграмма процесса описывает алгоритм обработки поступающих сообщений. Результатом обработки могут стать отправка новых сообщений и/или изменение состояния процесса. Процессы являются пассивными, управляемыми сообщениями: алгоритм обработки запускается только при поступлении сообщения и не может быть прерван другим сообщением до его завершения.

Примеры графических обозначений, используемых на диаграммах процессов, показаны на рисунках 3 и 4. Пометки графов обозначают: fork -начальная вершина, запускающая алгоритм обработки в начальном состоянии; call и ret - получаемые или отправляемые сообщения; p1 и p2 -клиентские порты процессов; p - серверный порт процесса; join, proc, error - методы обработки сообщений в процессах; yes, no - передача управле-

ния в случае успешного или неуспешного завершения процедуры обработки.

Состояние процесса - это переменная, хранящая значение текущей вершины графа процесса. Когда обработка не выполняется, переменная хранит специальный признак останова. Если имеется сообщение, отправленное процессу, то рано или поздно начнется обработка данного сообщения с вершины-порта (p, p1 или p2 на рис. 3 и 4). Переменная состояния процесса примет значение соответствующей вершины.

Правило передачи управления для портов: если имеется исходящая дуга с пометкой yes, управление передается по ней; если имеется исходящая дуга, помеченная поступившим сообщением, управление передается по ней; иначе, если имеется дуга с пометкой no, управление передается по ней.

Правило запуска процедуры обработки сообщений: процедура запускается, если одновременно (1) переменная состояния принимает значение вершины, помеченной данной процедурой; (2) возможен прием сообщений, ведущих в эту вершину; (3) возможна отправка сообщений, исходящих из данной вершины.

Отправка исходящих сообщений выполняется, если одновременно процедура была запущена и вернула признак успешного завершения.

Правило передачи управления для процедур: передача управления по дуге с пометкой yes происходит, если процедура была запущена и вернула признак успешного завершения; иначе происходит передача управления по дуге с пометкой no.

Если нет исходящих из вершин дуг, по которым можно выполнить переход в текущей ситуа-

Call

s-" calT ^Чл-" ret

SO ) - С s2 \

Рис. 2. Протокол взаимодействия процессов в системе «разветвление-слияние»

ции, переменная состояния процесса принимает значение признака останова.

Рассмотрим примеры процессов, изображенных на рисунках 3 и 4. Вычисления начинаются с выполнения метода fork процесса Parent. Он формирует и отправляет сообщения call дочерним процессам по портам pi и p2. Так как из вершины не исходят дуги с пометками yes или no, обработка заканчивается. Сообщения call попадают в связанные дочерние процессы Child через порт p. Запускается метод proc. Его параметрами являются поступившее сообщение call и формируемое для отправки сообщение ret. В случае неуспешного завершения метода proc отправка сообщения ret не производится, а запускается метод error. Иначе в родительский процесс отправляется сообщение ret. При поступлении сообщения на порт pi в процесс Parent управление немедленно передается в метод join. Альтернативную возможность передачи управления реализует порт p2. Здесь происходит проверка типа поступившего сообщения. Метод join родительского процесса Parent запускается, когда ответные сообщения ret придут от обоих дочерних процессов.

Применение и программная реализация. Описанный метод моделирования применяется для разработки параллельных алгоритмов численного моделирования [5], его программная реализация подробно рассмотрена в [6]. Представленные в работе диаграммы кодируются на языке разметки XML. Они преобразуются транслятором моделей с языка разметки в исполняемый код на языке С++. Для исполнения сгенерированных программ имеются модуль системы исполнения с отладочным последовательным кодом, модули многопоточного исполнения для API Win32 и API POSIX, примеры тестовых приложений и графический редактор для создания моделей. Транслятор моделей реализован на языке C/C++, исполь-

зует SAX-парсер Expat 2.0.1 для разбора XML-файлов. Система автоматизации параллельного программирования, основанная на представленном методе моделирования параллельных процессов, доступна для использования на сайте СГАУ по адресу: http://graphplus.ssau.ru.

Литература

1. Process Description Capture Method. URL: http://www.id-ef.com/IDEF3.htm (дата обращения: 30.05.2012).

2. Unified Modeling Language. URL: http://www.omg.org/ spec/UML/ (дата обращения: 30.05.2012).

3. The Ptolemy Project. URL: http://ptolemy.eecs.berke-ley.edu/ (дата обращения: 30.05.2012).

4. Шеер А.В. ARIS - моделирование бизнес-процессов. Издат. дом «Вильямс», 2000. 175 с.

5. Востокин С.В. Визуальное моделирование в разработке параллельных алгоритмов. Метод и программные средства. LAMBERT Academic Publishing, 2011. 304 c.

6. Востокин С.В. Система автоматизации параллельного программирования Graphplus templet / В сб.: Параллельные вычисления и задачи управления: тр. Пятой междунар. конф. М.: ИПУ РАН, 2010. С. 1143-1156. URL: http://paco.ipu.ru/pa-co2010.iso (дата обращения: 30.05.2012).

References

1. Process Description Capture Method, available at: www. idef.com/IDEF3.htm (accessed 30.05.2012).

2. Unified Modeling Language, available at: www.omg.org/ spec/UML/ (accessed 30.05.2012).

3. The Ptolemy Project, available at: ptolemy.eecs.berke-ley.edu/ (accessed 30.05.2012).

4. Scheer A.W., ARIS — modelirovanie biznes protsessov (ARIS - Business Process Modeling), Moscow, 2000, 175 p.

5. Vostokin S.V., Vizualnoe modelirovanie v razrabotke pa-rallelnykh algoritmov. Metod i programmnye sredstva (Visual Simulation in Parallel Algorithm Development. Method and Software Tools), LAMBERT Academic Publishing, 2011, 304 p.

6. Vostokin S.V., Trudy pyatoy mezhdunarodnoy konferentsii «Parallelnye vychisleniya i zadachi upravleniya» (Proceedings of the Fifth International Conference «Parallel Computing and Management Problems»), Moscow, Institute of Control Sciences RAS, 2010, pp. 1143-1156, available at: www.paco.ipu.ru/paco2010.iso (accessed 30.05.2012).

УДК 519.685

ПРИМЕНЕНИЕ КОМПЛЕКСА ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ GRAPHPLUS TEMPLET

В МОДЕЛИРОВАНИИ

С.В. Востокин, д.т.н.; В.Г. Литвинов; А.Р. Хайрутдинов

Представлена программная реализация инструментария параллельного программирования Graphplus templet, автоматизирующего разработку параллельных программ для многопроцессорных рабочих станций и суперкомпьютеров. Данная разработка ведется с 2004 года на кафедре информационных систем и технологий Самарского государственного аэрокосмического университета в рамках исследовательского проекта «Граф Плюс» (graphplus.ssau.ru). В статье развивается подход, позволяющий расширить и упростить применение высокопроизводительной вычисли-