Научная статья на тему 'РЕСУРСОНЕЗАВИСИМОЕ ОПИСАНИЕ ИНФОРМАЦИОННЫХ ГРАФОВ С ДИСТРИБУТИВНЫМИ ОПЕРАЦИЯМИ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ SET@L'

РЕСУРСОНЕЗАВИСИМОЕ ОПИСАНИЕ ИНФОРМАЦИОННЫХ ГРАФОВ С ДИСТРИБУТИВНЫМИ ОПЕРАЦИЯМИ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ SET@L Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
16
6
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДИСТРИБУТИВНЫЕ ОПЕРАЦИИ / РЕСУРСОНЕЗАВИСИМОЕ ПРОГРАММИРОВАНИЕ / РЕКОНФИГУРИРУЕМЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ / РЕДУКЦИЯ ПРОИЗВОДИТЕЛЬНОСТИ / SET@L / ПРИЗНАКИ «РАЗБИЕНИЕ ПОПОЛАМ» И «ГОЛОВА/ХВОСТ»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Левин Илья Израилевич, Писаренко Иван Вадимович, Михайлов Денис Васильевич, Мельников Андрей Кимович, Дордопуло Алексей Игоревич

В данной работе предлагается преобразовать стандартную последовательную топологию информационного графа с дистрибутивными операциями к комбинированному варианту с последовательными и параллельными фрагментами, что позволяет эффективно описать реализацию вычислений в ресурсонезависимойформе. Конечная топология зависит от доступного вычислительного ресурса реконфигурируемой системы иобеспечивает повышение удельной производительности в сравнении с исходным вариантом. Разработанныйалгоритм преобразования линейной структуры в различные комбинированные топологии в зависимости отконфигурации вычислительной системы описан на языке программирования Set@l.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Левин Илья Израилевич, Писаренко Иван Вадимович, Михайлов Денис Васильевич, Мельников Андрей Кимович, Дордопуло Алексей Игоревич

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

RESOURCE-INDEPENDENT DESCRIPTION OF INFORMATION GRAPHS WITH DISTRIBUTIVE OPERATIONS IN THE SET@L PROGRAMMING LANGUAGE

In the paper, we suggest to transform a standard sequential topology of an information graph with distributive operations into its hybrid version with sequential and parallel fragments. Such transformation allows to provide efficient description of calculations in the resource-independent form. The result topology depends on available hardware resource of a reconfigurable system and provides an increase in the special performance in comparison to the initial topology. We have developed an algorithm of a linear structure transformation into various hybrid topologies according to the configuration of the computing system. The algorithm is described in the Set@l programming language.

Текст научной работы на тему «РЕСУРСОНЕЗАВИСИМОЕ ОПИСАНИЕ ИНФОРМАЦИОННЫХ ГРАФОВ С ДИСТРИБУТИВНЫМИ ОПЕРАЦИЯМИ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ SET@L»

УДК 004.432.4 DOI: 10.14529/cmse220201

РЕСУРСОНЕЗАВИСИМОЕ ОПИСАНИЕ ИНФОРМАЦИОННЫХ ГРАФОВ С ДИСТРИБУТИВНЫМИ ОПЕРАЦИЯМИ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ SET@L

© 2022 И.И. Левин1, И.В. Писаренко2, Д.В. Михайлов2,

А.К. Мельников3, А.И. Дордопуло2

1 Южный федеральный университет (347928 Таганрог, пер. Некрасовский, д. 44)>

2 «НИЦ супер-ЭВМ и нейрокомпьютеров» (347922 Таганрог, пер. Итальянский, д. 106), ΆΑΟ «Вычислительные решения» (117587 Москва, Варшавское ш., д. 125с17) E-mail: nlevin@sfedu.ru, pisarenko@superevm.ru, mixailow.den@gmail.com, ak@comp-sol.ru, dordopulo@superevm.ги Поступила в редакцию: 05.05.2022

В данной работе предлагается преобразовать стандартную последовательную топологию информационного графа с дистрибутивными операциями к комбинированному варианту с последовательными и параллельными фрагментами, что позволяет эффективно описать реализацию вычислений в ресурсонезависимой форме. Конечная топология зависит от доступного вычислительного ресурса реконфигурируемой системы и обеспечивает повышение удельной производительности в сравнении с исходным вариантом. Разработанный алгоритм преобразования линейной структуры в различные комбинированные топологии в зависимости от конфигурации вычислительной системы описан на языке программирования Set@l.

