Научная статья на тему 'Взаимодействие параллельных алгоритмов'

Взаимодействие параллельных алгоритмов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
156
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ALGORITHM / PARALLEL PROCESSING / ALGORITHMS / PARALLEL OPERATION OF OBJECTS POSLEDOVATELNOSTYU ALGORITHMS / PREDICATIVE UNIT / TIME AXIS / OF THE DUAL GRAPH / THE INTERACTION OF PARALLEL ALGORITHMS / GRAPH-SCHEME OF ALGORITHM / FUNCTIONAL-PREDICATE MODULE / АЛГОРИТМ / ПАРАЛЛЕЛЬНАЯ ОБРАБОТКА ДАННЫХ / АЛГОРИТМИЗАЦИЯ ПАРАЛЛЕЛЬНОЙ РАБОТЫ ОБЪЕКТОВ / ПОСЛЕДОВАТЕЛЬНОСТНЫЕ АЛГОРИТМЫ / ПРЕДИКАТИВНЫЙ БЛОК / ВРЕМЕННАЯ ОСЬ / ДУАЛЬНЫЙ ГРАФ / ВЗАИМОДЕЙСТВИЕ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ / ГРАФ-СХЕМА АЛГОРИТМА / ФУНКЦИОНАЛЬНО-ПРЕДИКАТНЫЙ МОДУЛЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Поляков В.С., Поляков С.В., Авдеюк О.А., Наумов В.Ю., Павлова Е.С.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The interaction of parallel algorithms

In the article, we considered the actual problem of constructing an algorithm based on the interaction of parallel components. The paper contains elements of the methodology developed by the authors for the parallel functioning of algorithms based on graph theory. It is shown that the construction of an algorithm with parallel functioning of components is impossible without taking into account the time, for which the concept of a time axis was introduced, and the sequential algorithm is represented in the form of a bipartite graph by its additional definition. The methods of parallel algorithms represented in the article, realized as dual graphs or matrix predicate form, make it possible to use them in describing complex control and measuring systems. It is concluded that the advantage of such a representation of the parallel functioning of algorithms lies in the fact that it becomes possible to work with parallel hierarchical structures, tracing the changes in each of them by means of input time axes.

Текст научной работы на тему «Взаимодействие параллельных алгоритмов»

Взаимодействие параллельных алгоритмов

В.С. Поляков, С.В.Поляков, О.А. Авдеюк, В.Ю. Наумов, Е. С. Павлова, Ю.П. Муха Волгоградский государственный технический университет

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

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

В настоящий момент известны четыре основных принципа регламентации событий, среди которых особо стоит выделить Принцип параллельной работы объектов (объектный принцип). Объектный принцип -

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

Взаимодействие параллельных алгоритмов является одним из самых сложных процессов при описании параллельного функционирования технических объектов. Часто за параллельный алгоритм принимается такой, «который может быть реализован по частям на множестве различных вычислительных устройств с последующим объединением полученных результатов и получением корректного результата» [1-5,10,11]. В этом случае распараллеливается вычислительный процесс. В данной работе задача ставится таким образом, чтобы было сразу видно, когда и в какой момент времени выполняются различные части общего алгоритма, как они взаимодействуют между собой.

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

Реальная временная ось - ось, измерения в которой ведутся непосредственно по времени. То есть каждому действию или операции соответствует какой-то момент времени, непосредственно в который операция имеет начало. Производится корректировка либо самой процедуры, либо времени, отведенном на ее выполнение. Ось удобна, когда дело ведется с системой, в которой время играет значимую роль.

Абстрактная временная ось - ось, измерения на которой ведутся событийно. То есть каждой процедуре предшествует событие, откликом на

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

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

Представление последовательностного алгоритма в виде двудольного графа путём его доопределения. Рассмотрим произвольную ГСА (рис. 1).

Здесь: А = { 'А'А'Аз'А' Ак} - вершины, определяющие выполнение отдель-ных операций, будем называть функциональными блоками;

{ 1 1 1 2 2 2 3 4 }

И » Ш » Цз»Ш»Ш > Цз » Ш»Ш /- вершины, определяющие логику (порядок) выполнения алгоритма, будем называть функциональными или логическими блоками.

Работа с алгоритмами, заданными в виде (рис. 2), осложняется следующими недостатками:

- переход от выполнения одной операции к выполнению другой в некоторых случаях ничем не обозначен, например, вершины А0 - А1, здесь подразумевается, что после выполнения операции А0 следует переход к выполнению операции А1, хотя такой переход ничем не фиксируется;

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

Рассмотрим связанную пару из функционального - Д (рис. 2а) и предикативного - Л (рис. 2 б) блоков:

Д - блок имеет один выход и может иметь несколько входов;

Рис. 1. Граф-схема алгоритма А

Л - блок имеет один вход и может иметь несколько выходов.

Связанную пару (рис. 2в) будем называть функционально-предикатным модулем - М (рис. 2г).

Для построения алгоритма в модульном виде проведём ряд предварительных операций. Зафиксируем окончание выполнения каждого функционального блока соответствующим предикативным блоком.

Рис. 2. Блоки алгоритмов: а) функциональный; б) предикативный; в) связанная пара; г) функционально-предикатный модуль

Если переход от выполнения одной операции к выполнению другой ведётся напрямую, иначе говоря, если между функциональными блоками отсутствует предикативный блок, то, введя предикативную вершину аЮ, можно представить модуль как на рис 3 а. А если после функционального блока существует один или несколько предикативных блоков, но отсутствует фиксация окончания работы функционального блока, то необходимо ввести дополнительно предикативную вершину аЮ. Объединим все предикативные вершины в один многозначный предикативный блок и получим модуль как на рис. 3б.

б)

Рис.3. Предикативный блок: а) представление модуля; б) получение модуля

Используя вышеприведённые принципы, «доопределим» функциональные блоки алгоритма, представленного на рис. 1. В результате

получим алгоритм (рис. 4а), дуальный граф которого представлен на рисунке 4б, а на рисунке 4в показано выполнение на оси времени 1

Рис. 4. Нормализованный алгоритм А: а) графическое представление; б) дуальный граф; в) выполнение во времени

Здесь:

А0, А1, . . ., Ак - операторы действия алгоритма А;

1А0, 1А1, . . ., 1Ак - время начала оператора действия алгоритма А;

1Л.01, 1;Л12, . . 1;Л4к - время функционирования оператора действия алгоритма А, причём 1;Л01 = 1;Л1 - 1;Л0, 1;Л12 = 1;Л2 - 1;Л1 и т.д.

Отметим также, что матрично-предикатное представление возможно двумя способами: функционально-предикативным и модульным [6-9].

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

Рис.5. Алгоритм В: а) графическое представление; б) дуальный граф; в)

выполнение во времени.

Матрично-предикатное представление алгоритма В можно представить, как и в предыдущем случае, двумя способами: функционально-предикативным и модульным. Возможные различные варианты параллельного взаимодействия, представлены на рисунке 6. Наиболее простым с алгоритмической точки зрения является параллельное взаимодействие двух равнозначных алгоритмов А и В. Стоит также заметить, что при параллельном взаимодействии алгоритмов важно определить какой алгоритм является основным, а какой - вспомогательным. Кроме того

необходимо чётко указать точки начала и окончания параллельного взаимодействия алгоритмов.

Рис. 6. Параллельное выполнение алгоритмов А и В во времени; а) начала выполнения алгоритмов А и В совпадают; б) окончания выполнения

алгоритмов А и В совпадают; в) начало и окончание выполнения алгоритмов А и В совпадают; г) начало и окончание выполнения алгоритма

В находится в зоне выполнения алгоритма А, а выполнение операций алгоритма В (кроме начала и конца) происходит от момента начала операции А2 до момента окончания операции А4 алгоритма А.

Таким образом, показанные в статье методы представления параллельных алгоритмов, реализованные в виде дуальных графов или матрично-предикатном виде, дают возможность использовать их при

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

Литература

1. Альфред В., Хопкрофт Д, Ульман Д. Структуры данных и алгоритмы. М. : Издательский дом "Вильяме", 2000. 384 с.

2. Астанин С.В., Драгныш Н.В., Жуковская Н.К. Вложенные метаграфы как модели сложных объектов // Инженерный вестник Дона, 2012, №4. URL: ivdon.ru/magazine/archive/n4p2y2012/1434.

3. Макконелл Дж. Основы современных алгоритмов. М: Техносфера, 2004. 368 с.

4. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. М.: Мир, 1981. 368 с.

5. Воеводин В.В., Воеводин В.Вл. Параллельные вычисления. СПб.:БХВ-Петербург,2002. 608 с.

6. Поляков В.С., Поляков С.В., Федченков П.В. Построение формального описания технологического процесса в матрично-предикатной форме // Известия ВолгГТУ. Серия "Прогрессивные технологии в машиностроении". Вып. 9 : межвуз. сб. науч. ст. Волгоград: ВолгГТУ, 2013. № 7 (110). C. 105-108.

7. Поляков В.С., Поляков С. В. Запись алгоритма матрицей инцидентора // Инновации на основе информационных и коммуникационных технологий. Инфо 2014: матер. XI междунар.научн.-практ. Конф.(г. Сочи, 110 окт. 2014) /Национальный исследовательский ун-т «Высшая школа экономики»[и др.]. М., 2014. С. 149-152.

8. Поляков В.С., Поляков С.В. Использование нагруженных матриц инцидентора (операторов) для моделирования сложных систем // Контроль. Диагностика. 2013. № 3. C. 57-62.

9. Поляков В.С., Поляков С.В., Нефедьев А.И. Математическая модель подвески подвижной части электроизмерительного прибора.// Инженерный вестник Дона. 2013. №3. URL: ivdon.ru/magazine/archive/n3y2013/1788.

10. Voevodin V.V. Information structure of sequential programs // Russ. J. of Num. An. and Math. Modelling. 1995. V.10. №3. pp. 279-286.

11. Voevodin V.V. Mathematical foundations of parallel computing. World Scientific Publishing Co., Series in computer science. 1992. V.33. 343 p.

References

1. Alfred V., Hopkroft D,, Ul'man D. Struktury dannyh i algoritmy[Data structures and algorithms]. M. : Izdatel'skij dom "Vil'yame", 2000. 384 p.

2. Astanin S.V., Dragnysh N.V., Zhukovskaja N.K. Inzenernyj vestnik Dona (Rus), 2012, №4. URL: ivdon.ru/magazine/archive/n4p2y2012/1434.

3. Makkonell Dzh. Osnovy sovremennyh algoritmov [Fundamentals of modern algorithms]. M: Tekhnosfera, 2004. 368 p.

4. Gudman S., Hidetniemi S. Vvedenie v razrabotku i analiz algoritmov [Introduction to the development and analysis of algorithms]. M.: Mir, 1981. 368 p.

5. Voevodin V.V., Voevodin V.Vl. Parallel'nye vychisleniya[Parallel computing]. SPb.:BHV-Peterburg, 2002. 608 p.

6. Polyakov V.S., Polyakov S.V., Fedchenkov P.V. Izvestiya VolgGTU. Seriya "Progressivnye tekhnologii v mashinostroenii". Vyp. 9 : mezhvuz. sb. nauch. st. Volgograd: VolgGTU, 2013, № 7 (110). C. 105-108.

7. Polyakov V.S., Polyakov S. V. Innovacii na osnove informacionnyh i kommunikacionnyh tekhnologij. (Prod. Info 2014: mater. XI mezhdunar.nauchn.-

prakt. Konf.(g. Sochi, 1-10 okt. 2014)). Moscow: Nacional'nyj issledovatel'skij un-t «Vysshaya shkola ehkonomiki, 2014. pp. 149-152.

8. Polyakov V.S., Polyakov S.V. Kontrol'. Diagnostika. 2013. № 3. pp. 57-62.

9. Poljakov V.S., Poljakov S.V., Nefed'ev A.I. Inzenernyj vestnik Dona (Rus), 2013. №3. URL: ivdon.ru/magazine/archive/n3y2013/1788.

10. Voevodin V.V. Russ. J. of Num. An. and Math. Modelling, 1995. V.10. №3. pp. 279-286.

11. Voevodin V.V. Mathematical foundations of parallel computing. World Scientific Publishing Co., Series in computer science, 1992. V.33. 343 p.

i Надоели баннеры? Вы всегда можете отключить рекламу.