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

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

CC BY
90
28
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПЛАНИРОВАНИЕ И СИНТЕЗ ПАРАЛЛЕЛЬНЫХ ПЛАНОВ / БУЛЕВЫ МОДЕЛИ / ОГРАНИЧЕНИЯ И УРАВНЕНИЯ / PLANNING AND SYNTHESIS OF PARALLEL PLANS / BOOLEAN MODELS / CONSTRAINTS AND EQUATIONS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Опарин Г. А., Новопашин А. П.

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Опарин Г. А., Новопашин А. П.

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

Boolean Models for Synthesis of Parallel Plans of Solving Computational Problems

A new approach to constructing parallel asynchronous plans of a required length for solving computational problems in the multiprocessor environment is proposed. Conditions of the planning problem are represented as a system of Boolean equations (constraints). Solutions of such system determine possible plans of starting of the program modules. Constraints on number of nodes of multiprocessor environment, time delays at execution of program modules and plurality of their installation in nodes are taken into consideration.

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

УДК 681.3.06

Г. А. Опарин, А. П. Новопашин

Институт динамики систем и теории управления СО РАН ул. Лермонтова, 134, Иркутск, 664033, Россия

E-mail: [email protected]

БУЛЕВЫ МОДЕЛИ СИНТЕЗА ПАРАЛЛЕЛЬНЫХ ПЛАНОВ РЕШЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ *

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

Ключевые слова: планирование и синтез параллельных планов, булевы модели, ограничения и уравнения.

Введение

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

Итак, нас интересуют декларативные языки и системы параллельного (в том числе распределенного) модульного программирования [Плакс, 1997; Опарин, Феоктистов, 2002], которые позволяют накапливать в памяти ЭВМ знания о вычислительных модулях предметной области и использовать эти знания при автоматическом решении задач заданного класса. Эффективное использование этой технологии требует решения трудной проблемы построения параллельных планов решения задач. Описания взаимосвязанных по данным программных модулей, включая их распределение по узлам МВС, размещаются в базе знаний планировщика. Допускается множественность установки модулей в узлах МВС.

Необходимо определить, какие модули, в какой последовательности и в каких узлах МВС должны быть выполнены для вычисления требуемого набора целевых параметров В0 по заданному множеству параметров - исходных данных A0. Цель - получить параллельный план решения вычислительной задачи T = (A0, В0), который обладает следующими основными свойствами:

* Работа выполнена при частичной финансовой поддержке Российского фонда фундаментальных исследований (проект № 06-01-00340 ).

ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2008. Том 6, выпуск 1 © Г. А. Опарин, А. П. Новопашин, 2008

1) допустимости (модули в плане должны быть упорядочены таким образом, чтобы каждый из них к моменту своего запуска был обеспечен необходимыми входными данными, или, иначе говоря, для любого входного параметра модуля, входящего в план, должен ранее встречаться в плане хотя бы один модуль с одноименным выходным параметром);

2) бесповторности (каждый модуль может включаться в план не более одного раза);

3) неизбыточности (исключение любого модуля из плана приводит к недопустимому плану);

4) оптимальности (длина плана должна быть равна заданной величине k).

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

В данной постановке задача планирования является NP-трудной, ее условия могут быть представлены в виде системы булевых уравнений (ограничений), а собственно план исполнения модулей является решением этой системы. Преимущество булева моделирования (по сравнению с традиционным дедуктивным подходом) состоит в том, что оно позволяет, во-первых, получать параллельные планы требуемой длины, во-вторых, учитывать разнообразные ограничения, предъявляемые к плану, и, наконец, в-третьих, использовать существующие эффективные решатели булевых уравнений (или SAT-решатели), которые в ряде случаев обгоняют по быстродействию специализированные алгоритмы планирования. В целом, как отмечается в [Kautz, Selman, 1992], такой подход не только обеспечивает более гибкую среду для установления различных видов ограничений на параллельные планы, но также более точно отражает последние достижения в построении систем планирования, основанных на ограничениях.

База знаний планировщика

В качестве базы знаний планировщика используется вычислительная модель KB = (F, Z, Y, In, Out, Com), где F = {F1, ..., Fn} - множество программных модулей, работающих над полем общих транзитных данных Z = {Z1, ., Zm}, являющихся входными или выходными параметрами этих модулей; Y = {Y1, ..., Yp} - множество узлов МВС; In с F х Z, Out с F х Z, - отношения, отражающие взаимосвязь модулей с данными соответственно по входу и выходу. Таким образом, с каждым модулем F, связано два множества параметров Л,, В,, с Z, называемых соответственно входом и выходом. Вход Л, определяет данные, которые необходимо иметь, чтобы получить результаты, представленные выходом В,. В дальнейшем для этого использовуем запись F, (Л,, В,). Без потери общности будем считать, что модули F1 и F2 из множества F моделируют условия постановки задачи планирования T = (Л,, В,), а именно: база знаний KB содержит модули Fi(Ao) и F2(B0;), где Л0, В0, с Z. Отсутствие атрибута до или после точки с запятой означает пустоту соответствующего множества. Модуль F1 назовем модулем начальных данных, а модуль F2 - целевым модулем. Отношение Com с F х Y (в общем случае «многие ко многим») определяет в базе знаний KB статические связи между программными модулями и узлами МВС. Предполагается, что база знаний KB обладает высоким уровнем внутреннего параллелизма и является избыточной в том смысле, что для решения задачи используется только часть модулей из F и / или задача T имеет несколько альтернативных планов решения.

Отношения In, Out и Com представим в виде трех булевых матриц Л, B и С так, что элементы матриц Л и B размерности n х m и матрицы С размерности n х p формируются следующим образом: aj = 1 (by = 1), если параметр Zj является входным (выходным) для модуля F,; с, = 1, если модуль F, установлен в узле Yj. Через Л,, B,, C,, обозначим строки этих матриц, а через Л'р Bj, Cj - столбцы. Строки и столбцы матриц Л, B, и C являются двоичным представлением соответствующих подмножеств множеств F, Z и Y, связанных отношениями In, Out и Com. Запись q е S (S - это двоичная строка Л,, B,, Cu Л',, Bj или Cj ) означает, что q принимает значения номеров единичных элементов в двоичной строке S.

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

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

2. Количество узлов является ограниченной величиной, в каждом узле установлены все модули. Эта ситуация является типичной при решении вычислительной задачи на кластере выделенных рабочих станций типа МВС-1000М с использованием, к примеру, DVM-системы.

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

Булево моделирование при неограниченном числе узлов МВС

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

Определим план в виде матрицы X k х n булевых переменных xtj. Значение xtj, равное единице, означает, что программный модуль Fj выполняется на t-м шаге плана X, где t е N = {1, 2, ...} играет роль дискретного времени. При такой интерпретации первого индекса переменных xtj естественно предположить, что временные задержки, связанные с исполнением модулей, не учитываются, когда все они одинаковы и равны единице. Общая длина плана равна k, его строка задает множество параллельно исполняемых модулей, а столбцы соответствуют множеству модулей F. Тогда булевы ограничения на элементы матрицы X имеют следующий вид.

Условие 1. Условие постановки задачи планирования T = (A, Д) (модуль начальных данных F1(;A0) и целевой модуль F2(B0;) располагаются соответственно в первой и последней строках плана; другие модули в этих строках отсутствуют):

Х11 = ^ V Х1 j = 0 , Xk 2 = ^ Xk1 = ^ V Xjj= 0 .

j=2 J j=3

Условие 2. Условие непрерывности (на каждом шаге плана выполняется, по крайней мере, один модуль):

k-1 n

V л X = 0.

tj

t =2 j=1

Условие 3. Условие бесповторности:

n k-1 k

V V V (X Л X ) = 0.

j=1 t=1 s=t+1

Условие 4. Условие допустимости:

k n

V V (Xt. л w) = 0,

t=2 j=1

где

w = <

V Л Л Xr, if (Aj A 0 ) Л ((Vq е Aj )(B'q A 0));

qeA s=1 reB

^ j q

1, if (Aj A 0) л ((3 q e A.)(B'q = 0));

0, if A = 0.

t-1

Условие 5. Условие упорядоченности (если подготовка данных для модуля завершена на шаге t — 1, то этот модуль обязательно включается в план на шаге с номером t):

к П

V V (x . Л V) = 0,

где

V = <

t=2 j=1

Л Л xt-i r, if (Aj *0 ) Л ((yqe Aj )(К *0));

qeA reB' > J j ч

^ j q

1, if (A. * 0) л ((3 q e A. Щ = 0));

0, if (A. = 0) л (t = 2);

1, if (A. = 0) л (t > 2).

Условие 6. Условие неизбыточности:

к-1 n

v v (x t. л и ) = 0,

t = 2 j=1 j

где

к n

и = V V (xrr Л w).

s= 2 r=1 Sr

индексы s и r удовлетворяют условию (s = t) Л (t = j), а w определяется выражением в условии 4.

Дополнительные условия, задаваемые постановщиком задачи планирования:

g(X11, •••, Х1 n, xk1, •••, Хкп) 0*

В качестве примеров дополнительных ограничений можно привести:

— условие обязательного включения в план модуля Fj:

к-1

h = л X = 0;

j tj ’

t =2

— условие отсутствия в плане модуля Fj:

к-1

z = V x = 0;

j tj

t=2

— условие альтернативного включения в план модулей Fj и Fr:

z л z v h л h = 0.

J г j г

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

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

Булево моделирование с учетом ресурсных ограничений

В этом разделе рассмотрим ситуацию, когда все узлы одинаковы и количество их ограничено величиной р, каждый модуль может выполняться в любом узле, в каждый момент времени в узле может обрабатываться только один модуль. Время т. выполнения модуля Fj e F является дискретной величиной: т. e N = {1, 2, ...}. Кроме того, задан общий директивный срок решения задачи к e N Необходимо построить асинхронный план, длина которого равна величине директивного срока к или не превышает к. Для начала запишем дополнительное условие, позволяющее строить планы для p узлов МВС без учета временных задержек, возникающих при исполнении модулей (т. е. когда т. = 1 для всех J = 1, n ).

Условие 7.

Ограничение на число узлов МВС без учета временных задержек:

v

t =2

(X Л X Л ... Л X ) v

v t,j tI t,

v

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

1s j < и <...< jr+i s n

v v (X Л X Л ... Л X )

, 4 t ttJn_ p+, A

\ isil <2 <...<Jn_p +1 Sn

t ,J2

= 0.

k _1

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

Условие 2.1. Условие непрерывности, учитывающее временные задержки при исполнении модулей:

k _1 n t

v л л X = 0.

iJ

t= 2 J=1 i=t_T +1

J j

Очевидно, что при Tj = 1 для всех J = 1, n , условие 2.1 совпадает с условием 2.

Условие 4.1. Условие допустимости, учитывающее временные задержки при исполнении модулей:

k n

v v (хи. л w) = 0,

t=2 J=1 J

где

v Л Л X ,

, srJ

qeA s=1 reB

^ j q

if (A A 0 ) Л ((Vq e A )(B A 0));

w = <

1,

0,

if (A J A 0) л ((3 q e A )(B[ if A = 0.

J

0));

Условие 6.1. Для того чтобы условие неизбыточности 6 работало с учетом временных задержек, достаточно использовать для него новое определение w из предыдущего условия.

Условие 7.1. Ограничение на число узлов МВС, учитывающее временные задержки при исполнении модулей:

Г 6 t t t Л Л

v

t =2

v

v X Л v X Л ... Л

1sJ1 < j <.. .<Jp + 1 Sn ^ i=t_T +1

f

v v

У 1SJ1 <J2 <.<J,_p+1 sn у i:

' ,J1

v

i=t_T +1

v

Л X Л Л X Л ... Л

Л

i=t_T +1

= 0.

JJ

k _1

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

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

Условие 8. Условие синхронности, учитывающее временные задержки при исполнении модулей (параллельный запуск модулей возможен только после полного завершения работы всех модулей предыдущего шага плана (схема FORK / JOIN)):

k n

где

v v (хи. л e) = 0,

t=2 J=1 Ь

n f t Л

v X л tr v X ir

r=1 у = t _Tr +1 J

Булево моделирование при множественной установке модулей в узлах МВС

Наконец, рассмотрим общий случай связей между программными модулями и узлами, который допускает, что узлы различаются по производительности, каждый модуль может быть установлен в нескольких узлах, в любом узле может находиться несколько функционально различных модулей, но в каждый момент времени на каждом узле может выполняться только один модуль. Таким образом, матрица C, представляющая отношение Com, не содержит нулевых строк и столбцов, а количество единичных элементов в ней равно l.

Определим план решения задачи в виде матрицы X k х l булевых переменных xt, <j, r>, в которых второй индекс элемента матрицы определяется двумя величинами - номером модуля j в множестве F и номером узла r в множестве Y, удовлетворяющими условию cjr = 1. Будем считать, что xt, <j, r> = 1 означает исполнение модуля Fj в узле Yr на шаге плана X с номером t. Время исполнения модуля обозначим через t<j, r>. Понятно, что для данного варианта распределения модулей по узлам булевы ограничения, полученные в предыдущих разделах, нуждаются в модификации и дополнении. В частности, уточненная редакция условия бесповторности имеет вид: каждый модуль вне зависимости от того, в каком количестве узлов он установлен, может включаться в план не более одного раза.

Условие 3.1. Условие бесповторности с учетом множественности установки модулей в узлах МВС:

v I v (hr л hs) v v h = 0,

j-1\(r ,seCj )л(1<r<s<p) r s qeCj 4 J

где

h = v x

h = v x

h = v v (x

q x t.

л x

,< j ,q> i ,< j ,q>'

k

k

Следующие дополнительные булевы ограничения контролируют на любом шаге t плана X исполнение не более одного программного модуля на каждом узле МВС (условие захвата узла модулем):

Условие 9. Условие захвата узла модулем без учета временных задержек при исполнении модулей:

kp

v v v (x

, v t ,< j ,q >

t=1 q=1 ( j1, j2 eCj )л(1< Ji < j2 <n) 1

л x

t ,< j'2,q >

) = o.

Условие 9.1. Условие захвата узла модулем с учетом временных задержек при исполнении модулей:

k p ft t Л

v v v

t=1 q = 1 ( j1, j'2ECCj )л(1< j < j2 <n)

v

Vi

x л

1 i ,< j1,q >

v

= 0.

J

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

Заключение

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

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

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

Применение известных SAT-решателей 1 требует приведения булевых функций общего вида к дизъюнктивной нормальной форме, что, как правило, является трудной задачей в классической постановке [Журавлев, Платоненко, 1984].

Разработанные модели и алгоритмы синтеза параллельных планов решения вычислительных задач показали свою эффективность в инструментальных средах организации распределенных вычислений [Опарин, Феоктистов, 2002] и крупноблочного синтеза параллельных программ с использованием DVM-системы [Опарин, Новопашин, 2006].

Список литературы

Журавлев Ю. И., Платоненко И. М. Об экономном умножении булевых уравнений // ЖВМ и МФ. 1984. Т. 24, № 1. С. 164-166.

Опарин Г. А., Богданова В. Г. Алгоритмы решения больших разреженных систем булевых уравнений // Методы оптимизации и их приложения: Тр. XII Байкальской междунар. конф. (Иркутск, июнь 2001 г.). Секция 5: Дискретная математика. Иркутск: ИГУ, 2001. С. 114-118.

Опарин Г. А., Новопашин А. П. Булево моделирование планирования действий в распределенных вычислительных системах // Изв. РАН. Теория и системы управления. 2004. № 5. С. 105-108.

Опарин Г. А., Новопашин А. П. Методы и инструментальные средства крупноблочного синтеза параллельных программ на языке Fortran-DVM // Параллельные вычисления и задачи управления: Избранные доклады III Междунар. конф. PACO-2006 памяти И. В. Прангишвили (Москва, октябрь, 2006). М.: ИПУ РАН, 2006. С. 59-63.

Опарин Г. А., Феоктистов А. Г. Инструментальная распределенная вычислительная САТУРН-среда // Программные продукты и системы. 2002. № 2. С. 27-30.

Плакс Т. П. Синтез параллельных программ на вычислительных моделях // Программирование. 1977. № 4. С. 55-63.

Kautz H., Selman B. Planning as Satisfiability // Proc. 10th European Conf. on Artificial Intelligence (ECAI), 1992. P. 359-363.

Материал поступил в редколлегию 22.03.2008

G. A. Oparin, A. P. Novopashin

Boolean Models for Synthesis of Parallel Plans of Solving Computational Problems

A new approach to constructing parallel asynchronous plans of a required length for solving computational problems in the multiprocessor environment is proposed. Conditions of the planning problem are represented as a system of Boolean equations (constraints). Solutions of such system determine possible plans of starting of the program modules. Constraints on number of nodes of multiprocessor environment, time delays at execution of program modules and plurality of their installation in nodes are taken into consideration.

Keywords: planning and synthesis of parallel plans, Boolean models, constraints and equations.

1 Simon L. The experimentation web site around the satisfiability problem. http://www.lri.fr/ simon/satex/satex.php3.

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