Ключевые слова: дистрибутивные операции, ресурсонезависимое программирование, реконфигурируемые вычислительные системы, редукция производительности, Set@l, признаки «разбиение пополам» и «голова/хвост».

ОБРАЗЕЦ ЦИТИРОВАНИЯ

Левин И.И., Писаренко И.В., Михайлов Д.В., Мельников А.К., Дордопуло А.И. Ресурсонезависимое описание информационных графов с дистрибутивными операциями на языке программирования Set@l // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2022. Т. 11, № 2. С. 5-17. DOI: 10.14529/cmse220201.

Введение

Информационные графы многих прикладных задач имеют последовательную (линейную) топологию, поэтому реализация их распараллеливания (ускорения) в общем виде затруднительна. Однако, если операции графа обладают определенными свойствами, такими как дистрибутивность и ассоциативность, то целесообразно преобразовать их к виду, для которого допустимо параллельное (ускоренное) выполнение. Например, в работе [1] показано, что за счет перестановки вершин в информационном графе с ассоциативными операциями и дальнейшей оптимизации вычислительной структуры время решения задачи может быть сокращено в число раз, соответствующее латентности операционной вершины. В данной статье представлен другой пример оптимизации последовательного информационного графа с дистрибутивными операциями для реализации на реконфигурируемых ВС с различными конфигурациями. Подобные графы широко применяются для решения многих задач цифровой обработки сигналов [2, 3]. Для практического применения предложенных преобразований необходимы эффективные методы и средства представления параллельных программ в ресурсонезависимом виде. В работах [4-6] предложен язык архитектурно-

независимого параллельного программирования Set@l (Set Aspect-Oriented Language), основанный на парадигме аспектно-ориентированного программирования (АОП) и теоретикомножественном представлении исходного кода программы. Описав базовую топологию графа с дистрибутивными операциями и принципы ее преобразования в виде специальных признаков метода обработки на языке Set@l, возможно синтезировать множество вариантов топологий и переходить между ними путем изменения типов и разбиений совокупностей. Приведение графа к оптимальному виду при заданном объеме вычислительного ресурса реконфигурируемой ВС может осуществляться без изменения исходного кода программы.

1. Преобразование информационных графов с дистрибутивными операциями

Рассмотрим последовательный информационный граф, топология которого изображена на рис. 1. Представленный граф состоит из чередующихся операционных вершин а и β, причем обе базовые операции обладают свойством ассоциативности, а операция β является дистрибутивной по отношению к операции а. Граф на рис. 1 позволяет вычислить последовательность коэффициентов Wi, W%, ■.. Wn, определяемых следующей рекуррентной формулой:

Хг Ь1 Х3 Ъ; Xy-i by

Рис. 1. Последовательный информационный граф с дистрибутивными операциями а. и /3

Граф на рис. 1 позволяет вычислить последовательность коэффициентов W\, W2·, ■ · · Wn, определяемых следующей рекуррентной формулой:

W0 = x 1; Wi = {Wi-ıa.Xi+ı)Şbi, і = 1,2, — , İV, (1)

где N — мощность множества, включающего все коэффициенты /3*. Время выполнения всех операций графа составляет

TG = т ■ N ■ (1а + Ιβ), (2)

где т — длительность такта в секундах; 1аг, Ιβ — латентности операционных вершин а и β в тактах.

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

(а(а, Ь, г), /3(г, с, г)) = (β(α, с, і), β(ρ, с, гг), а(г, гг, г)), (3)

где а, Ь, с — входные вершины; г — выходная вершина; г, гг — дуги, соответствующие промежуточным результатам вычислений. Преобразование на рис. 2, б представляет со-

бой слияние двух ассоциативных вершин β в одну вершину β, на вход которой подается множество исходных операндов:

(β(α, Ь, г), а(г, с, г)) = β{α, {Ь, с}, г). (4)

(б)

Рис. 2. Преобразование пары дистрибутивных вершин а и β (а) и слияние пары ассоциативных вершин (б), показанное на примере операции β

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

Теперь, когда граф разбит на фрагменты, содержащие ассоциативные операционные вершины только одного типа а или β (см. рис. 3, а), возможно распараллелить вычисления, преобразовав каждый из последовательных подграфов к пирамидальному виду [7]. В результате будет получена топология, изображенная на рис. 3, б и включающая нижний пирамидальный подграф из вершин а, входы которого соединены с выходами множества верхних пирамидальных подграфов, составленных из вершин β. Размер пирамид из вершин β будет меняться от N вершин (для двух крайних левых подграфов на рис. 3, б) до одной вершины (крайне правая пирамида на рис. 3, б).

