ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА
УДК 004.272.45
С. В. Волобуев, И. В. Зотов, В. Н. Николаев ПРОЦЕДУРА
РАСПРЕДЕЛЕННОЙ ПАРАЛЛЕЛЬНО-КОНВЕЙЕРНОЙ БАРЬЕРНОЙ СИНХРОНИЗАЦИИ, ИНВАРИАНТНАЯ К СПОСОБУ РАЗМЕЩЕНИЯ СИНХРОНИЗИРУЕМЫХ ПРОЦЕССОВ
Предложена процедура распределенной параллельно-конвейерной барьерной синхронизации для однородных многопроцессорных систем, инвариантная к способу размещения синхронизируемых процессов в системе и применимая к классу матричных топологических структур. Приведены результаты имитационного моделирования процедуры.
Ключевые слова: многопроцессорная система, матричная топология, межпроцессорное взаимодействие, координация параллельных процессов, барьерная синхронизация, имитационное моделирование, Q-схема.
Введение. Одним из факторов, сдерживающих рост производительности многопроцессорных вычислительных систем (МВС) широкого класса, является необходимость регулярной межпроцессорной барьерной синхронизации [1]. С целью снижения временных затрат на синхронизацию при выполнении задач в ряде современных МВС используются аппаратные решения, многие из которых имеют распределенный характер и позволяют реализовать оперативную параллельную синхронизацию для нескольких барьеров [2—6]. Однако известные варианты решения характеризуются невысокой гибкостью, которая, с одной стороны, проявляется в наличии ограничений на способ размещения в МВС синхронизируемых процессов [2, 4], а с другой — обусловлена привязкой к конкретной топологической структуре системы [3, 5, 6].
В [7] авторами была разработана процедура параллельно-конвейерной барьерной синхронизации с использованием распределенной координирующей среды, не накладывающая ограничений на способ размещения синхронизируемых процессов и ориентированная на МВС с двумерной матричной топологией. В настоящей работе описан расширенный вариант этой процедуры, применимый к более общему классу топологий МВС. Кроме того, анализируются результаты вычислительного эксперимента, проведенного с целью исследования ряда динамических характеристик разработанной процедуры синхронизации, на примере МВС с двумерной матричной топологией.
Топологическая модель МВС. Представим МВС в виде графа Н =< М,и >, множество вершин М которого соответствует множеству однотипных процессорных элементов (ПЭ) — модулей системы, а множество дуг и ^ М х М отражает связи между ПЭ. Зададим
для каждого ПЭ составной порядковый номер (хь Х2,.., х^ ), х = 1, N1, / = 1, ё, где ё — размер-
ность МВС (для топологии кольца ё = 1, для двумерной матричной топологии — ё = 2 и т.д.). Вершины графа Н сопоставим множеству ПЭ системы так, что
(тХ2,.., Хё ),т( +1, Х2,.., ха ))и, =1,(Л^-1), х{ =1,N, г = 1,ё; (т(х1, Х2,.., Хё ),т(х1, Х2 +1,.., ха Х2 = 1,(N2 -1), х =1,N, г = (1,3,..,ё);
(т(х1, х2,..,ха ),т(х1, х2,.., ха + 1)), ха = 1,(Ыа-1), х{ = 1,N, I = 1,(ё-1), ^
где т(х1,х2,...,х^) — ПЭ с порядковым номером (хьх2,...,х^). Систему, представленную
описанным способом, обозначим как N(Н).
При таком описании топологические структуры МВС с обратными связями (кольцо, тор, трехмерный тор и т.д.) и без них (разорванное кольцо, матрица, куб) идентичны и трансформируются в одну систему N(Н) . В отличие от систем без обратных связей, в топологических структурах с обратными связями начальный порядковый номер может быть присвоен любому ПЭ.
Процедура синхронизации. Для обеспечения барьерной синхронизации в МВС вводится обособленная однородная координирующая среда. Каждому ПЭ ставится в соответствие ячейка координирующей среды, соединенная, согласно топологии МВС, с соседними ячейками, что позволяет сохранить однородность системы и обеспечить ее масштабируемость. В процессе функционирования МВС каждому барьеру назначается одноразрядный слой координирующей среды для распространения признаков достижения барьера.
Определение 1. Будем считать, что ПЭ т'(х',х2,..,хё) имеет меньший порядковый номер, чем ПЭ т"( х", х2,.., х'ё ), если и только если
(Ух',х",г = : х" < х") л (Эх",х",г = : х'* х").
Определение 2. Соответственно будем считать, что ПЭ т'(х{,х2,..,хё) имеет больший порядковый номер, чем ПЭ т " (х{, х2,.., хё ), если и только если
(Ух",х",г = : х" > х") л (Эх",х",г = : х' * х").
На основании этих определений можно сформулировать правило формирования признака достижения барьера для каждой ячейки среды следующим образом: если соседние ПЭ с меньшим порядковым номером завершили свои параллельные ветви программы (или не участвуют в синхронизации для соответствующего барьера), и при этом текущий ПЭ также завершил свою ветвь (или не участвует в синхронизации), то на выходе ячейки устанавливается признак достижения барьера, затем с выхода текущей ячейки он передается ячейкам, подключенным к ПЭ с большими порядковыми номерами. Формирование признака достижения барьера на выходе ячейки с максимальным порядковым номером будет означать, что все процессоры достигли барьера. Далее признак достижения барьера распространяется в обратном направлении и запускает ожидающие процессоры.
Для уменьшения числа линий связи между ячейками слои в координирующей среде разбиты на группы. В общем случае п слоев разделены на р групп по т слоев в каждой. В один и тот же момент времени в г -й группе происходит формирование признака достижения барьера, а в (г +1) -й — распространение признака. Остальные группы в это время не активны. Переключение групп слоев происходит последовательно циклически через определенные интервалы времени.
Процедура распределенной параллельно-конвейерной барьерной синхронизации 31
Экспериментальное исследование процедуры синхронизации. Для исследования динамических характеристик разработанной процедуры, в частности среднего времени синхронизации ТСр, было проведено имитационное моделирование распределенной координирующей среды. При этом в качестве модели МВС была взята двумерная матричная топология. В ходе моделирования варьировались способы размещения множеств синхронизируемых J (vs) и ожидающих F (vs) ветвей (vs — один из барьеров) и определялись случайные значения времени завершения ветвей е J(vs ) . Здесь и далее используется терминология и математический аппарат, введенные в работе [7].
Вычислительный эксперимент был поставлен в графической системе моделирования Visual QChart Simulator [8]. Координирующая среда была представлена как сеть массового обслуживания, в которой объектами обслуживания являются признаки достижения барьера и иные координирующие сигналы.
Значение Тср определялось по формуле
Тср = t+ + At + t~,
где t + — интервал времени от момента завершения последней ветви из множества J (vr) до начала распространения сигнала достижения барьера через координирующую среду, At — время распространения сигнала достижения барьера, t- — интервал времени от момента получения процессором, выполняющим последнюю ветвь из множества F (vr), сигнала достижения барьера до момента активизации данной ветви. Поскольку величина интервала t + +1-не зависит от способа размещения ветвей на множестве модулей МВС и при n < 256 не превышает 16 задержек вентиля, в ходе моделирования оценивалась только величина At.
Условия проведения эксперимента были определены следующим образом. Количество множеств J (vs) и F (vs), а также их мощность устанавливались постоянными на время одного этапа моделирования.
Время выполнения ветвей Bt е J (vs ) u F (vs ) задавалось случайно в диапазоне (1—12) Tmax
(Tmax — максимальное время синхронизации). В случае, когда время моделирования превышало 5 часов, максимальное время выполнения ветвей снижалось до 6Tmax. Среднее значение
At определялось как среднее арифметическое не менее чем по 30 итерациям.
В ходе моделирования вся информация записывалась в текстовый файл. По окончании моделирования данный файл содержал следующие результаты: количество достигнутых барьеров, время синхронизации каждого барьера, среднее время синхронизации.
Модель координирующей среды. В ходе подготовки вычислительного эксперимента были построены Q-схемы, моделирующие работу сред размера N = 6,8,12,14,16,24,28. Q-схема одной ячейки среды представлена на рисунке.
Рассматриваемая схема состоит из следующих элементов.
Генераторы TopClockGen(i), RightClockGen(i), BottomClockGen(i), LeftClockGen(i) предназначены для формирования заявок, имитирующих сигналы синхронизации, которые распространяются от модулей, расположенных сверху, справа, снизу, слева от текущего модуля соответственно. Время генерации заявок постоянно и составляет один такт моделирования. Очереди TopClocklnQue(i), RightClocklnQue(i), BottomClocklnQue(i), LeftClocknQue(i) служат для хранения заявок, пришедших от модулей, расположенных сверху, справа, снизу, слева от текущего соответственно. Клапаны TopClocklnGt(i), RightClocklnGt(i), BottomClocklnGt(i), LeftClocklnGt(i) предназначены для разрешения/запрета прохождения заявок между соответствующими генератором и очередью. Клапаны TopClockOffGt(i), RightClockOffGt(i), Bottom-
С1оскОГГ01;(1), ЬейОоскОГГО^) предназначены для удаления из системы заявок, поступающих от соответствующих генераторов.
ТорОоеМпОг
ТорС1оскОеп ^ ТорОоскМ^ие
@ ТорС1о^КЖЙ ЯТИ —
КДОШ^Х ТорС1осЮ,йтОг
Т^ЮоскСеп Ш§ЫС1оск1п0ие /
ВоИотОоскСгеп /
Сообщение от верхнего модуля
Сообщение модулю снизу
Сообщение от правого модуля
Сообщение модулю слева
Сообщение от нижнего модуля
а \\\\ —^
\ \\\\ ¡1 7» Сообщение модулю
4 \\\\\ Во^С^скОшСт сверху
:..'Г:С1:<:к1пС,1
Сообщение от левого модуля
..¡^ Сообщение модулю
ЬеЙОоскОиКЙ справа
МС*^
Совокупность генератора *Оеп(1), клапанов *1п01;(1) и *ОГГ^(1) можно представить управляемым устройством, моделирующим поступление фиктивных сигналов синхронизации к модулям, расположенным по границам матричной структуры. Для модулей, расположенных в верхней строке, имитируется подача сигнала синхронизации сверху, в нижней строке — снизу, в правом и левом столбцах — соответственно справа и слева. Клапаны ТорС1оск-ОШ;01;(1), Ш§Ь1;С1оскОи101;(1), БойошС1оскОи101;(1), ЬейС1оскОШ;01;(1) предназначены для разрешения/запрета распространения заявок от текущего модуля к модулям, расположенным ниже, левее, выше и правее соответственно. Пара клапанов ТорС1оскОШ;01;(1), Ш§Ь1С1оск-Ои1^(1) открывается одновременно при условии, что очереди ТорС1оск1и0ие(1), Ш§Ь1С1оск-1^ие(1) заняты. Аналогично осуществляется взаимодействие клапанов БойошС1оскОШ;01;(1), ЬейС1оскОШ;01;(1) и очередей БойошС1оск1п0ие(1), ЬейС1оскп0ие(1). Контроллер МС(1) управляет открытием клапанов г -го модуля Q-схемы в зависимости от расположения модуля в системе и моментов прихода сигналов синхронизации от соседних модулей.
Результаты вычислительного эксперимента. Моделирование зависимости времени синхронизации At от количества одновременно достигнутых барьеров п проводилось при р = 2 и (у3 )| = |р(у3 )| = 5 . Результаты подтвердили отсутствие зависимости At от п, поэтому исследование остальных характеристик проводилось при фиксированном значении п .
Моделирование зависимости времени At от мощности множеств J(у3) и р(у3) (от размерности барьера) проводилось при п = р = 2 . В результате разница между максимальным и минимальным временем синхронизации для системы с N = 16 составила «22%, а для N = 24 — «34 % . Данные отклонения обусловлены зависимостью At от расположения последних ветвей множеств J ) и р ) в модулях МВС. Параметр At можно представить следующим образом:
At = At ' + At " + АТ,
где At ' — время распространения признака достижения барьера от модуля МВС, выполнившего последнюю ветвь множества J ), до (N, N) -го модуля; At " — время распространения
Процедура распределенной параллельно-конвейерной барьерной синхронизации 33
сигнала запуска от N -го модуля МВС, до модуля, выполняющего последнюю ветвь множества F ); А? — время до активизации слоя, отвечающего за синхронизацию барьера ^. При этом значение А7 случайно и в среднем равно
А 7 = ^
2
где ta — интервал времени активности одного слоя.
Зависимость At от расположения ветвей множества J (vs) ^ F (vs) среди модулей МВС
At' + At" 0 З
снижается при увеличении p , поскольку при p -=--> 0. Значения интервалов
At
времени At ' и At " зависят от расположения ветвей множества J(vs) ^ F(vs). Так, при J(vs )| = \F(vs)| = 1 среднее значение At' и At" равно Ntm, где tm — время распространения сигнала синхронизации через одну ячейку координирующей среды. Если J(vs)| ^ N2 и
\F (vs)| ^ N2, то At' , At ' ^ (2N -1)tm .
Исследование среднего времени At от размера МВС N проводилось при значениях p = 4, n = 8. Для исключения влияния мощности множеств J (vs) и F (vs) на результаты измерений было принято \J(vs )| = |F(vs )| = 0,9 N2/n. Результаты моделирования подтвердили
линейное увеличение времени At от размера системы. Увеличение N в 2 раза приводит практически к двукратному увеличению At. Так, при N = 14 At «1,99 мкс, а при N = 28 — At« 3,7 мкс (при задержке двухходового логического элемента, равной 5 нс). Полученные значения соизмеримы с известными распределенными аппаратными решениями [2, 4, 6].
Выводы. Как показали результаты вычислительного эксперимента, разработанная процедура характеризуется отсутствием зависимости времени синхронизации от количества одновременно достигаемых барьеров, линейным ростом времени синхронизации от размера МВС, а также его зависимостью от числа участвующих в барьере процессоров (снижающейся при увеличении количества групп барьеров). Процедура применима к матричным топологиям различной размерности как с незамкнутыми, так и с замкнутыми границами и инвариантна к способу размещения синхронизируемых и ожидающих ветвей в системе.
Работа выполнена при поддержке гранта Президента РФ МД-685.2009.8.
список литературы
1. O'Boyle M., Stohr E. Compile time barrier synchronization minimization // IEEE Transactions on Parallel and Distributed Systems. 2002. Vol. 13, N 6. P. 529—543.
2. Delgado M., Kofuji S. A distributed barrier synchronization solution in hardware for 2D-mesh multicomputer // Proc. 3rd Intern. Conf. High Performance Computing. 1996. P. 368—373.
3. Yang J.-S., King C.-T. Designing Tree-Based Barrier Synchronization on 2D Mesh Networks // IEEE Transactions on Parallel and Distributed Systems. 1998. Vol. 9, N 6. P. 526—534.
4. Ramakrishnan V., Scherson I. D., Subramanian R. Efficient techniques for nested and disjoint barrier synchronization // J. of Parallel and Distributed Computing. 1999. Vol. 58, N 8. P. 333—356.
5. Cohen W. E., Hyde D. W., Gaede R. K. An optical bus-based distributed dynamic barrier mechanism // IEEE Transactions on Computers. 2000. Vol. 49, N 12. P. 1354—1365.
6. Moh S., Yu C., Lee B. et al. Four-ary tree-based barrier synchronization for 2D meshes without nonmember involvement // IEEE Transactions on Computers. 2001. Vol. 50, N 8. P. 811—823.
34
И. А. Бессмертный
7. Волобуев С. В., Зотов И. В. Организация параллельно-конвейерной барьерной синхронизации в матричных многопроцессорных системах на основе распределенной координирующей среды // Параллельные вычисления и задачи управления (PAC0'08). М.: Институт проблем управления им. В.А. Трапезникова РАН, 2008. С. 616—642.
8. Зотов И. В. и др. Визуальная среда имитационного моделирования VisualQChart. Свид. об официальной регистрации программы для ЭВМ №2007611310 от 27.03.07.
Сведения об авторах
Сергей Викторович Волобуев — аспирант; Курский государственный технический университет, кафед-
ра вычислительной техники; E-mail: [email protected] Игорь Валерьевич Зотов — д-р техн. наук, профессор; Курский государственный технический
университет, кафедра вычислительной техники; E-mail: [email protected]
Виктор Николаевич Николаев — д-р техн. наук, профессор; Курский государственный технический
университет, кафедра информационных систем и технологий; E-mail: [email protected]
Рекомендована кафедрой Поступила в редакцию
вычислительной техники 29.12.09 г.
УДК 004.89
И. А. Бессмертный
ПРИМЕНЕНИЕ РЕЛЯЦИОННЫХ ОПЕРАЦИЙ ДЛЯ ЛОГИЧЕСКОГО ВЫВОДА В ПРОДУКЦИОННЫХ СИСТЕМАХ
Рассматривается задача логического вывода в системах искусственного интеллекта, использующих большое число фактов и правил. Основной проблемой таких систем является быстрый рост сложности логического вывода с увеличением числа фактов и правил. Предлагается устранить проблему комбинаторной сложности задачи логического вывода путем использования операций реляционной алгебры над множествами кортежей переменных. Приводятся результаты измерений скорости логического вывода в среде СУБД MS ACCESS и в среде Prolog.
Ключевые слова: искусственный интеллект, реляционная алгебра, логический вывод.
Введение. Исследования в области практической реализации искусственного интеллекта (ИИ), моделирующего мыслительные процессы, показывают необходимость создания обширной базы знаний, состоящей из миллионов фактов [1]. В отличие от экспертных систем, ориентированных на решение конкретных задач, системы ИИ, позволяющие порождать новые знания, должны использовать неизмеримо большее число правил. Комбинаторная сложность задачи поиска решений делает невозможным создание программ для извлечения новых знаний классическими методами логического вывода [2]. Существующие методы ускорения логического вывода, в частности алгоритм Rete [3], предполагают предварительную подстановку фактов в условия правил, т.е. по сути полное решение задачи. В результате пользователь сразу получает список решений для каждого выбранного правила. „Узким" местом алгоритма Rete является необходимость его повторного запуска после каждого изменения базы фактов, чем и обусловлено ограниченное применение этого алгоритма.
В настоящей работе рассматривается возможность применения теоретико-множественных операций к задаче логического вывода в продукционных системах аппарата, в частности, аппарата реляционных СУБД.