ПРОГРАММНЫЕ И АППАРАТНЫЕ СРЕДСТВА
УДК 004.415.2.032.24
ФОРМАЛИЗМ ДЛЯ ОПИСАНИЯ ПРОГРАММНЫХ СИСТЕМ И ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ ЦИКЛИЧЕСКОЙ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ РЕАЛЬНОГО ВРЕМЕНИ1
И. В. Стручков,
аспирант В. М. Ицыксон,
канд. техн. наук
Санкт-Петербургский государственный политехнический университет
Рассматриваются вопросы формализованного описания программных систем и вычислительных процессов циклической параллельной обработки данных реального времени для специализированных информационно-вычислительных комплексов. Для указанного класса систем предлагается новый способ формализованного описания - граф генераторов и преобразователей данных, который может использоваться для выделения функциональных модулей-задач, имитационного моделирования, статического и динамического распределения задач по процессорам в многопроцессорной системе.
The article addresses a formal description of cyclic real-time parallel computational processes and corresponding software systems for specialized computing complexes. A new formal approach for describing the specified class of systems is introduced: the data generator-transformer graph. This graph can be utilized for the decomposition of task modules, simulation, static and dynamic task mapping in a multiprocessor system.
Задача параллельной обработки большого объема потоковой информации является типичной для многоканальных систем анализа сигналов о состоянии пространственно-распределенного объекта. Такого рода системы используются в различных прикладных областях, таких как гидроакустика, радиолокация и подобных им, где возникают следующие задачи: обнаружение и идентификация объектов, сопровождение обнаруженных объектов, прогнозирование местоположения и скорости движения объектов, классификация объектов, спектральный и корреляционный анализ сигналов. Для систем подобного класса характерны следующие особенности:
- данные от аналогового источника поступают в реальном времени с высокой частотой дискретизации (до сотен мегагерц);
- количество параллельных каналов ввода может составлять от нескольких сотен до нескольких тысяч;
1 Статья выполнена в рамках работы по гранту для поддержки научно-исследовательской работы аспирантов вузов Федерального агентства по образованию 2004 года № А04-3. 16-482.
- для данных, полученных от различных каналов ввода, предусмотрена одинаковая или однотипная математическая обработка;
- вычислительные процедуры обработки данных представляют собой последовательный многоэтапный процесс, допускающий конвейерную организацию вычислений;
- вычислительные процедуры обработки повторяются многократно для новых порций данных и, таким образом, являются циклическими процессами.
При этом разработчики математического и программного обеспечения должны учитывать следующие условия:
- ограниченность вычислительных ресурсов системы, часто связанную со специальными требованиями, предъявляемыми к используемым в составе аппаратуры компонентам;
- предопределенность архитектуры аппаратного обеспечения системы обработки, вызванную высокой стоимостью и большой длительностью процесса разработки аппаратуры;
- жесткие требования к временным характеристикам.
Совместный учет перечисленных особенностей и условий при разработке программного обеспечения требует специальной методики. При этом возможность применения стандартных технологий и средств разработки существенно ограничена.
Основным способом достижения требуемой производительности является параллельная организация вычислений, поэтому первостепенная задача - это эффективное распараллеливание вычислений. Она имеет два пути решения:
статическое распараллеливание - осуществляется на этапе проектирования либо сборки программной системы на основе анализа моделей вычислительных процессов и потоков данных;
динамическое распараллеливание - осуществляется в процессе функционирования программной системы с учетом фактических данных о загруженности процессоров и коммуникационных каналов.
При любом пути решения существенным оказывается учет особенностей системы и задачи обработки данных. Такой учет возможен при наличии формализованной модели вычислительного процесса, адекватно отражающей суть происходящих явлений.
Формализованное описание вычислительного процесса является важнейшей частью всего процесса разработки, и от качества выполнения данного этапа зависит качество системы в целом.
На различных этапах жизненного цикла программного обеспечения требуются различные типы формализованного описания:
наэтапе проектирования создаются структурные и поведенческие описания для выделения функциональных модулей-задач и определения информационных связей между ними;
на этапе разработки и компиляции формируются графы задач, потоков данных и соединений процессоров для статического распределения задач по имеющимся вычислительным ресурсам [1];
на этапе исполнения аналогичные графы используются для динамической балансировки нагрузки [2], автоматической диагностики и контроля работоспособности системы.
При исследовании многопроцессорного комплекса для обработки гидроакустических сигналов авторами была разработана теоретико-графовая модель параллельных вычислительных процессов -граф генераторов и преобразователей данных (ГГПД). Данная модель ориентирована на описание программ циклической параллельной обработки данных реального времени. Отличительной особенностью разработанной модели является возможность ее использования на всех трех перечисленных этапах жизненного цикла программного обеспечения.
При разработке модели ГГПД учитывалось, что важнейшей особенностью специализированных систем потоковой обработки информации является цикличность. Входные данные от внешних ис-
1 2 ЛГВ
м *
■ Рис. 1. Детерминированный всплесковой поток данных
точников поступают, как правило, регулярными порциями фиксированного размера. Асинхронными и непериодическими событиями в системе являются изменения режима работы или параметров системы. Для функционирования системы в реальном времени необходимо, чтобы обработка очередной порции данных полностью завершалась в течение периода поступления входных данных.
Анализ нескольких реальных систем обработки информации [3] показал, что потоки данных, создаваемые отдельными параллельными задачами, имеют всплесковый характер. Всплески состоят из одного или нескольких фрагментов данных, следующих непосредственно друг за другом (рис. 1). Периодичность всплесков задается детерминированной временной константой. Размер фрагмента данных фиксирован и задается коммуникационной подсистемой. Такие потоки далее будем называть детерминированными всплесковы-ми потоками.
Цикличность процессов в системе и всплеско-вый детерминированный характер потоков данных являются основой модели ГГПД. Граф ГПД содержит вершины трех типов: генераторы данных, преобразователи данных и терминаторы. Генератор автономно формирует всплески согласно заданной временной константе. Один генератор может создавать потоки одновременно для нескольких получателей. Генератор характеризуют следующие параметры: период всплесков (Тв); количество фрагментов во всплеске (^в); получатели данных.
Преобразователь данных, в отличие от генератора, активизируется не автономно, а после получения заданного количества входных данных. Преобразователь характеризуют следующие параметры: количество входных фрагментов для активизации (^); время обработки (^); получатели данных; для каждого получателя - количество фрагментов во всплеске (^); для каждого получателя - кратность, т. е. количество активизаций, после которого генерируется всплеск (М).
Терминатор является просто заглушкой, не имеет параметров и на графе обозначает конец вычислений.
Таким образом, каждая задача в рассматриваемых системах выполняется циклически с обновленными входными данными. Период цикла зада-
/ Gl \ / G2 \ / G3 \ / G4 \ / G5 \ / G6 \
■ Рис. 2. ГГПД для программы параллельной обработки гидроакустических сигналов
■ Рис. 3. Пример простого ГГПД
чи-генератора равен Tв. Период цикла задачи-преобразователя зависит от скорости поступления входных данных. Полному циклу соответствует M поступлений по Na фрагментов данных (активизаций), причем при каждой активизации затрачивается время на обработку Tо.
Граф генераторов и преобразователей данных позволяет описывать параллельные программы из класса циклических программ параллельной обработки данных с детерминированными всплеско-выми потоками данных. В частности, определенная комбинация генераторов и преобразователей на заданной топологии позволила адекватно моделировать реально исследованную задачу параллельной обработки гидроакустических сигналов [3]. Для исследованной параллельной программы ГГПД представлен на рис. 2 (задачи-генераторы обозначены Gi, задачи-преобразователи - Xjk, терминаторы - T). Формально, с каждой вершиной графа связаны соответствующие параметры (рис. 3). На рис. 2 данные параметры не показаны в целях наглядности.
Поскольку ГГПД отражает логическую структуру программного обеспечения, данное описание может создаваться уже на этапе проектирования. На этапе разработки и компиляции необходимо решить задачу оптимального статического распараллеливания. Возможны два пути применения ГГПД на этом этапе:
- преобразование ГГПД в иную модель, для которой существует методика статического распараллеливания;
- создание методики статического распараллеливания, использующей ГГПД непосредственно в качестве исходной информации.
Покажем возможность эквивалентного перехода от ГГПД к другим моделям описания параллельных процессов. За основу возьмем простой граф (см. рис. 3).
Наиболее распространенным способом формализованного описания параллельных процессов являются графы задач. В настоящее время предложено множество подходов к построению графов задач [4, 5], из которых в данной работе рассматриваются направленные ациклические графы (DAG), итеративные графы задач (ITG) и временные коммуникационные графы (TCG).
Рассмотрим переход от графа на рис. 3 к направленному ациклическому графу (DAG) на рис. 4.
Направленные ациклические графы являются наиболее простым и часто используемым в алгоритмах распределения нагрузки способом описания параллельных программ. В таком графе вершины представляют задачи, а ребра - передачу данных между задачами. При описании параллельных программ обычно используют взвешенные направленные ациклические графы. Веса, придаваемые вершинам, отражают вычислительную сложность данной задачи, а веса, придаваемые ребрам, - затраты на передачу данных между двумя данными задачами. Основным недостатком ациклических графов является невозможность адекватно описать итеративные вычисления. Вследствие этого с помощью ациклических графов обычно описывают только параллельные программы с крупным делением на задачи. В этом случае
<■1 - Т«
W1 = N,t
^2 - т „
W-2 = Ni т
^3 = 0
Wo = 0
Рис. 4. Эквивалентный направленный ациклический граф (т — время передачи одного фрагмента данных)
D - т.
сі = 0
W1“ NB і
С-2 = Т„
W-2 ~ Ni і
Сз = 0
п
Рис. 5. Эквивалентный итеративный граф задач
все итеративные вычисления считаются упрятанными внутри одной задачи (и, следовательно, являются последовательными). Другим решением является развертывание циклов в виде вложенных ациклических подграфов. Однако это допустимо только в том случае, когда число итераций известно на этапе компиляции, что случается достаточно редко.
На рис. 4 периоду генератора данных соответствует вершина графа с1, времени обработки данных преобразователем соответствует вершина c2. Отметим, что для описания кратности преобразователя данных M в DAG требуется дублирование пары вершин c1, c2. В нашем случае M = 2, при больших значениях M потребуется соответствующее число повторений вершин в DAG. Фиктивная передача данных с w0 = 0 необходима для обеспечения связности графа. Ациклическая природа графа DAG не позволяет адекватно описать бесконечный процесс, поэтому граф неограничен.
Преимуществом итеративного графа задач (ITG) является возможность компактного описания циклов, поэтому эквивалентный ITG является ограниченным. В итеративных графах задач ребру графа помимо затрат на передачу данных может присваиваться также дополнительное значение - задержка. При этом обязательно должно соблюдаться условие: в любом цикле должна находиться, по крайней мере, одна задержка. Ребра без задержек моделируют зависимости внутри одной итерации, связи с задержками - зависимости между итерациями. Тем не менее, описание кратности преобразователя данных также требует дублирования вершин. Период генератора в данном случае удобнее описать не весом вершины c1, а задержкой D, c1 при этом принимается равным нулю.
В результате получаем граф, представленный на рис. 5.
Временной коммуникационный граф (TCG) для рассматриваемого случая является неограниченным, как и DAG. Некоторым преимуществом данного описания (рис. 6) является явное выделение параллельных процессов (задач): p1 соответствует задаче-генератору,р2 - задаче-преобразовате-лю,р3 - задаче-заглушке.
Из рассмотренных примеров очевидно, что возможно построение формальных схем перехода от описания ГГПД к иным моделям графового представления параллельных вычислительных процессов. Большинство существующих алгоритмов статического и динамического распределения нагрузки в многопроцессорных системах [1, 2] базируются на рассмотренных стандартных графовых моделях описания вычислительных процессов в качестве исходной информации. Наличие формальных процедур преобразования описания ГГПД в одну из таких моделей позволит автоматически адаптировать имеющееся описание к стандартным средствам.
Имеющиеся подходы были разработаны для описания широкого класса параллельных программ и, как показано выше, не вполне эффективны для описания циклических многоэтапных процессов, подразумевающих однотипную математическую обработку. Предложенная модель ГГПД не только компактнее и нагляднее описывает процессы циклической параллельной обработки, но и может быть непосредственно использована в процессе разработки и оптимизации параллельных программ.
Имея описание вычислительного процесса в виде ГГПД, разработчик системы получает возмож-
с11= с12 = Т. w 1= NBx с 21= С-22 =Т0 Ч>2 = N'B т «31= о
■ Рис. 6. Эквивалентный временной коммуникационный граф
ность осуществить имитационное моделирование ее функционирования до написания какого-либо программного кода. Такое моделирование на этапе проектирования позволит избежать множества ошибок при разработке. В ходе исследования эффективности коммуникационных подсистем для многопроцессорного комплекса [3] были разработаны имитационные модели аппаратной архитектуры, коммуникационных подсистем и прикладных задач. Для имитационных экспериментов использовалась среда моделирования OMNet++. Имитационные модели параллельных задач базируются на введенных абстракциях генераторов и преобразователей данных, что позволяет использовать описание ГГПД в качестве исходных данных без предварительного преобразования.
Описание ГГПД также может являться входной информацией алгоритма распределения задач по процессорам. Распределение задач по процессорам сводится к решению следующей многокритериальной и, в общем случае, нелинейной задачи оптимизации:
min CF(M),
VM:S —M-^ H
где S - граф задач (в нашем случае, ГГПД); H -направленный граф соединений процессоров (вершинам соответствуют процессоры, дугам - межпроцессорные соединения); M принимает значение всех возможных отображений графа задач на граф соединений процессоров.
Для решения данной задачи применяются итеративные алгоритмы оптимизации. Общий вид целевой (минимизируемой) функции для итеративного алгоритма оптимизации можно представить в виде суммы трех компонент [1]:
CF(M, t) = F^M, t) + F^M, t) +
+^марш (M, ^ RA),
где М - отображение задач на процессоры; і - шаг алгоритма оптимизации; ЯА - функция маршрутизации сообщений и данных.
Покажем, как сформировать целевую функцию алгоритма оптимизации распределения задач на основе описания ГГПД.
Целевая функция вершин (-Рверш) соответствует затратам на вычисления в процессорах. Для каждой задачи-преобразователя определяется вычислительный вес:
C =——, i е X;
i N ■
’ аі
х, - ^; (*)
j T ■
с
T. =
Oj
MjToTask(■ , Task(j)<E X;
CTask( j)
TBj, Task(j)<E G,
где То - время обработки 1-й задачи-преобразователя; Ху - интенсивность у-го входящего потока; I -множество входящих потоков задачи; Nld - количество фрагментов для активизации 1-й задачи-преобразователя; X - множество задач-преобразователей; NBi - количество фрагментов во всплеске для у-го входящего потока; Тсу - период всплесков у-го входящего потока (как от генератора, так и от преобразователя); Му - кратность для у-го входящего потока; Таек(у) - индекс задачи, генерирующей входящий поток у; Ту - период всплесков для у-го входящего потока (только от генератора); в -множество задач-генераторов.
Значение целевой функции вершин рассчитывается, как суммарный дисбаланс нагрузок по всем процессорам:
N
^верш^ t) = «(t)ElCi _
C I
°ср I
i=1
где а(^) - нормировочный множитель, зависящий от шага алгоритма; N - число процессоров; оь - суммарный вычислительный вес всех задач, распределенных на данный процессор; сСр - средний суммарный вычислительный вес по всем процессорам.
Целевая функция дуг (^дуг) соответствует затратам на передачу данных:
рдуг =р(^ Е I, ¡еТ
где Р(£) - нормировочный множитель, зависящий от шага алгоритма; Т - множество всех задач; Ху -интенсивность потока данных от задачи I к задаче у из формулы (*); йу - расстояние от задачи I до задачи у в узлах, согласно таблице маршрутиза-
ции; ю - затраты на передачу единицы (фрагмента) данных между соседними узлами.
Затраты на маршрутизацию (Рмарш) учитывают загруженность коммуникационных каналов (линков). Загруженность 1-го линка определяется по формуле
ЛВ1 = ^ ХуюЯЛ(и у, I),
I, уеТ
где ЯЛ(Ь, у, г) - функция маршрутизации (ЯЛ = 1, если данные от задачи I до задачи у' проходят через линк I).
Целевая функция маршрутизации -Рмарш определяется, как суммарный дисбаланс загруженностей линков:
^марш(М, г, ЯЛ) = у(г)£|ЛБг -ЛБср |,
г=1
где у(г) - нормировочный множитель, зависящий от шага алгоритма; Ь - число линков; ЛОг - загруженность 1-го линка; АОср - среднее значение загруженности по всем линкам.
Выводы
В данной статье были рассмотрены способы формализованного описания параллельных программ для вычислительных систем с распределенной памятью и представлена новая модель графового описания параллельных программ - граф генераторов и преобразователей данных. ГГПД является расширением графа потоков данных и применим для описания параллельных программных систем и вычислительных процессов циклической обработки данных реального времени. Примером систем данного класса является программное обеспечение вычислительного комплекса многоканальной обработки гидроакустических сигналов.
В вычислительных процессах указанного класса потоки данных имеют периодический всплес-ковый характер. Параметры вершин в ГГПД основаны на данном представлении потоков данных. Анализ применения ГГПД для описания реальной параллельной программы и сравнение с другими моделями описания позволяют сделать следующие выводы.
1. Описание ГГПД является естественным и наглядным визуальным формализмом для разработчиков системы, так как каждой вершине графа соответствует вполне реальная программная сущность - задача.
2. Описание ГГПД является наиболее компактным для указанного класса задач, по сравнению с эквивалентными описаниями DAG, ITG и TCG, так как скрывает цикличность и кратность обработки данных в семантике вершин.
3. Можно предложить формальную схему перехода от ГГПД к любой из рассмотренных моделей, что позволит разработать автоматизированный программный инструмент для подобных преобразований.
4. Описание ГГПД может быть непосредственно использовано как входная информация для имитационного моделирования системы или алгоритма распределения задач.
Таким образом, модель ГГПД является новой и более эффективной формой описания параллельных программ и вычислительных процессов в классе циклических задач обработки данных реального времени. Модель ГГПД программы, благодаря своей наглядности, может быть построена разработчиком (системным архитектором) на этапе проектирования. В процессе разработки описание ГГПД может быть переведено в эквивалентное представление другого типа, что может оказаться необходимым условием для автоматического (автоматизированного) распределения задач по процессорам вычислительной системы.
Направлением дальнейшего развития предложенного подхода является исследование возможности применения модели ГГПД для статического и динамического распределения задач. В результате исследования должна быть предложена эффективная методика такого распределения и разработан прототип системы управления параллельными задачами на основе данной методики.
1. Hluchэ L., Dobrovodskэ M., Dobruckэ M. Static Mapping Methods for Processor Networks. http:// citeseer.ist.psu.edu/472693.html
2. Hu Y., Blake R. An optimal dynamic load balancing algorithm. Technical Report DL-P95 -011. Daresbury Laboratory. Warrington, UK, 1995. http:// citeseer.ist.psu.edu/hu95optimal.html
3. Стручков И. В., Ицыксон В. М., Мелехин В. Ф. Исследование эффективности коммуникационных систем для многопроцессорного комплекса с распределенной памятью // XXXII Неделя науки СПбГПУ: Материалы межвуз. науч. конф. / СПбГПУ. СПб., 2004. С. 87-89.
4. Lo Virginia M. Temporal Communication Graphs: Lamport’s Process-Time Graphs Augmented for the Purpose of Mapping and Scheduling // Journal of Parallel and Distributed Computing. 1992. N 16(4). December. ftp://ftp.cs.uoregon.edu/pub/lo/tcg.ps.Z
5. Sinnen O., Sousa L. A Platform Independent Parallelising Tool Based on Graph Theoretic Models // Lecture Notes in Computer Science. 2001. Vol. 1981. http://www.ece.auckland.ac.nz/~sinnen/articles/ Sinnen2001pip.ps