Рис. 3. Модифицированные топологии информационного графа с дистрибутивными операциями а и β с последовательными (а) и параллельными (б) подграфами-ветвями

Время выполнения всех операций информационного графа на рис. 3, б является минимальным и составляет

где |" ] — округление до целого в большую сторону. В формуле (5) округление множителя log2 N учитывает случаи, когда размерность пирамидальных подграфов необходимо дополнить до степени 2. В отличие от исходной топологии (см. рис. 1) информационные графы на рис. 3 характеризуются существенно большим объемом аппаратного ресурса, занимаемого соответствующими им вычислительными структурами: количество вершин β возрастает до (N2 + Ν)/2, тогда как число вершин а остается равным N. Например, если в исходном графе была 1000 вершин β, то после преобразования их количество возрастет более чем в 500 раз.

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

— каждая ветвь из вершин β использует только одну из переменных Xf,

- на две левые ветви из вершин β подаются все коэффициенты {Ь\... Ьдг}, а на каждую последующую ветвь — на один коэффициент меньше, то есть т-я ветвь оперирует коэффициентами {bm-1... Ьдг}.

Поскольку операция β ассоциативна, перегруппируем вершины в ветвях таким образом, чтобы блоки с входами {х± ... a;jv+ı} располагались вплотную к подграфу из вершин а (см. рис. 4, а). В результате такого преобразования каждая ветвь, кроме крайней правой, будет содержать вершину β с входами bjv-ı и Ьдг (выделены на рис. 4, а). Оставим одну вершину /3(Ьдг_1, бдг, г) в крайней левой ветви и удалим повторяющиеся вершины, подав на входы остальных ветвей данные с выхода г (см. рис. 4, б). В полученном графе возникнет новое множество идентичных вершин β(ί, ЬлГ-2) İİ)ı которое выделено на рис. 4, б и может быть заменено одной вершиной аналогичным образом. Каждый шаг преобразования уменьшает количество вершин β и формирует промежуточную топологию, реализуемую на ВС с определенным объемом вычислительного ресурса. В предельном случае, показанном на рис. 4, в, процедура удаления одинаковых вершин повторялась до тех пор, пока во всех ветвях, кроме крайней левой, не осталось по одной вершине β. Количество вершин β в такой топологии равно 2 * N — 1 вместо (N2 + Ν)/2 в исходном графе (см. рис. 4, а). Линейку вершин а в графе на рис. 4 в целесообразно преобразовать в пирамиду (см. рис. 4, г), обеспечив снижение времени выполнения всех операций до

Дальнейшее уменьшение аппаратных затрат возможно при разбиении исходного графа (см. рис. 1) на линейные изоморфные подграфы, содержащие максимальное реализуемое число вершин, однако при таком подходе время решения задачи Та будет не оптимальным. Более эффективный подход предполагает преобразование каждого подграфа к виду, аналогичному рис. 4, г.

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

Та = (1а+ 1β)· flog2 АП ■ т,

(5)

Τα = (Ια·\\οί2Ν]+Ιβ·Ν)·τ.

(6)

(в) (г)

Рис. 4. Модификация информационного графа с дистрибутивными операциями: перестановка вершин β в ветвях (а), однократное удаление повторяющихся вершин β (б), граф с одной полной ветвью (в) и перегруппировка вершин а в пирамидальную

структуру (г)

следовательной топологии (см. рис. 1) и разобьем исходный граф на изоморфные подграфы, содержащие по L линейно соединенных пар вершин аж β. Далее, используя предложенную выше методику, приведем каждый выделенный подграф к виду «полная линейка β — пирамида а», показанному на рис. 5, а. В соответствующей полученному графу вычислительной структуре обратная связь будет охватывать полную линейку операций β и пирамиду операций а, поэтому интервал обработки данных будет достаточно высоким. Для его снижения перегруппируем вершины таким образом, чтобы обратная связь охватывала только пару вершин аж β. Поскольку операция а ассоциативна, полную пирамиду размерности N можно заменить на пирамиду меньшей размерности (Ν— 1) и одиночную операционную вершину а, как показано на рис. 5, б. Вместе с вершиной а из линейки операций β будет вынесена одна ближайшая к пирамиде вершина β, поэтому в конечной вычислительной структуре на рис. 5, б обратной связью будет охвачено всего две вершины, по одной каждого типа. Чтобы обеспечить минимальный интервал обработки данных, размерность выделенных подграфов должна соотноситься с латентностями операционных вершин: L = (1а + Ιβ).

После описанного преобразования время решения задачи составит:

Та

(7)

где L = (1а + Ιβ) · Ιβ + \log2(la + Ιβ) \ · la) — длина критического пути в тактах для вычислительной структуры на рис. 5, б.

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

Τα = (Ια + Ιβ)·τ·Ν. (8)

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

Таким образом, в зависимости от соотношения объемов вычислительного ресурса Ra и ϋβ, доступных для реализации вершин соответствующих типов, их латентностей 1а и Ιβ, а также размерности обрабатываемых массивов данных N возможно выделить несколько способов построения вычислительной структуры, обеспечивающих разные скорости решения задачи. Ниже приведено составное выражение, позволяющее рассчитать время выполнения всех операций графа для каждого из этих случаев:

TG

(1а + Ιβ) ■ Г1о§2 Щ · т, если Ra > N,Rp> Ν2+Ν·, сla ■ riog2 N] + Ιβ ■ N) ■ T, если Ra > N, 2N < Rβ <

I(la + Ιβ — 1) ■ Ιβ + + Ιβ)~\ ’ la + ГΙα+Ιβ 1 j ' τ ' (la + Ιβ)>

если la + Ιβ < Ra < N, 2 · (la + Ιβ) < Rfi < 2N·,

{(k-l)-lfi+ [log2 k~} · la + f } · T ■ (la + Ιβ), если Ra ^ la Ιβι Rβ ^ 2 ' (1>а Ιβ)ι

(9)

где {к — 1) — число автоподстановок [8].

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

рис. 4, г). Третий вариант описывает ситуацию, когда доступного ресурса не хватает на реализацию всего графа целиком, но достаточно для реализации подсистемы, охваченной обратной связью, включающей в себя 1а + Ιβ блоков а. и 2 ■ (1а + Ιβ) блоков β (см. вычислительную структуру на рис. 5, б). Наконец, последний вариант описывает случай, когда оборудования не хватает для того, чтобы реализовать даже описанную выше подсистему. В таком случае автоподстановка реализуется столько раз, сколько позволяет объем свободного аппаратного ресурса. В предельном случае к = 1а + Ιβ рассматриваемое выражение переходит в третье, а при к = 1 — в формулу (8) для минимальной вычислительной структуры с парой вершин а и β, охваченных обратной связью.

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

2. Ресурсонезависимая программа на языке Set@l

Традиционные методы параллельного программирования, как правило, оперируют информационным графом с фиксированной структурой, поэтому их использование для описания преобразований топологии графа с дистрибутивными операциями (см. рис. 1-5) достаточно трудоемко и малоэффективно. Код ресурсонезависимой программы, которая реализует рассмотренные преобразования, будет состоять из множества подпрограмм, связанных условными операторами и задающих отдельные варианты топологий. В отличие от классических языков параллельного программирования, возможности языка архитектурнонезависимого программирования Set@l позволяют описать принципы построения и модификации графов с дистрибутивными операциями в виде множеств типов «голова/хвост» и «разбиение пополам» и правил их декомпозиции. В таком случае исходный код программы описывает не отдельные реализации, а множество возможных топологий графа для заданной размерности задачи. Аспекты выбирают определенный вариант топологии, исходя из конкретных значений параметров конфигурации. Для изменения структуры информационного графа достаточно изменить тип и разбиение множеств, тогда как исходный код программы, описывающий математическую сущность алгоритма, остается неизменным.

Исходный код программы на языке Set@l, приведенный на рис. 6, описывает базовую последовательную топологию графа с дистрибутивными операциями (см. рис. 1). Отметим, что вершины a (alpha) и β (beta) могут соответствовать как простым операциям над числами с фиксированной запятой, так и более сложным операциям сложения и умножения комплексных чисел, векторов и матриц.

Полный граф описывается рекурсивно (Reс, см. строку (1) на рис. 6) как отношение F между множествами переменных X и коэффициентов В и результирующим элементом г. Поскольку граф строится по последовательному принципу «голова/хвост», в условии завершения рекурсии (break, строки (2)-(4)) и правиле раскрытия итераций (main, строки (5), (6)) используются соответствующие признаки Head («голова»: выделение первого

(1) Rec[F(X,В,г) I set(X,В) && element(r)]:

(2) break[cap(В)=1:

(3) F(X,В,г)=conc{alpha(Head(Tail(X)) , Head(X) , і) ,

(4) beta(і,Head(В),r) I element(і) }; ];

(5) main[F(X,B,r)=conc{F(Tail(X),Tail(B),e),alpha(e,Head(X),і),

(6) beta(і,Head(B),r)|element(e,і)};];

(7) end(F);

Рис. 6. Исходный код программы на языке Set@l, описывающий последовательную топологию информационного графа с дистрибутивными операциями (см. рис. 1)

элемента множества) и Tail («хвост»: выделение подмножества, содержащего все элементы исходного множества, кроме первого). Альтернативный принцип построения графов, рассматриваемый в данной работе, — «разбиение пополам» — предполагает формирование параллельной пирамидальной структуры.

На каждой итерации (см. строки (5), (6) на рис. 6) линейку дистрибутивных операций F над множествами X и В можно представить как аналогичную линейку операций над «хвостами» этих множеств и пару связанных через элемент і вершин а и β, на входы которых подаются «головы» множеств X и В и промежуточный результат е последовательного выполнения ассоциативных операций F над Tail(X), Tai 1(B), а выход г является конечным или промежуточным результатом вычислений. Так как исходный последовательный граф не привязан к какой-либо вычислительной архитектуре, все его элементы связаны между собой по параллельно-зависимому принципу сопс [6]. При выполнении условия завершения рекурсии (строки (2)-(4)) последняя линейка операций F преобразуется в особую пару вершин, на входы которой подаются оставшиеся элементы множеств X и В.

На рис. 7 представлен код на языке программирования Set@l, который описывает базовое преобразование пары дистрибутивных вершин а и β (признак distr, строки (1)-(4), см. рис. 2, а) и слияние пары ассоциативных вершин любого типа (признак mrg, строки (5)-(8), см. рис. 2, б), на основе которых осуществляется дальнейшая модификация последовательного информационного графа. Преобразование mrg позволяет передать тип Н/Т («голо-ва/хвост») или DIV2 («разбиение пополам») формируемому множеству к, подаваемому на вход блока f.

(1) attribute(distr (al,a2) |al=alpha (a,b,і) && a2=beta(i,с,r)) :

(2) cone(al,a2)=conc(beta(a,c,i),beta(b,c,ii),

(3) alpha(i,ii,r)|element(ii));

(4) end(distr);

(5) attribute(mrg(al,a2,z) |al=f (a,b,c) && a2=f (c,d,e) &&

(6)

z=type('H/T' I I 'DIV2')) :

(7) cone(al,a2)=[f(a,k,e)|k=union(b,d) && type(k)=z];

(8) end(mrg);

Рис. 7. Код базовых признаков, описывающих преобразование пары дистрибутивных вершин (distr) и слияние пары ассоциативных вершин (mrg), на языке

программирования Set@l

Фрагмент программы на языке Set@l изображенный на рис. 8, определяет процедуру преобразования Тг линейного информационного графа с дистрибутивными операциями

(см. топологию на рис. 1 и код на рис. 6) к топологии с подграфами-ветвями (см. рис. 3, а). Движение по итерациям начинается от пары вершин а. и β, соединенной с выходом г.

На каждой итерации (main, см. строки (6)-(8) на рис. 8) последовательно (seq) реализуются одно преобразование пары дистрибутивных вершин (distr, строка (6)) и два отдельных слияния (mrg, строки (6)-(8)) групп ассоциативных вершин а и β. В итоге граф представляется как объединение этих операций с аналогичным подграфом, вершины которого входят в множество Tail2 (G)=Tail (Tail (G)). Преобразования mrg осуществляются над группами вершин, связанных общими элементами с, а характер параллелизма объединяемых вершин определяется передаваемыми типами talpha и tbeta (Н/Т или DIV2). Строки (10)—(14) описывают параллелизм ветвей из вершин β, свойственный для графа с топологией на рис. 3, а.

Переход от топологии с последовательными подграфами-ветвями (см. рис. 3, а) к его параллельной реализации (см. рис. 3, б) может осуществляться за счет передачи типов talpha=£DIV2’ и tbeta=£DIV2’ при вызове процедуры Тг.

