ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Journal influence

Higher Attestation Commission (VAK) - К1 quartile
Russian Science Citation Index (RSCI)

Bookmark

Next issue

4
Publication date:
09 December 2024

Templet – method of process oriented simulation of parallelism

The article was published in issue no. № 3, 2012 [ pp. 11-14 ]
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.
Аннотация:Представлена новая методология моделирования параллельных процессов TEMPLET, разрабатываемая автором на кафедре информационных систем и технологий Самарского государственного аэрокосмического университета. Рассмотрена усовершенствованная версия нотации, позволяющая: описывать протоколы взаимодействия процессов в виде последовательности передаваемых сообщений; представлять логику работы процессов посредством процедур, обрабатывающих сообщения; визуализировать процессы и их взаимодействие при помощи аннотированных графов. Метод моделирования предназначен для описания систем с внутренним параллелизмом на основе процессного под-хода. Особое внимание уделяется следующим аспектам методологии: способ декомпозиции процессов на процедуры обработки сообщений, описание протоколов взаимодействия процессов в виде конечных автоматов, графическая но-тация для визуализации модели процессов, подробное описание правил для передачи динамики модели. В качестве иллюстрации приведен пример простейшей системы процессов типа «разветвление–слияние». Рассмотрены цели проектирования. Показана диаграмма верхнего уровня, описывающая композицию процессов и используемые в ней пиктографические элементы. Дается анализ примеров для объектов, составляющих диаграмму композиции процессов. Рассматриваются диаграммы коммуникационных объектов – каналы, диаграммы объектов, обрабатывающих сообщения, процессы. Кратко описаны программные средства поддержки методологии моделирования TEMPLET, дается ссылка на источники с примерами ее применения. Также предлагается ссылка на сайт исследовательского проекта, посвященного данной методологии, где размещены программные средства ее поддержки.
Authors: ( easts@mail.ru) - , Ph.D
Keywords: computer-aided design, graphical notation, render, modeling, protocol, channel, message, process
Page views: 15967
Print version
Full issue in PDF (7.64Mb)
Download the cover in PDF (1.33Мб)

Font size:       Font:

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

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

Пометки графа на рисунке 1 обозначают: p:Parent – процесс p типа Parent; p1->p:Call – клиентский порт p1 (процесса p), связанный с серверным портом p (процесса c1) каналом, имеющим тип Call; точка на дуге указывает положение серверного порта.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рассмотрим примеры процессов, изображенных на рисунках 3 и 4. Вычисления начинаются с выполнения метода fork процесса Parent. Он формирует и отправляет сообщения call дочерним процессам по портам p1 и p2. Так как из вершины не исходят дуги с пометками yes или no, обработка заканчивается. Сообщения call попадают в связанные дочерние процессы Child через порт p. Запускается метод proc. Его параметрами являются поступившее сообщение call и формируемое для отправки сообщение ret. В случае неуспешного завершения метода proc отправка сообщения ret не производится, а запускается метод error. Иначе в родительский процесс отправляется сообщение ret. При поступлении сообщения на порт p1 в процесс 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).


Permanent link:
http://swsys.ru/index.php?page=article&id=3202&lang=&lang=en&like=1
Print version
Full issue in PDF (7.64Mb)
Download the cover in PDF (1.33Мб)
The article was published in issue no. № 3, 2012 [ pp. 11-14 ]

Perhaps, you might be interested in the following articles of similar topics: