Научная статья на тему 'Методика декомпозиции информационного графа программы для организации параллельной обработки данных на ЭВМ МКОД'

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

CC BY
448
57
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МКОД-СИСТЕМА / ПРОЦЕССОР ОБРАБОТКИ СТРУКТУР / STRUCTURE HANDLING PROCESSOR / ИНФОРМАЦИОННЫЙ ГРАФ АЛГОРИТМА / ALGORITHM GRAPH / ДЕКОМПОЗИЦИЯ ГРАФА / GRAPH DECOMPOSITION / MULTIPLE INSTRUCTION STREAM SINGLE DATA STREAM COMPUTER SYSTEM(MISD-SYSTEM)

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

В МГТУ им. Н.Э. Баумана разрабатывается принципиально новая вычислительная система со многими потоками команд и одним потоком данных (МКОД), в составе которой имеются аппаратные средства для ускорения алгоритмов дискретной оптимизации. В ходе проведенных исследований полученной системы стало очевидно, что для ее эффективного внедрения необходимо модифицировать существующие алгоритмы и адаптировать их под архитектурные особенности МКОД-системы. Однако модификация каждого последовательного алгоритма к требуемому параллельному виду является трудоемким процессом. Поэтому актуальна разработка формальных подходов для автоматизированного преобразования алгоритмов. Предложен способ представления алгоритма МКОД в виде графовой модели, показано решение задачи декомпозиции информационного графа последовательной программы на графы арифметико-логической обработки и обработки структур данных, приведен пример представления информационного графа алгоритма на языке R

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Подольский В.Э., Попов А.Ю.

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

GRAPH DECOMPOSITION FOR PARALLEL DATA PROCESSING ON MISD COMPUTER

A conceptually new computing system dealing with multiple instruction stream and single data stream (MISD) is being developed at Bauman Moscow State Technical University. The system contains the hardware to accelerate discrete optimization algorithms. The MISD studies resulted in the conclusion that its effective implementation demands to modify the occurring algorithms and adapt them to thearchitectural MISD features. However, modification of each sequential algorithm to a required parallel representation is a time-consuming process. So, the development of formal approaches for the automated algorithm transformation is urgent. In the paper the way of MISD algorithm representation as a graph model is proposed.Also, the task of graph decomposition of a sequential program into arithmetic-logic processing graphs and data structure processing graphs has been solved. The representation of the algorithm graph in the R programming language is given

Текст научной работы на тему «Методика декомпозиции информационного графа программы для организации параллельной обработки данных на ЭВМ МКОД»

МАТЕМАТИЧЕСКОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВЫЧИСЛИТЕЛЬНЫХ МАШИН, КОМПЛЕКСОВ И КОМПЬЮТЕРНЫХ СЕТЕЙ

DOI: 10.18698/0236-3933-2016-1-112-128 УДК 004.2:004.31

МЕТОДИКА ДЕКОМПОЗИЦИИ ИНФОРМАЦИОННОГО ГРАФА ПРОГРАММЫ ДЛЯ ОРГАНИЗАЦИИ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ НА ЭВМ МКОД

В.Э. Подольский12, А.Ю. Попов1

1МГТУ им. Н.Э. Баумана, Москва, Российская Федерация e-mail: alexpopov@bmstu.ru

2ИБС Софт, Москва, Российская Федерация e-mail: v.e.podolskiy@gmail.com

В МГТУ им. Н.Э. Баумана разрабатывается принципиально новая вычислительная система со многими потоками команд и одним потоком данных (МКОД), в составе которой имеются аппаратные средства для ускорения алгоритмов дискретной оптимизации. В ходе проведенных исследований полученной системы стало очевидно, что для ее эффективного внедрения необходимо модифицировать существующие алгоритмы и адаптировать их под архитектурные особенности МКОД-системы. Однако модификация каждого последовательного алгоритма к требуемому параллельному виду является трудоемким процессом. Поэтому актуальна разработка формальных подходов для автоматизированного преобразования алгоритмов. Предложен способ представления алгоритма МКОД в виде графовой модели, показано решение задачи декомпозиции информационного графа последовательной программы на графы арифметико-логической обработки и обработки структур данных, приведен пример представления информационного графа алгоритма на языке R.

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

GRAPH DECOMPOSITION FOR PARALLEL DATA PROCESSING ON MISD COMPUTER

V.E. Podolsky12, A.Yu. Popov1

1Bauman Moscow State Technical University, Moscow, Russian Federation e-mail: alexpopov@bmstu.ru

2IBS Soft, Moscow, Russian Federation e-mail: v.e.podolskiy@gmail.com

A conceptually new computing system dealing with multiple instruction stream and single data stream (MISD) is being developed at Bauman Moscow State Technical University. The system contains the hardware to accelerate discrete optimization algorithms. The MISD studies resulted in the conclusion that its effective implementation demands to modify the occurring algorithms and adapt them to the

architectural MISD features. However, modification of each sequential algorithm to a required parallel representation is a time-consuming process. So, the development of formal approaches for the automated algorithm transformation is urgent. In the paper the way of MISD algorithm representation as a graph model is proposed. Also, the task ofgraph decomposition of a sequential program into arithmetic-logic processing graphs and data structure processing graphs has been solved. The representation of the algorithm graph in the R programming language is given.

Keywords: multiple instruction stream single data stream computer system (MISD-system), structure handling processor, algorithm graph, graph decomposition.

Введение. Американский ученый М. Флинн в 1966 г. предложил классификацию архитектур ЭВМ по признакам наличия параллелизма в потоках команд и данных: с одним потоком команд и одним потоком данных (ОКОД); с одним потоком команд и многими потоками данных (ОКМД); со многими потоками команд и одним потоком данных (МКОД); со многими потоками команд и многими потоками данных (МКМД). Для трех классов (ОКОД, ОКМД, МКМД) создано немало действующих образцов ЭВМ и систем. Долгое время класс ЭВМ МКОД не был представлен ни одной ЭВМ [1]. Только в 2008 г. была запатентована первая в своем роде архитектура ЭВМ класса МКОД [2]. В настоящее время ЭВМ МКОД разрабатывается в МГТУ им. Н.Э. Баумана.

Принципы обработки одного потока данных различными потоками команд в предложенной архитектуре ЭВМ МКОД реализовыва-лись за счет наличия двух процессоров [3]: центрального процессора (ЦП), выполняющего арифметико-логические операции, и процессора обработки структур (СП), выполняющего операции над структурами данных. Вследствие дихотомической природы данных удалось реализовать параллельную обработку структурной и информационной составляющих данных на соответствующих процессорах. Архитектура предложенной системы представлена на рис. 1.

Ввиду аппаратной поддержки операций над структурами стало возможным описать обработку структурированных данных с помощью основных операций теории множеств. На аппаратном уровне СП поддерживаются следующие команды: AND (пересечение множеств); OR (объединение множеств); SEARCH (доступ к элементу множества); INSERT (добавление элемента множества); DELETE (удаление элемента множества); DELSTR (удаление структуры); MAX (поиск максимального элемента множества); MIN (поиск минимального элемента множества); POWER (определение числа элементов множества); команды получения срезов множества (меньше LS, меньше или равно LSEQ, больше GR, больше или равно GREQ); NOT (разность множеств); NEXT (переход к следующему элементу множества); JT (операция перехода по тегу).

Основная проблема архитектуры МКОД — необходимость адаптации существующих последовательных и параллельных алгоритмов с

Рис. 1. Архитектура ЭВМ МКОД

учетом разделения потока команд на поток команд обработки структур и поток команд обработки информационной составляющей данных. Одним из ключевых факторов, сдерживающих развитие архитектуры, как было определено при ручной адаптации алгоритмов Дейкстры [4], Форда-Фалкерсона [5], Беллмана-Форда и Ли [6], оказалась высокая трудоемкость модификации последовательных алгоритмов для параллельной обработки данных на ЭВМ МКОД. Поэтому в работе [6] было предложено использовать аппарат теории графов для разработки алгоритмов автоматической подготовки программ к выполнению на ЭВМ МКОД. В настоящей работе предложен базовый алгоритм автоматической подготовки программ к выполнению на ЭВМ МКОД, а также приведены примеры кода, реализующего предложенный алгоритм. Впервые проведена формализация задачи разделения кода последовательной программы на две части, которые могут быть параллельно обработаны ЭВМ МКОД, предложена методика, осуществляющая разделение представления кода последовательной программы в виде двух графов, соответствующих последовательности команд обработки данных на ЦП ЭВМ МКОД и последовательности команд обработки структур данных на СП ЭВМ МКОД.

Формальная постановка задачи декомпозиции информационного графа программы. Любая последовательная программа (последовательный алгоритм) может быть представлена с помощью особой интегральной модели, объединяющей взвешенный двудольный ориентированный граф Со д. и управляющий граф [7-9]. Каждая инструкция и каждая единица данных представлены в графе отдельной вершиной, причем вершины инструкций связаны непосредственно, тогда как вершины данных связаны опосредованно, через вершины инструкций.

Интегральная модель формально определяется следующим образом:

в,А ({X, У} , ^Х, ^Х, ^Х, ^2-1Х, У, ^У) = ву и во.д,

где X = {х\, х2,..., хп} — множество вершин графа вА, соответствующих инструкциям программы; У = {уь у2,..., у3} — множество вершин графа вА, соответствующих элементам данных, XПУ = 0; — множество вершин-образов вершин потока управления, С Х;

Х — множество вершин-прообразов вершин потока управления,

Х С Х; ^2Х — множество вершин-образов вершин потока управления во множестве вершин, соответствующих обрабатываемым данным, ^2Х С У; ^2-1Х — множество вершин-прообразов вершин потока управления во множестве вершин, соответствующих обрабатываемым данным, ^2-1Х С У; ^3У — множество вершин-образов вершин данных во множестве вершин потока управления, ^3У С Х; ^3-1У — множество вершин-прообразов вершин данных во множестве вершин потока управления, т.е. У С Х.

Пример информационного графа, построенного в соответствии с описанной моделью, приведен на рис. 2. Поскольку интегральная модель алгоритма не делает различий между примитивными типами данных и структурами, необходимо ее детализировать для применения к решению задачи преобразования последовательных программ в вид, обрабатываемый ЭВМ МКОД.

Обозначим множество всех инструкций (операторов) исходной последовательной программы (алгоритма) О, множество данных, принадлежащих области определения Д. При этом примем, что О = О* и О**, О* П О** = 0, где О* — множество операторов обработки данных; О** — множество операторов вычисления условий.

Детализируем множество операторов обработки данных

О* = О*3 и О*, (1)

где О£ — множество операторов обработки структур данных; О* — множество операторов обработки данных примитивных типов, в том числе отдельных элементов структур. Подобная детализация (1) позволяет разделить все операторы на две пересекающиеся категории:

1) операторы, которые возможно выполнить в СП (ОСП = О^ );

2) операторы, которые возможно выполнить в ЦП (ОцП = О*иО^ = = О*).

Одна из особенностей функционирования ЭВМ МКОД — действия исходного алгоритма могут выполняться как в ЦП, так и в СП, т.е. отсутствует строгая определенность при назначении обрабатывающего процессора. Центральный процессор представляет собой универсальное устройство, способное выполнить любое действие (возможно, за большее время), в то время как СП может выполнять только перечи-

сленные ранее команды обработки структур (возможно, за меньшее время). Поэтому, ОСП С ОцП.

Основная цель проекта ЭВМ МКОД — разработка аппаратных механизмов, повышающих эффективность вычислительной системы в целом при обработке структур данных, множеств, графов. Полагая такой результат возможным, примем, что СП затрачивает на обработку действий меньше ресурсов (времени, рассеиваемой мощности, удельной стоимости) по сравнению с ЦП. Тогда можно выделить ключевую задачу подготовки программы для ЭВМ МКОД как задачу минимизации мощности множества операторов, которые действительно выполняются в ЦП, за счет выполнения как можно большего числа операторов в СП. Обозначим множество возможных значений операторов обработки структур Одвозм (его компоненты — базовые операции теории множеств, приведенные выше).

Для формализации задачи декомпозиции информационного графа алгоритма введем несколько дополнительных обозначений: ОЦП™, ОСПиств — множества операторов, которые действительно выполняются ЦП и СП после осуществления декомпозиции; О^ = О^ и О^ — множество операторов обмена данными между ЦП и СП (О^ — множество операторов пересылки данных; О^ — множество операторов получения данных). Следует отметить, что О^ П О = 0, поэтому введем понятие полного множества операторов ЭВМ МКОД: ОМКод = О и О0.

Аналогично выделим виды обрабатываемых программой данных. Множество обрабатываемых данных Д представлено подмножествами структур данных (Дд С Д) и данных примитивного типа (ДР С Д). Таким образом, получим Д = Д^ и ДР. Поскольку структуры данных состоят из элементов данных (примитивного типа) и отношений между ними, каждая структура данных может быть представлена в виде ^ = (ДЕ¿,Я^), где ДЕ^ — множество элементов данных примитивного типа г'-й структуры данных; Я^ — множество отношений между отдельными элементами ДЕ^ г'-й структуры данных, <Щ € Д?, ДЕг € ДР.

Опишем детализированную модель в терминах теории графов для получения формализованного представления результата декомпозиции информационного графа программы. Введем дополнительные обозначения: — множество вершин обработки структур данных, ОСпств о Х^, Х^ С Х; Х/ — множество вершин обработки данных примитивных типов, О* о Х/, Х/ С Х; Хс — множество вершин вычисления условий, О** о Хс, Хс С Х; ХМКОд — полное множество вершин информационного графа программы для ЭВМ МКОД, представляющее собой отображение О и О^ о ХМКОд, Х С ХМКОд; Х^ — множество операторов обмена данными между ЦП и СП, О^ о Х0, Х^ С ХМКОд; — множество вершин обработки элементов дан-

ных, данных примитивных типов и вычисления условий, а также

передачи данных ЦП СП, Х/с0 = Х/ и Хс и Х^; Х^ — множество вершин обработки структур данных, а также передачи данных ЦП СП, Х^ = Х^ и Х^; У^ — множество вершин структур данных, о У?, У? С У; Ур — множество вершин данных примитивного типа Др о УР, УР С У.

Для полного формального описания декомпозированного информационного графа программы также должны быть формально определены отношения между элементами множеств вершин: — множество вершин-образов вершин потока управления в ЦП, К\Х/С0 С ; 0 — множество вершин-прообразов

вершин потока управления в ЦП, 1Х/Со С Х/с^Х^ — множество вершин-образов вершин потока управления в СП, ^Х^ С Х^; — множество вершин-прообразов вершин

потока управления в СП, К-^Х^ С Х^; — множество

вершин-образов вершин потока управления во множестве вершин, соответствующих обрабатываемым в ЦП данным, С Ур (если

о у1 € УР является результатом работы инструкции х1 € то ^2ж1 = у1); КТ1Х/С^ — множество вершин-прообразов вершин потока управления во множестве вершин, соответствующих обрабатываемым в ЦП данным, К—1 С Ур (если о у1 € Ур является исходным данным для инструкции х1 € то К2~1ж1 = у1);

— множество вершин-образов вершин потока управления во множестве вершин, соответствующих обрабатываемым в СП данным, С У? (если о у1 € У? является результатом работы инструкции х1 € Х^, то К2х1 = у1); К—^Х^ — множество вершин-прообразов вершин потока управления во множестве вершин, соответствующих обрабатываемым СП данным, С У? (если о у1 € У? является исходным данным для инструкции х1 € Х^, то К2~1ж1 = у1); К3УР — множество вершин-образов вершин данных, обрабатываемых в ЦП, во множестве вершин потока управления, выполняемого ЦП, К3УР С (если о у1 € Ур является исходным данным для инструкции х1 € то К3у1 = х1; К3-1УР — множество вершин-прообразов вершин данных, обрабатываемых в ЦП, во множестве вершин потока управления, выполняемого ЦП, К3-1УР С Х/с0 (если о у1 € Ур является результатом обработки для инструкции х1 € , то К—1 у1 = х1); К3У^ — множество вершин-образов вершин данных, обрабатываемых в СП, во множестве вершин потока управления, выполняемого СП, С Х^ (если о у1 € У? является исходным данным для инструкции х1 € Х^, то К3у1 = х1); К—1 У^ — множество вершин-прообразов вершин данных, обрабатываемых в СП, во множестве вершин потока управления, выполняемого СП, К—1У5' С Х^ (если о у1 € У? является результатом обработки для инструкции х1 € Х^, то К3-1у1 = х1).

В результате декомпозированный информационный граф программы представляет собой систему из двух графов

gai ({x icо 5 yp } 5 f1xicо 5 f1 xicо 5

Dec (Ga ) = <

f2xicо5 f2 1xicо ,f3 yp,f3 1 yp) i

gas ({xsо5 ys } 5 f1xsо5 f1 1xsf2x

(2)

2 xso5

FT1 Xsо 5F3 Ys 5F3-1 Ys) .

Здесь Gai — информационный граф алгоритма арифметико-логической обработки данных примитивного типа; GAS — информационный граф алгоритма обработки структур данных.

Декомпозиция информационного графа программы, представленного на рис. 2, в соответствии с введенными выше понятиями приведена на рис. 3.

Для получения декомпозированного информационного графа программы Dec (Ga), соответствующего программе для ЭВМ МКОД, необходимо определить методику преобразования графа GA в пару графов (Gas 5 Gai ). Таким образом, ключевая задача заключается в поиске

некоторого преобразования или совокупности преобразований Par вида

Par : Ga ^ (Gas5 Gai). (3)

Преобразование (или совокупность преобразований) графа Par (3) позволяет за конечное число шагов получить из информационного графа последовательного алгоритма Ga два графа GAS и GAI таких, что операторы в вершинах графа GAS будут выполняться в СП, а операторы в вершинах графа GAI — в ЦП.

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

Рис. 2. Пример информационного графа алгоритма:

® — терминальные блоки (х\ —

начало, хд — конец); © — обработка

данных; © — объединенный блок вычисления условий и ветвления;

© — ветвление потоков управления;

': — слияние потоков управления

Рис. 3. Декомпозиция информационного графа программы на граф алгоритма арифметико-логической обработки данных примитивного типа Gai (а) и информационный граф алгоритма обработки структур данных Gas

® — передача данных другому процессу; © — получение данных от другого

процесса; О — данные примитивного типа; © — структуры данных; © — тег

(примитивный тип); © — временные данные примитивного типа (СП)

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

Критерий 1. Вершина информационного графа алгоритма y G Y является отображением структуры данных di на множество вершин данных YS тогда и только тогда, когда di = (DEi , R), причем |DEi| > 1, |R| > 0, или более формально: y G YS : y ^ di, di = (DEi), |DEi| > 1, |R| > 0.

Критерий 2. Вершина информационного графа алгоритма xi G X принадлежит множеству вершин-операторов XS, отвечающих за обработку структур данных, тогда и только тогда, когда хотя бы одна из смежных ей вершин принадлежит множеству вершин YS, т.е. на вход оператора, соответствующего xi, должна подаваться хотя бы од-

на структура данных, или

ж» € Х : Зу^ ^ ^, ^Т^» = У. (4)

Не нарушая общности дальнейших выводов, предположим, что в примере графа, приведенного на рис.2, У^ = {уьу4}. Согласно (4), в критерии 2 получим Хй = {ж2,ж5, ж6}, поскольку К2-1ж2 =

= {У1,У2} ,У1 € ; = {Уз,У4} ,У4 € ; Я-^б = {У4} ,У4 € .

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

Последовательность действий в рамках методики декомпозиции информационного графа программы для ЭВМ МКОД представлена ниже.

Декомпозиция информационного графа программы для ЭВМ МКОД. Рассмотрим два этапа декомпозиции: подготовительный этап; этапы преобразования графов и С^.

Подготовительный этап. Шаг 1. Для декомпозиции осуществляется дублирование исходного информационного графа программы: ^ С2 ^ Са. Впоследствии в ходе выполнения преобразования граф будет приведен к виду , а граф — к виду

Преобразования графа Од. Шаг 2. Пусть определено подмножество У^ С У вершин-структур данных. Тогда для графа подмножество вершин-операторов обработки структур данных есть Х^ = {ж»}, г = 1 : Х|:^-1хг = У', У' С У^. _

Шаг 3. Для каждой вершины ж» € Х^, если у € К- и у- € У, Х ^ Х и {ж^}, Е1жг-1 ^ К\жг-1 и {ж^}, ^ и {ж^} и

К-1 ж^ ^ у-. В этом действии осуществляется вставка в граф вершины-оператора передачи данных примитивного типа СП.

Шаг 4. Для каждой вершины ж» € Хй, если у € К2ж^ и у € У\У^, Х ^ Х и {ж^}, К\жг ^ К\жг и {ж^}, К1-1жг+1 ^ К1-1жг+1 и {ж^} и К2ж^ ^ у-. В этом действии выполняется вставка в граф вершины-оператора получения результатов работы операторов в СП данных примитивного типа. Вершина получения данных ж^ от СП не может иметь дублей в графе в силу построения, поскольку такая вершина добавляется для каждой вершины ж» € Хй, записывающей некоторое новое значение в вершину у- € У.

Шаг 5. Для любого Vx^ G XC добавляем новую вершину данных примитивного типа, хранящую информацию о результате вычисления условия в вершине тега ж,: Y — Y U {ytg}, F2Xj = ytg. Добавляем в граф Ga^ вершины-операторы передачи информации о теге СП: X — X U {ж™а, ж^°жь}, Fix, — {ж"а, }, F-1xi+i = ж"а, F- 1 xk = жложь, где xk — вершина в множестве X, соответствующая оператору, который выполняется при ложности условия в вершине ж,, либо вершина слияния потоков управления.

Шаг 6. Осуществляется исключение дублирующих передач данных. Для любой пары вершин-операторов обработки структур ж, и Xj таких, что 3 yfe G Y : yfe G F- 1xi,yfe G F- 1Xj, yfe G Ys и между ними в графе X не присутствует других вершин-операторов обработки структур, использующих yk (xi+1,... ,Xj_1 G F3yk), проверяем наличие вершин, записывающих новое значение в вершину yk. Если таких вершин нет, то есть F3-1yk С {xi+1,.. .xj_1}, тогда передача данных СП для вершины Xj может быть исключена из графа G^ как дублирующая, следовательно, XX — Xдля ж^ : Xj G F1x^. Проводим "сшивание": F1xj_2 — F1xj_2 U {xj} , F1_1xj — F-1 Xj U {xj_2} .

Шаг 7. Из множества X удаляются все вершины-операторы обработки структур, т.е. X——X\XS, если ж, G XS, то F1xi_1^F1xi_1 U xi+1, Ff1 жт — F_ ^¿+1 U жг_1.

Шаг 8. Из множества Y удаляются все вершины, у которых одновременно отсутствуют инцидентные им дуги и дуги, которым они инцидентны, т.е. Y — Y\ {y,}: F3y, = 0, F_1 y = 0, i = 1 : |Y|.

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

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

Шаг 11. Полученный граф является графом арифметико-логической

обработки данных примитивных типов Gai — G^.

(2)

Преобразование графа G^. Шаг 12. Пусть определено подмножество YS С Y вершин-структур данных. Тогда для графа G^ получим подмножество вершин-операторов обработки структур данных

Xs = {ж,}, i = 1 : |Xs|: F2_ ^ = Y', Y' С Ys.

Шаг 13. Для каждой вершины ж, G XS, если yj G F^, yj G Y\YS и G F3yj, ж^ G XS, k > i, то X — X U {ж^}. При этом F^ — Fi ж, U {ж^}, F^^l — F_ ^¿+1 U {ж^} и F2_1 ж^ — yj. В этом действии осуществляется вставка в граф G^ вершины-оператора передачи данных примитивного типа ЦП. Вершины отправки данных

ж^ в ЦП не могут иметь дублей в графе в силу построения, поскольку такая вершина добавляется для каждой вершины ж» € Хй, записывающей некоторое новое значение в вершину у € У.

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

Шаг 14. Для каждой вершины ж» € Хй, если у € К^ж» , у^ € У\У? и З жк € , жк € Х^, к < г, то Х ^ Х и {ж^}. При этом

К1ж»-1 ^ К1ж»-1 и {ж^}, К1-1ж» ^ К1-1ж» и {ж^} и К2ж^ ^ у^, т.е. в данном действии происходит вставка в граф вершины-оператора получения данных примитивного типа от ЦП.

Шаг 15. У любой вершины Уж» € Хс, являющейся объединенным блоком вычисления условия и ветвления, заменяем вершину ветвления потоков управления, если ж» € Х?л, то ж» ^ жл.

Шаг 16. Для каждой вершины ветвления потоков управления ж» € Хл добавляем новую вершину-оператор получения данных от ЦП ж^: Х ^ Хи{ж^}, К1жг_1 ^ К1жг_1 и{ж^} , К-1жг ^ К-1жг и{ж^}. В граф добавляем вершину данных примитивного типа, хранящую информацию о результате вычисления условия ЦП в вершине тега ж» У ^ У и {у^}, К-1жг = у^.

Шаг 17. Проводится замена используемых вершинами-операторами обработки структур данных вершин-данных примитивных типов вершинами временных данных примитивного типа, т.е. Уу» € У? : ж^ € € К3у», ж^ € Хя заменяем вершину у» вершиной временных данных, сохраняя все дуги: у» ^ у?.

Шаг 18. Осуществляется исключение дублирующих передач данных СП. Для любой пары вершин-операторов обработки структур ж» и ж^, таких, что З у^ € У : у^ € К_1жг,у^ € , у*, € У? и между

ними в графе не присутствует других вершин-операторов обработки структур, использующих ук (т.е. ж»+1,... ж^-21 € К3ук), проверяем наличие вершин, записывающих новое значение в вершину ук. Если

таких вершин нет, т.е. К3-1ук С {ж»+1,... ж^-21}, то передача данных

(2)

СП для вершины ж^ может быть исключена из графа как дублирующаяся, следовательно, Х ^ Х\ж^ для ж^ : ж^ € К1ж^. Проводим "сшивание" К1ж^_2 ^ К1ж^_2 и {ж^} , К1_1ж^ ^ К1_1ж^ и {ж^_2} .

Шаг 19. Из множества Х удаляются все вершины-операторы, не являющиеся операторами обработки структур, передачи, а также терминальными или операторами ветвления, т.е. Х ^ Х\Хр, если ж» € Хр, то К\жг_1 ^ ^1жг_1 и жг+1 ,К1-1жг+1 ^ К1_1жг+1 и жг_1.

Шаг 20. Из множества У удаляются все вершины, у которых отсутствуют инцидентные им дуги и которые не инцидентны никаким дугам: У ^ У\ {у}: Ку = 0, К-1уг = 0, г = 1 : |У |.

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

Шаг 22. Выполняется перенумерация вершин в множестве Y по порядку, так что обозначение каждой вершины приобретает вид а само множество Y переходит в множество YS.

Шаг 23. Полученный граф является графом обработки структур данных: GAS ^ G^.

Среди характерных свойств полученных графов GAS и GAj можно выделить их структурное сходство с исходным информационным графом последовательного алгоритма, в том числе то, что они также представляют собой объединение графа и ориентированного двудольного графа. Более важное свойство — полное отсутствие у полученных графов общих дуг, что позволяет в дальнейшем восстановить по графам исходный код программы, которая может быть выполнена на ЭВМ МКОД: граф GAS соответствует программе, которая будет выполняться СП, а граф GAj — программе, которая будет выполняться ЦП. Несмотря на эту верхнеуровневую независимость, делающую возможной выполнение программы, описываемой графами, на ЭВМ МКОД между графами и программами для ЦП и СП имеются зависимости по данным, показанные наличием вершин передачи данных x^ и x^ в графах. Снижение числа вершин передачи данных может рассматриваться как один из критериев качества получаемого разбиения информационного графа последовательной программы на два графа.

Рассмотрим некоторые ключевые преимущества и недостатки проведенной декомпозиции информационного графа последовательной программы для ЭВМ МКОД (таблица).

Проведенная декомпозиция в полной мере позволяет решить задачу декомпозиции информационного графа последовательной программы для ЭВМ МКОД. Тем не менее декомпозиция обладает недостатками, устранение которых позволит получить более качественное разбиение информационного графа последовательного алгоритма. Возможности улучшения способов декомпозиции информационного графа будут рассмотрены в будущих работах.

Подход к программной реализации методики декомпозиции информационного графа программы для ЭВМ МКОД. Для программной реализации описанной методики декомпозиции информационного графа последовательной программы для ЭВМ МКОД было применено аналитическое описание графов и операций над ними. Основные типы графов и их компоненты, операции над ними на языке теории множеств, а также подходы к визуализации описаны в пакетах "graph" и "Rgraphviz" интерпретируемого языка программирования R, предназначенного для анализа массивов и структур данных [10, 11]. Методика декомпозиции была реализована на языке R и протестирована на примере графа, представленного на рис. 2. В результате тестирования получены части информационного графа алгоритма, показанные

Преимущества и недостатки декомпозиции информационного графа программы (алгоритма) для ЭВМ МКОД

Преимущество Недостаток Способ устранения недостатка

Возможность автоматического проведения декомпозиции информационного графа. Отсутствие единого критерия оценки качества полученного разбиения информационного графа программы. Использование различных критериев для оценки качества разбиения.

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

Использование минимального числа разновидностей и вспомогательных вершин в процессе декомпозиции. Не учитывается вариант частичного выполнения СП операторов обработки структур данных. Модификация и применение декомпозиции с переносом в граф Оаз различных наборов вершин обработки структур данных с последующим выбором наиболее оптимальной декомпозиции согласно некоторому критерию.

на рис. 4. Графы изоморфны соответствующим графам, приведенным на рис. 3 (пакет "Rgraphviz" накладывает определенные ограничения на визуализацию графов, поэтому получить визуально идентичные графы невозможно). Формальное доказательство изоморфизма будет проведено в будущих работах.

Для выполнения действий алгоритма на языке R над исходным графом были заданы следующие атрибуты вершин графов:

• GlobalType = {instruction, data} — тип вершины (оператор, данные);

• TypeOf Data = {simple, structure} — тип данных вершины, либо тип данных, обрабатываемых оператором в вершине (примитивный, структурный);

• TypeOf Node = {datanode, terminal, assignment, ComputeAnd Condition, mergepoint, splitpoint, send, receive, tag, TEMP} — тип вершины в графе (обычная вершина данных, терминальная вершина, вершина присваивания, вершина вычисления условия и ветвления, вершина слияния потоков управления, вершина ветвления, вершина передачи данных другому процессору, вершина получения данных от другого процессора, вершина тега, вершина временных данных примитивного типа).

"К£гарЬу1/" (светлые стрелки соответствуют потоку управления, прямоугольные вершины — данным; серым цветом окрашены вершины структур данных и вершины обработки структур данных)

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

Полученные в результате выполнения алгоритма графы на языке R представлены в аналитической форме как объекты класса GraphNEL. На основе этих описаний могут быть получены описания программ в исходном коде для ЦП и СП ЭВМ МКОД. Таким образом, приведенная в настоящей работе методика позволяет на высоком уровне абстракции организовать автоматическое распараллеливание последовательного алгоритма, представленного информационным графом, на две части, которые могут быть выполнены параллельно процессорами ЭВМ МКОД.

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

Несмотря на то, что методика позволяет получить части программы для ЦП и СП ЭВМ МКОД, за рамками рассмотрения остались многие детали: особенности распределения памяти, распараллеливание циклов, поиск оптимального числа передач данных ЦП- и СП-частям программы (и соответствующим графам) и т.д. Указанные проблемы планируется решать в будущих работах. Тем не менее разработанная методика является основой организации параллельной обработки данных для ЭВМ МКОД. Дальнейшее совершенствование методики и решение проблем связи с аппаратной частью позволит применять ЭВМ МКОД для решения полноценных прикладных задач.

ЛИТЕРАТУРА

1. Clements A. Principles of Computer Hardware. OUP Oxford, 2006. 672 p.

2. Попов А.Ю. Электронная вычислительная машина с многими потоками команд и одним потоком данных. Пат. № 71016. Российская Федерация. 2008. Бюл. № 5.

3. Попов А.Ю. Электронная вычислительная машина с аппаратной поддержкой операций над структурами данных // Аэрокосмические технологии. 2009. Т. 1. Тр. Второй Междунар. научно-техн. конф., посвященной 95-летию со дня рождения академика В.Н. Челомея. ВПК "НПО машиностроения". МГТУ им. Н.Э. Баумана. Москва, 2012. С. 296-301.

4. Попов А.Ю. Применение вычислительных систем с многими потоками команд и одним потоком данных для решения задач оптимизации // Инженерный журнал: наука и инновации. 2012. Вып. 1. URL: http://engjournal.ru/catalog/it/hidden/80.html

5. Попов А.Ю. О реализации алгоритма Форда-Фалкерсона в вычислительной системе с многими потоками команд и одним потоком данных // Наука и образование. МГТУ им. Н.Э. Баумана. Электрон. журн. 2014. № 9. С. 162-180. URL: http://technomag.bmstu.ru/doc/726416.html DOI: 10.7463/0914.0726416

6. Подольский В.Э. Об организации параллельной работы некоторых алгоритмов поиска кратчайшего пути на графе в вычислительной системе с многими потоками команд и одним потоком данных // Наука и образование. МГТУ им. Н.Э. Баумана. 2015. № 4. URL: http://technomag.bmstu.ru/doc/764268.html

7. Овчинников В.А. Графы в задачах анализа и синтеза структур сложных систем М.: Изд-во МГТУ им. Н.Э. Баумана, 2014. 423 с.

8. Овчинников В.А., Иванова Г.С. Методика формального синтеза комбинированных структур данных для представления графов // Инженерный журнал: наука и инновации. 2012. № 1. С. 135-145. URL: http://engjournal.ru/articles/79/79.pdf DOI: 10.18698/2308-6033-2012-1-79

9. Овчинников В.А., Иванова Г.С. Оптимизирующие преобразования алгоритмов, использующие свойства множеств, предикатов и операций над нами // Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2013. № 4. С. 53-66.

10. Gentleman R., Whalen E., Huber W., Falcon S. Graph: graph: A package to handle graph data structures. R package version 1.44.1. Technical document. May 2015. URL: http://www.bioconductor.org/packages/release/bioc/manuals/graph/man/ graph.pdf (дата обращения: 25.05.2015).

11. Hansen K.D., Gentry J., Long L., Gentleman R., Falcon S., Hahne F., Sarkar D. Rgraphviz: Provides plotting capabilities for R graph objects. R package version 2.10.0. Technical document. May 2015.

URL: http://master.bioconductor.org/packages/release/bioc/manuals/Rgraphviz/man/ Rgraphviz.pdf (дата обращения: 25.05.2015).

REFERENCES

[1] Clements A. Principles of Computer Hardware. OUP Oxford, 2006. 672 p.

[2] Popov A.Yu. Elektronnaya vychislitel'naya mashina s mnogimi potokami komand i odnim potokom dannykh [Computer with Multiple Instruction Streams and Single Data Stream]. Pat. no. 71016. Russian Federation, 2008. Bull. no. 5.

[3] Popov A.Yu. Computer with Hardware Support for Operations on Data Structures. Aerokosmicheskie tekhnologii, 2009. T. 1. Tr. Vtoroy Mezhdunar. nauch.-tekhn. konf., posvyashchennoy 95-letiyu so dnya rozhdeniya akademika V.N. Chelomeya. OAO "VPK "NPO mashinostroeniya" [Aerospace Technologies. Proceedings of the 2nd International scientific and technical conference dedicated to the 95th anniversary of the birth of academician V.N. Chelomey]. MIC "NPO Mashinostroyeniya". Vol. 1. 2009. Bauman MSTU. Moscow, 2012, pp. 296-301 (in Russ.).

[4] Popov A.Yu. Application of Computing Systems with Multiple Instruction Streams and Single Data Stream for Solving Optimization Problems Jelektr. nauchno-tekh. izd. "Inzhenernyy zhurnal: nauka i innovacii" [El. Sc.-Tech. Publ. "Eng. J.: Science and Innovation", 2012, iss. 1. Available at: http://engjournal.ru/catalog/it/hidden/80.html

[5] Popov A.Yu. On the Implementation of the Ford-Fulkerson Algorithm in the Multiple Instructions and Single Data Computer System. Nauka i obrazovanie. MGTU im. N.E. Baumana [Science & Education of the Bauman MSTU. Electronic Journal], 2014, no. 9. Available at: http://technomag.bmstu.ru/doc/726416.html

DOI: 10.7463/0914.0726416

[6] Podol'skii V.E. On the Organization of Parallel Operation of Some Algorithms for Finding the Shortest Path on a Graph on a Computer System with Multiple Instruction Stream and Single Data Stream. Nauka i obrazovanie. MGTU im. N.E. Baumana [Science & Education of the Bauman MSTU. Electronic Journal], 2015, no. 4. Available at: http://technomag.bmstu.ru/doc/764268.html

DOI: 10.7463/0415.0764268

[7] Ovchinnikov V.A. Grafy v zadachakh analiza i sinteza struktur slozhnykh system [Graphs in problems of analysis and synthesis of complex system structures]. Moscow, MGTU im. N.E. Baumana Publ., 2014. 423 p.

[8] Ovchinnikov V.A., Ivanova G.S. Method for Formal Synthesis of Combined Data Structures for Graph Representation. Jelektr. nauchno-tekh. izd. "Inzhenernyy zhurnal: nauka i innovacii" [El. Sc.-Tech. Publ. "Eng. J.: Science and Innovation", 2012, iss. 1. Available at: http://engjournal.ru/articles/79/79.pdf

DOI: 10.18698/2308-6033-2012-1-79

[9] Ovchinnikov V.A., Ivanova G.S. Optimizing Transformations of Algorithms using Properties of Sets, Predicates, and Operations over Them. Vestn. Mosk. Gos. Tekh. Univ. im. N.E. Baumana, Priborostr. [Herald of the Bauman Moscow State Tech. Univ., Instrum. Eng.], 2013, no. 4 (93), pp. 53-66 (in Russ.).

[10] Gentleman R., Whalen E., Huber W., Falcon S. Graph: graph: A package to handle graph data structures. R package version 1.44.1. Technical document. May 2015. Available at: http://www.bioconductor.org/packages/release/bioc/manuals/graph/man/graph.pdf (accessed 25.05.2015).

[11] Hansen K.D., Gentry J., Long L., Gentleman R., Falcon S., Hahne F., Sarkar D. Rgraphviz: Provides plotting capabilities for R graph objects. R package version 2.10.0. Technical document. May 2015. Available at: http://mas-ter.bioconductor.org/packages/release/bioc/manuals/Rgraphviz/man/Rgraphviz.pdf (accessed 25.05.2015).

Статья поступила в редакцию 17.07.2015 Подольский Владимир Эдуардович — аспирант кафедры "Компьютерные системы и сети" МГТУ им. Н.Э. Баумана, аналитик ИБС Софт, департамент по работе со сферой образования.

МГТУ им. Н.Э. Баумана, Российская Федерация, 105005, Москва, 2-я Бауманская ул., д. 5.

ИБС Софт, Российская Федерация, 127018, Москва, ул. Складочная, д. 3, стр. 1.

Podolsky V.E. — post-graduate student of Computer Systems and Networks department, Bauman Moscow State Technical University, Analyst at IBS Soft, Education Sector Department.

Bauman Moscow State Technical University, 2-ya Baumanskaya ul. 5, Moscow, 105005 Russian Federation.

IBS Soft, Skladochnaya ul. 3/1, Moscow, 127018 Russian Federation.

Попов Алексей Юрьевич — канд. техн. наук, доцент кафедры "Компьютерные системы и сети".

МГТУ им. Н.Э. Баумана, Российская Федерация, 105005, Москва, 2-я Бауманская ул., д. 5.

Popov A.Yu. — Cand. Sci. (Eng.), Assoc. Professor of Computer Systems and Network department, Bauman Moscow State Technical University.

Bauman Moscow State Technical University, 2-ya Baumanskaya ul. 5, Moscow, 105005 Russian Federation.

Просьба ссылаться на эту статью следующим образом:

Подольский В.Э., Попов А.Ю. Методика декомпозиции информационного графа программы для организации параллельной обработки данных на ЭВМ МКОД // Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2016. № 1. C. 112-128. DOI: 10.18698/0236-3933-2016-1-112-128 Please cite this article in English as:

Podolsky V.E., Popov A.Yu. Graph decomposition for parallel data processing on MISD computer. Vestn. Mosk. Gos. Tekh. Univ. im. N.E. Baumana, Priborostr. [Herald of the Bauman Moscow State Tech. Univ., Instrum. Eng.], 2016, no. 1, pp. 112-128. DOI: 10.18698/0236-3933-2016-1-112-128

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