(1) Rec[Tr(G,talpha,tbeta) 1 set(G) ,type(talpha,tbeta) ] :

(2) break[cap(G)=2:

(3) Tr(G)=seq[distr(Head(G) ,Head(Tail(G))) ,

(4) mrg (k, 1, m I k, 1 in G && k=alpha (a, b, c) && l=alpha (c, d, e) ) ] ] ;

(6) main[Tr(G)=seq[Tr(TailA2(G)),distr(Head(G),Head(Tail(G))) ,

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

(7) mrg(e,f,m1e,f in G && e=alpha(a,b,c) && f=alpha(c,d,e)),

(8) mrg(x,y,z!x,у in G && y=beta(c,d,e) && z^tbeta)]];

( 9) end(Tr) ;

(10) attribute(Tpar(G)|set(G)):

(11) set(K);

(12) K=(a|a in G && a=beta(c,d,e));

(13) type(K)='par';

(14) end(Tpar);

Рис. 8. Код преобразования исходного информационного графа (см. рис. 1) в структуру с последовательными подграфами-ветвями (см. рис. 3, а) на языке Set@l

На следующем этапе топология с подграфами-ветвями (см. рис. 3, а) оптимизируется путем удаления повторяющихся вершин β (см. рис. 8). Соответствующая процедура Gcut задается фрагментом кода на языке программирования Set@l, представленном на рис. 9. Признак vcut (см. строки (1)-(3)) выделяет пару вершин β с одинаковыми входами с, f и разными выходами е, ее и заменяет их на одну вершину с объединенным выходом к, в котором обе связи реализуются параллельно (par). Процедура scut (см. строки (4)-(7)) последовательно выделяет все повторяющиеся вершины в текущем графе В и применяет к ним преобразование vcut. Процесс продолжается до тех пор, пока из исходной группы не останется одна уникальная вершина (см. рис. 4, б). Процедура Gcut многократно повторяет преобразование scut и приводит граф к виду, показанному на рис. 4, в: все ветви из вершин β, кроме первой, содержат по одной вершине, а повторяющиеся вершины полностью удалены.

После оптимизации топологии графа (см. код на рис. 9) необходимо синтезировать вычислительную структуру CS, показанную на рис. 5, б. Для этого множества входных данных XD и BD типа pipe (конвейерная обработка) разбиваются на подмножества типа с one (параллельно-зависимая обработка), размерность которых определяется латентностями операционных вершин la (1а) и Ιβ (lb), а затем преобразование FG, описанное на рис. 6-9, выполняется над каждым подмножеством (sub):

(1) attribute(vcut{al,a2)|al=beta{с,f,e) && a2=beta{c,f,ее)):

(2) par(al,a2)=[beta(c,f,к)|k=par(e,ee) && е=ее];

(3) end(vcut);

(4) Rec[scut(В) I set(B)] :

(5) break[cap(B)=1];

( 6) main[scut(B)=seq{vcut(Head(B) ,Head(Tail(B))),scut(Tail(B)) )];

(7) end(scut);

(9) Rec[Gcut(G) I set(G)] :

(10) B=(a,b,...Ia,b in G && a=beta(c,i,e) && b=beta(c,f,ее));

(11) break[cap(В)=1];

(12 ) main [Gcut (G) =seq (Gcut (G) , scut (B) ) ] ;

(13) end(Gcut);

Рис. 9. Фрагмента кода программы на языке Set@l, реализующий удаление повторяющихся вершин β (см. рис. 4)

XD=pipe(union[conc(x(a) ...x(b))|(х(а),x(b)) in X &&

a in set(lДа+lb+l, ...) && b in set(la+lb,2*(la+lb), ...)]);

BD=pipe(union[conc(Ъ(с) ...b(d))I(b(c),b(d)) in В &&

c in set(l,la+lb+l, ...) && d in set(la+lb,2*(la+lb), ...)]]);

CS=FG(x,b,r| forall sub(x) in XD && forall sub(b) in BD);

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

A=(a|beta(c,d,a) && alpha(a,b,e));

A*=(H/T(DIV2(al...ak-1), ak)|k=cap(A));

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

Заключение

Таким образом, в данной статье показан метод, который за счет перестановки вершин в информационном графе с дистрибутивными операциями и дальнейшей оптимизации вычислительной структуры позволяет ускорить выполнение всех операций графа, причем степень этого ускорения зависит от того, сколько вычислительных блоков возможно реализовать на имеющемся аппаратном ресурсе. Язык архитектурно-независимого программирования Set@l обеспечивает описание преобразований в компактной ресурсонезависимой форме. В отличие от традиционных языков параллельного программирования, в которых изменение топологии информационного графа требует модификации исходного кода программы, Set@l задает множество вариантов реализации в одной программе, а синтез конкретной вычислительной структуры осуществляется автоматически в соответствии с заданными пользователем параметрами конфигурации — объемом доступного вычислительного ресурса и латентностью базовых операций.

Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 20-07-00545.

Литература

1. Levin I.I., Dordopulo A.I., Pisarenko L, et al. Resource-Independent Description of Information Graphs with Associative Operations in Set@l Programming Language // Parallel Computing Technologies, 16th International Conference, PaCT 2021, Kaliningrad, Russia, September 13-18, 2021. Proceedings. Vol. 12942 / ed. by V. Malyshkin. Springer, 2021. Lecture Notes in Computer Science. P. 74-87. DOI: 10.1007/978-3-030-86359-3_6.

2. Tan L., Jiang J. Digital Signal Processing: Fundamentals and Applications. 2nd ed. Oxford: Elsevier Science, 2013. 896 p.

3. Winser A., Cranos M.W. Digital Signal Processing: Principles, Algorithms and System Design. London: Elsevier, 2017. 634 p.

4. Levin I.I., Dordopulo A.I., Pisarenko I.V., Melnikov A.K. Aspect-Oriented Set@l Language for Architecture-Independent Programming of High-Performance Computer Systems // Supercomputing. RuSCDays 2019. Vol. 1129 / ed. by L. Sokolinsky, M. Zymbler. Cham: Springer, 2019. P. 517-528. Communications in Computer and Information Science. DOI: 10.1007/978-3-030-36592-9_42.

5. Levin I.I., Dordopulo A.I., Pisarenko I.V., Melnikov A.K. Objects of Alternative Set Theory in Set@l Programming Language // Parallel Computing Technologies, 15th International Conference, PaCT 2019, Almaty, Kazakhstan, August 19-23, 2019. Proceedings. Vol. 11657 / ed. by V. Malyshkin. Springer, 2019. P. 18-31. Lecture Notes in Computer Science. DOI: 10.1007/978-3-030-25636-4_3.

6. Левин И.И., Дордопуло А.И., Писаренко И.В., Мельников А.К. Язык архитектурнонезависимого программирования вычислительных систем Set@l / / Вестник компьютерных и информационных технологий. 2019. № 3. С. 48—56.

DOI: 10.14489/vkit.2019.ОЗ.рр.048-056.

7. Карепова Е.Д. Основы многопоточного и параллельного программирования. Красноярск: Сиб. федер. ун-т, 2016. 356 с.

8. Levin I.I., Dudko S.A. Equivalent Transformations of Some Kinds of Computing Structures of Non-linear Recurrent Expressions for Reconfigurable Computing Systems // Parallel Computational Technologies. Vol. 1437 / ed. by L. Sokolinsky, M. Zymbler. Cham: Springer, 2021. P. 3-17. Communications in Computer and Information Science. DOI: 10.1007/978-3-030-81691-9 1.

Левин Илья Израилевич, д.т.н., профессор, кафедра интеллектуальных и многопроцессорных систем, Южный федеральный университет (Таганрог, Российская Федерация)

Писаренко Иван Вадимович, «НИЦ супер-ЭВМ и нейрокомпьютеров» (Таганрог, Российская Федерация)

Михайлов Денис Васильевич, «НИЦ супер-ЭВМ и нейрокомпьютеров» (Таганрог, Российская Федерация)

Мельников Андрей Кимович, к.т.н., доцент, АО «Вычислительные решения» (Москва, Российская Федерация)

Дордопуло Алексей Игоревич, к.т.н., «НИЦ супер-ЭВМ и нейрокомпьютеров» (Таганрог, Российская Федерация)

DOI: 10.14529/ cmse220201

RESOURCE-INDEPENDENT DESCRIPTION OF INFORMATION GRAPHS WITH DISTRIBUTIVE OPERATIONS IN THE SET@L PROGRAMMING LANGUAGE

© 2022 I.I. Levin1, I.V. Pisarenko2, D.V. Mikhailov2,

A.K. Melnikov3, A.I. Dordopulo2

1Southern Federal University (Nekrasovsky lane 44> Taganrog, 347928 Russia),

2 Supercomputers and Neurocomputers Research Center (Ralyansky lane 106, Taganrog, 347922 Russia),

3“Computational Solutions” JSC (Varshavskoe highway 125cl7, Moscow, 119991 Russia) E-mail: iilevin@sfedu.ru, pisarenko@superevm.ru, mixailow.den@gmail.com, ak@comp-sol.ru, dordopulo@superevm.ru Received: 05.05.2022

In the paper, we suggest to transform a standard sequential topology of an information graph with distributive operations into its hybrid version with sequential and parallel fragments. Such transformation allows to provide efficient description of calculations in the resource-independent form. The result topology depends on available hardware resource of a reconfigurable system and provides an increase in the special performance in comparison to the initial topology. We have developed an algorithm of a linear structure transformation into various hybrid topologies according to the configuration of the computing system. The algorithm is described in the Set@l programming language.

Keywords: distributive operations, resource-independent programming, reconfigurable computing systems, performance reduction, Set@l, “half-splitting” and “head/tail” attributes.

FOR CITATION

Levin I.I., Pisarenko I.V., Mikhailov D.V., Melnikov A.K., Dordopulo A.I. Resource-independent Description of Information Graphs with Distributive Operations in the Set@l Programming Language. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2022. Vol. 11, no. 2. P. 5-17. (in Russian) DOI: 10.14529/cmse220201.

This paper is distributed under the terms of the Creative Commons Attribution-Non Commercial 4-0 License which permits non-commercial use, reproduction and distribution of the work without further permission provided the original work is properly cited.

References

1. Levin I.I., Dordopulo A.I., Pisarenko L, et al. Resource-Independent Description of Information Graphs with Associative Operations in Set@l Programming Language. Parallel Computing Technologies, 16th International Conference, PaCT 2021, Kaliningrad, Russia, September 13-18, 2021. Proceedings. Vol. 12942 / ed. by V. Malyshkin. Springer, 2021. Lecture Notes in Computer Science. P. 74-87. DOI: 10.1007/978-3-030-86359-3_6.

2. Tan L., Jiang J. Digital Signal Processing: Fundamentals and Applications. 2nd ed. Oxford: Elsevier Science, 2013. 896 p.

3. Winser A., Cranos M.W. Digital Signal Processing: Principles, Algorithms and System

Design. London: Elsevier, 2017. 634 р.

4. Levin I.I., Dordopulo A.I., Pisarenko I.V., Melnikov A.K. Aspect-Oriented Set@l Language for Architecture-Independent Programming of High-Performance Computer Systems. Supercomputing. RuSCDays 2019. Vol. 1129 / ed. by L. Sokolinsky, M. Zymbler. Cham: Springer, 2019. P. 517-528. Communications in Computer and Information Science. DOI: 10.1007/978-3-030-36592-9_42.

5. Levin I.I., Dordopulo A.I., Pisarenko I.V., Melnikov A.K. Objects of Alternative Set Theory in Set@l Programming Language. Parallel Computing Technologies, 15th International Conference, PaCT 2019, Almaty, Kazakhstan, August 19-23, 2019. Proceedings. Vol. 11657 / ed. by V. Malyshkin. Springer, 2019. P. 18-31. Lecture Notes in Computer Science. DOI: 10.1007/978-3-030-25636-4_3.

6. Levin I.I., Dordopulo A.I., Pisarenko I.V., Melnikov A.K. Architecture-independent Set@l programming language for computer systems. Vestnik komp’iuternykh і informatsionnykh tekhnologii. 2019. No. 3. P. 48-56. DOI: 10.14489/vkit.2019.03.pp.048-056. (in Russian)

7. Karepova E.D. Fundamentals of Multithreaded and Parallel Programming. Krasnoyarsk: Publishing of the Siberian Federal University, 2016. 356 p. (in Russian)

8. Levin I.I., Dudko S.A. Equivalent Transformations of Some Kinds of Computing Structures of Non-linear Recurrent Expressions for Reconfigurable Computing Systems. Parallel Computational Technologies. Vol. 1437 / ed. by L. Sokolinsky, M. Zymbler. Cham: Springer, 2021. P. 3-17. Communications in Computer and Information Science. DOI: 10.1007/978-3-030-81691-9 1.

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