Научная статья на тему 'ПРИМЕНЕНИЕ МЕТОДА ПРОЕКТИРОВАНИЯ Q-ЭФФЕКТИВНЫХ ПРОГРАММ ДЛЯ АЛГОРИТМА ДЕЙКСТРЫ'

ПРИМЕНЕНИЕ МЕТОДА ПРОЕКТИРОВАНИЯ Q-ЭФФЕКТИВНЫХ ПРОГРАММ ДЛЯ АЛГОРИТМА ДЕЙКСТРЫ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
46
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ / Q-ДЕТЕРМИНАНТ АЛГОРИТМА / ПРЕДСТАВЛЕНИЕ АЛГОРИТМА В ФОРМЕ Q-ДЕТЕРМИНАНТА / Q-ЭФФЕКТИВНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМА / РЕСУРС ПАРАЛЛЕЛИЗМА АЛГОРИТМА / Q-ЭФФЕКТИВНАЯ ПРОГРАММА / АЛГОРИТМ ДЕЙКСТРЫ

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

Проблема повышения эффективности параллельных вычислений чрезвычайно актуальна. В статье впервые продемонстрировано применение концепции Q-детерминанта для эффективной реализации алгоритма на графах. Концепция Q-детерминанта основана на унифицированном представлении численных алгоритмов в форме Q-детерминанта. Q-детерминант позволяет выразить и оценить внутренний параллелизм алгоритма, а также показать способ его параллельного исполнения. В работе приведены основные понятия концепции Q-детерминанта, необходимые для понимания приведенного исследования. Также описан основанный на концепции Q-детерминанта метод проектирования эффективных программ для численных алгоритмов. Результатом применения метода является программа, полностью использующая ресурс параллелизма алгоритма. Такая программа называется Q-эффективной. В качестве первого применения метода проектирования Q-эффективных программ для алгоритмов на графах описано проектирование программ для реализации алгоритма Дейкстры на параллельных вычислительных системах с общей и распределенной памятью. Приведены также результаты экспериментального исследования разработанных программ, проведенного с помощью суперкомпьютера «Торнадо ЮУрГУ». На основе анализа результатов экспериментального исследования определяются динамические характеристики разработанных программ и выявляются особенности их выполнения. Проведенные в статье исследования дают возможность сделать вывод, что применение концепции Q-детерминанта с целью разработки эффективных программ возможно не только для численных алгоритмов, но и для алгоритмов на графах.

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

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

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

APPLICATION OF THE DESIGN METHOD FOR Q-EFFICIENT PROGRAMS IMPLEMENTING DIJKSTRA’S ALGORITHM

The problem of improving the efficiency of parallel computing is extremely relevant. The article demonstrates the initial application of the concept of Q-determinant for the effective implementation of graph algorithms. The concept of the Q-determinant is based on a unified representation of numerical algorithms in the form of the Q-determinant. The Q-determinant allows to express and evaluate the internal parallelism of the algorithm, as well as to show the method of its parallel execution. The article gives the main notions of the Q-determinant concept necessary for better understanding of our research. Also, we describe a method of designing effective programs for numerical algorithms on the base of the concept of the Q-determinant. As a result, we obtain the program, which uses the parallelism resource of the algorithm completely, and this program is called Q-effective. As the initial application of the method for design of Q-effective programs implementing graph algorithms, we describe the designing programs for Dijkstra’s algorithm implementation on parallel computing systems with shared and distributed memory. Finally, for the developed programs, we present the results of experiments on the Tornado SUSU supercomputer. Analyzing the results of the experimental study, we determine the effectiveness of the developed programs and identify features of their execution. The research described in the article leads to the conclusion that the application of the Q-determinant concept for the development of effective programs is possible not only for numerical algorithms, but also for graph algorithms.

Текст научной работы на тему «ПРИМЕНЕНИЕ МЕТОДА ПРОЕКТИРОВАНИЯ Q-ЭФФЕКТИВНЫХ ПРОГРАММ ДЛЯ АЛГОРИТМА ДЕЙКСТРЫ»

УДК 004.021, 004.032.24, 004.051 DOI: 10.14529/cmse230203

ПРИМЕНЕНИЕ МЕТОДА ПРОЕКТИРОВАНИЯ Q-ЭФФЕКТИВНЫХ ПРОГРАММ ДЛЯ АЛГОРИТМА

ДЕЙКСТРЫ

© 2023 В.Н. Алеева, П.А. Манатин

Южно-Уральский государственный университет (454 080 Челябинск, пр. им. В. И. Ленина, д. 76) E-mail: aleevavn@susu.ru, manatinpa@ya.ru Поступила в редакцию: 21.10.2022

Проблема повышения эффективности параллельных вычислений чрезвычайно актуальна. В статье впервые продемонстрировано применение концепции Q-детерминанта для эффективной реализации алгоритма на графах. Концепция Q-детерминанта основана на унифицированном представлении численных алгоритмов в форме Q-детерминанта. Q-детерминант позволяет выразить и оценить внутренний параллелизм алгоритма, а также показать способ его параллельного исполнения. В работе приведены основные понятия концепции Q-детерминанта, необходимые для понимания приведенного исследования. Также описан основанный на концепции Q-детерминанта метод проектирования эффективных программ для численных алгоритмов. Результатом применения метода является программа, полностью использующая ресурс параллелизма алгоритма. Такая программа называется Q-эффективной. В качестве первого применения метода проектирования Q-эффективных программ для алгоритмов на графах описано проектирование программ для реализации алгоритма Дейкстры на параллельных вычислительных системах с общей и распределенной памятью. Приведены также результаты экспериментального исследования разработанных программ, проведенного с помощью суперкомпьютера «Торнадо ЮУрГУ». На основе анализа результатов экспериментального исследования определяются динамические характеристики разработанных программ и выявляются особенности их выполнения. Проведенные в статье исследования дают возможность сделать вывод, что применение концепции Q-детерминанта с целью разработки эффективных программ возможно не только для численных алгоритмов, но и для алгоритмов на графах.

Ключевые слова: повышение эффективности параллельных вычислений, Q-детерминант алгоритма, представление алгоритма в форме Q-детерминанта, Q-эффективная реализация алгоритма, ресурс параллелизма алгоритма, Q-эффективная программа, алгоритм Дейкстры.

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

Алеева В.Н., Манатин П.А. Применение метода проектирования Q-эффективных программ для алгоритма Дейкстры // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2023. Т. 12, № 2. С. 62-77. DOI: 10.14529/cmse230203.

Введение

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

Целью данной работы является разработка эффективных программ для алгоритма Дейкстры [1] с помощью метода проектирования Q-эффективных программ на основе концепции Q-детерминанта. Для достижения цели решаются следующие задачи:

1) построение Q-детерминанта алгоритма Дейкстры;

2) описание Q-эффективной реализации алгоритма Дейкстры;

3) разработка параллельных программ для выполнимой Q-эффективной реализации алгоритма Дейкстры и исследование их динамических характеристик.

Статья относится к направлению исследований, целью которых является разработка эффективных параллельных программ, представленному работами [2-4], и вносит вклад в развитие этого направления. В данной статье описано проектирование эффективных программ, реализующих алгоритм Дейкстры на ПВС с общей и распределенной памятью.

Статья организована следующим образом. Она состоит из введения, четырех разделов и заключения. Раздел 1 содержит обзор работ по теме исследования. В разделе 2 приведены некоторые основные понятия концепции Q-детерминанта, используемые в статье, и изложен метод проектирования Q-эффективных программ [5]. В разделе 3 описано применение метода проектирования Q-эффективных программ для алгоритма Дейкстры. В разделе 4 представлены результаты экспериментального исследования динамических характеристик разработанных Q-эффективных программ, реализующих алгоритм Дейкстры. Заключение содержит краткое изложение полученных результатов и выводы об их применении.

1. Обзор работ по теме исследования

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

Очень важным и развитым направлением по исследованию параллельной структуры алгоритмов и программ с целью их реализации на ПВС является направление, основы которого изложены в [6, 7]. Результаты исследований данного направления используются при создании Интернет-энциклопедии AlgoWiki [8, 9]. В энциклопедии описываются свойства, особенности, статические и динамические характеристики конкретных алгоритмов. Это помогает реализовывать описанные алгоритмы эффективно. Однако в рамках данного направления программное исследование ресурса параллелизма алгоритмов не приводится. Кроме того, не предлагается технология создания параллельных программ, использующих весь ресурс параллелизма алгоритмов.

За время развития параллельных вычислений предложены различные подходы к разработке параллельных программ, созданы десятки языков параллельного программирования и множество различных инструментальных средств. Среди таких разработок отметим Т-систему [10, 11]. Она представляет среду программирования с поддержкой автоматического динамического распараллеливания программ. Однако нет оснований полагать, что создаваемые с помощью Т-системы параллельные программы используют ресурс параллелизма алгоритмов полностью.

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

ся [12, 13]. Подход является универсальным, но при его применении не исследуется использование ресурса параллелизма алгоритмов.

Для преодоления ресурсных ограничений в статье [14] предлагаются методы построения параллельных архитектурно-независимых программ с использованием функционального языка программирования. Однако отсутствуют исследования касательно использования создаваемыми программами полного ресурса параллелизма алгоритмов.

Существует много исследований, в которых при разработке параллельных программ учитывается специфика алгоритмов и архитектуры ПВС. В качестве примеров таких исследований можно привести [15-20]. Эти исследования повышают эффективность реализации конкретных алгоритмов или реализации алгоритмов на ПВС конкретной архитектуры. Однако они не предлагают универсального подхода. Важно отметить, что в таких исследованиях нет информации о степени использования ресурса параллелизма алгоритма.

Реализации алгоритма Дейкстры с помощью параллельных программ посвящено несколько работ, например, [21-23]. Существенным отличием этой работы является применение для алгоритма на графах концепции Q-детерминанта, которая позволяет разработать программы, называемые Q-эффективными. Такие программы являются эффективными. В данном исследовании мы применяем для них часто используемые вычислительные инфраструктуры, т.е. условия разработки и выполнения программ. Динамические характеристики программы зависят от ресурса параллелизма реализуемого алгоритма и ее вычислительной инфраструктуры [4]. Так как вычислительных инфраструктур существует потенциально бесконечное множество, то для алгоритма не существует Q-эффективной программы с лучшими динамическими характеристиками. Однако, Q-эффективная программа наиболее эффективна для той вычислительной инфраструктуры, для которой она создавалась [4]. Для представления входных данных при вычислении кратчайших расстояний от выделенной вершины графа до всех остальных вершин в данном исследовании используется матрица смежности. Применение другого представления данных влечет то, что будет другой алгоритм для решения той же задачи. Новый алгоритм будет иметь другой Q-детерминант и, возможно, другой ресурс параллелизма алгоритма. Поэтому для сравнения наших результатов с другими нужно использовать те же алгоритм и вычислительную инфраструктуру, которые используются в нашем случае. Конечно, для данного алгоритма более хорошие динамические характеристики могут получиться при использовании другой инфраструктуры, но это будет лишь отражением выбора инфраструктуры. Следует отметить, что найти аналогичный результат практически невозможно, так как, как правило, работы не содержат описания всех характеристик вычислительной инфраструктуры.

2. Некоторые основные понятия концепции Q-детерминанта

Пусть а — алгоритм для решения алгоритмической проблемы у = F(N,B), где N = {щ, П2,..., rife} — множество параметров размерности или пустое множество, В — множество входных данных, у = {у\, у2, ■ ■ ■, у к} — множество выходных данных, N — вектор (ni,ra2, • • •, Пк), где щ — некоторое значение параметра щ, {IV} — множество всевозможных векторов N, Q — множество операций, используемых алгоритмом а.

Определение 1. Любое однозначное отображение w: {У} -э V. где V — множество всех выражений над В и Q, называется безусловным Q-термом.

Определение 2. Если при любом N £ {/V} и любой интерпретации переменных В w (iV) принимает значение логического типа, то w называется безусловным логическим Q -термом.

Определение 3. Пусть щ, U2, ■ ■■, Щ — безусловные логические Q-термы, W\,W2, ■ ■ ■ ,wi — безусловные Q-термы. Множество пар (щ,УО{), где г=1,2,обозначается

(и, w) = {(щ, Wi)}i=i,...,i и называется условным Q-термом длины I. Счетное множество пар безусловных Q-термов (u,w) = {(ui,Wi)}i=1,2,... называется условным бесконечным Q-термом, если (u,w) = {(it*, гг*) Д= 1 1 является условным Q-термом для любого

конечного I.

Определение 4. Под вычислением безусловного Q-терма w при интерпретации В следует понимать вычисление выражения w (iV) при некотором N £ {iV} . Для вычисления при заданной интерпретации В и N £ {iV} условного Q-терма (u,w) = {(щ, гУг)}г=15..д необходимо найти такие щ0 (iV) ,Wi0 (iV), что щ0 (iV) принимает значение true, а значение Wi0 (iV) определено. В качестве значения (u,w) нужно взять Wi0 (^V). Если установлено, что выражений щ0 {N'j, Wi0 (iV) не существует, то значение (u,w) для данной интерпретации В и N не определено. Вычисление условного бесконечного Q-терма определяется аналогично.

Определение 5. Предположим, что I\, /2, /3 — подмножества множества I = (1 ,...,т) такие, что: одно или два из множеств Jj (г = 1,2,3) могут быть пустыми,

/1 U /2 U Д = I, Ii П Ij = 0, где г у- j. Множество Q-термов удовлетворяет условиям:

fh = w11 (h £ /1) — безусловный Q-терм, Д2 = {u,w) = {{и]2, ir}2)}j=i,...,i (г2 £ h) — условный Q-терм, /г3 = (u,w) = {(/и*3, гт*3)}г3=1,2,... (h £ h) ~ условный бесконечный Q-терм. Если алгоритм а состоит в том, что для определения у* (г £ I) требуется вычислить Q-терм Д, то множество Q-термов Д (г £ I) называется Q-детерминантом алгоритма, а представление алгоритма в виде у* = Д (г £ I) — представлением в форме Q-детерминанта [2].

Определение 6. Реализацией алгоритма, представленного в форме Q-детерминанта, называется вычисление Q-термов при заданной интерпретации входных данных. Реализация алгоритма называется Q-эффективной, если выражения вида: W (IV) =

р1 (Д £ h); uj (N) , wf (N) (г2 £ Z2;j = 1,2,..., k2); uj (N) , wf (N) (i3 £ /3; j = 1,2,...,)} вычисляются одновременно и операции при этом выполняются по мере готовности. Такая реализация лучше всего использует ресурс параллелизма [3].

Определение 7. Реализация алгоритма называется выполнимой, если одновременно должно выполняться конечное (непустое) множество операций. Существуют алгоритмы, Q-эффективная реализация которых невыполнима [4].

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

Метод состоит из следующих этапов:

1) построение Q-детерминанта алгоритма;

2) описание Q-эффективной реализации алгоритма;

3) разработка параллельной программы для выполнимой Q-эффективной реализации алгоритма (см. определение 7).

Этот метод возможно применять для разработки <3~эФФективных программ как для общей памяти, так и для распределенной памяти с применением модели «Master-Slave». Применение данного метода подробно описано в следующем разделе.

3. Применение метода проектирования (^-эффективных программ для эффективной реализации алгоритма Дейкстры

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

Алгоритм реализуется следующим образом.

1. Инициализируется вектор посещенных вершин р и вектор расстояний г.

2. Заполняется вектор расстояний г из матрицы смежности А значениями расстояний от начальной вершины до всех остальных вершин.

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

4. Выбранная вершина помечается как посещенная в векторе посещенных вершин р.

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

6. Алгоритм возвращается к шагу 3.

7. Конец алгоритма.

Таким образом, критерием завершения алгоритма является выполнение такого условия, что все компоненты вектора посещенных вершин р являются помеченными. Очевидно, что цикл из шагов 3-6 повторяется п раз.

3.1. Представление алгоритма в форме Q-детерминанта

Опишем представление в форме Q-детерминанта для алгоритма Дейкстры. В данном алгоритме используется граф, представленного в виде матрицы смежности А с количеством вершин п, где А = [а^ J=1 п — матрица смежности простого ориентированного взвешенного графа. Пусть р = (щ,... ,рп) — вектор посещенных вершин, а г = (щ,..., гп) — вектор расстояний от вершины г\ до вершины г*, где % = 1,... ,п. Процесс работы алгоритма можно представить как определенный процесс отметки вершин в векторе р, за которым следует процесс заполнения по определенному правилу вектора расстояний г. Таким образом, получаем алгоритм 5, реализующий алгоритм Дейкстры.

Процесс работы алгоритма 5 на к-ом этапе можно представить в виде итераций:

rj если rj 1 < rf + dij rf + a,ij, если rf _1 > rf + %•

) гДе j — 1,..., 7?., ^ Ф h Ф 0)

(1)

\/i E (1,..., n) : rf = min ^rf _1 j A Pi = false.

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

Этап 1. Система уравнений

ri = { (“!’ А) . • • •. (%<«). <(„)) ф(1.(2)

является представлением алгоритма 5 в форме Q-детерминанта, состоящий из п условных Q-термов длины д(п), где д{п) — функция, определяющая длину Q-терма в зависимости от количества вершин п.

Этап 2. Опишем Q-эффективную реализацию алгоритма 5. В рамках реализации алгоритма необходимо поочередно выполнять вычисление г^, к = 1,,п. Когда будет выполнен последний шаг, будет получено решение поставленной задачи. Q-эффективная реализация алгоритма является выполнимой, так как при реализации одновременно необходимо выполнять конечное число операций.

Этап 3. Данную реализацию можно использовать для разработки Q-эффективной программы для общей памяти. Опишем процесс реализации алгоритма 5 для распределенной памяти с использованием модели «Master-Slave», при котором используется один вычислительный узел «Master» (обозначается буквой М) и несколько вычислительных узлов «Slave» (обозначаются буквой S). При подобной организации общие данные для узлов S на очередной итерации рассылаются и затем результаты вычислений от них обрабатываются только узлом М, что во многих случаях сокращает частоту обмена данными между узлами.

1. Каждая компонента вектора г вычисляется на отдельном узле S. Если количество узлов S меньше п, то узлы S должны выполнять вычисления для нескольких компонент вектора. Перед вычислением г®, где i Е {1,2,...,п}, узел S получает от узла М строку матрицы А с номером г.

2. Полученные на узлах S результаты, являющиеся компонентами вектора г°, передаются на узел М для вычисления поэлементных минимумов вектора

3. Аналогично шагу 1, производится вычисление г1 на узлах S.

4. Полученные на узлах S результаты, являющиеся компонентами вектора г1 , передаются на узел М для вычисления поэлементных минимумов вектора г1.

5. Если компоненты вектора г° не равны компонентам вектора г1, итерации алгоритма 5 продолжаются аналогично шагам 3-5.

4. Разработка и экспериментальное исследование Q-эффективных программ

В нашем исследовании при разработке Q-эффективных программ используются:

1) язык программирования С++11;

2) компилятор GCC версии 10.1.0 с поддержкой стандарта ОрепМР без использования опций оптимизации;

3) библиотека OpenMPI версии 2.1.0, реализующая технологию MPI для ПВС с распределенной памятью.

Технология ОрепМР позволяет распределить итерации циклов между нитями при инициализации входных данных и обновлении значений промежуточных данных на очередном этапе выполнения алгоритма. Технология МPI используется для распределения элементов данных по вычислительным узлам, решения на данных узлах локальных задач и использования полученных результатов для решения исходной задачи по некоторым правилам.

Для выполнения Q-эффективной реализации алгоритма 5 были разработаны Q-эффективные программы для общей памяти и для распределенной памяти с применением модели «Master-Slave», проектирование которых описано в разделе 3.

Для всех разработанных программ было проведено экспериментальное исследование динамических характеристик. Оно проводилось на суперкомпьютере «Торнадо» Южно-Уральского государственного университета. Для программы для общей памяти был использован один вычислительный узел, для распределенной памяти — несколько вычислительных узлов. В экспериментах у каждого из использованных вычислительных узлов были задействованы все имеющиеся два центральных процессора Intel Xeon Х5680 с частотой 3.33 ГГц, каждый из которых имеет 6 ядер и поддерживает 12 нитей [24]. Таким образом, на каждом узле может одновременно выполняться до 24 нитей.

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

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

На основании полученных измерений времени выполнения определяются следующие динамические характеристики программ [7].

1. Ускорение — отношение времени выполнения программы для общей памяти, выполняемой на одном ядре одного вычислительного узла с использованием одной нити (назовем ее последовательной) ко времени выполнения параллельной программы.

2. Эффективность — отношение ускорения к количеству используемых параллельной программой вычислителей. Количество вычислителей, используемых программой для об-

Количество вершин графа, тыс.

Ускорение

■ 1.7-1.8

□ 1.6-1.7

■ 1.5-1.6

□ 1.4-1.5

■ 1.3-1.4

Количество нитеи

Количество вершин графа, тыс.

Эффективность

■ 0.14-0.16 □ 0.12-0.14

■ 0.10-0.12

Количество нитей

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

а) ускорение

Ь) эффективность

с) время выполнения

Рис. 1. Динамические характеристики программы для общей памяти

щей памяти, соответствует количеству нитеи, а используемых программой для распределенной памяти — количеству вычислительных узлов.

На рис. 1 показаны графики времени выполнения, ускорения и эффективности Q-эффективной программы для общей памяти. Рисунок 2 содержит графики времени выполнения, ускорения и эффективности Q-эффективной программы для распределенной памяти. На данных графиках в качестве значений указаны соответствующие значения выборочных средних.

Охарактеризуем результаты экспериментального исследования.

1. Величина ускорения Q-эффективной программы для общей памяти в зависимости от количества вычислителей и вершин графа варьируется в диапазоне 1.3-1.8. Минимальное ускорение достигнуто при минимальном числе вершин графа (2 тыс.) и минимальном количестве вычислителей (6 нитей), также при данном сочетании достигнута наименьшая разница во времени выполнения последовательной и параллельной программ. Ускорение возрастает по мере роста числа вершин графа, затем достигает максималь-

Количество вершин графа, тыс.

о

•л

Количество вычислительных узлов

а) ускорение

Количество вершин графа, тыс.

2 8 16 24 32 40

Ь) эффективность

с) время выполнения

Рис. 2. Динамические характеристики Q-эффективной программы для распределенной

памяти

ного значения, равного около 1.8, при работе 18 вычислителей и наличии 9 тыс. вершин графа. При таком сочетании параметров достигается наибольший эффект от использования многопоточности. Далее значение ускорения плавно уменьшается до значения около 1.6 по мере дальнейшего роста числа вершин графа, что указывает на ухудшение локальности данных алгоритма.

2. Q-эффективная программа для распределенной памяти при большинстве сочетаний параметров может продемонстрировать большее ускорение относительно Q-эффективной программы для общей памяти. Величина ускорения относительно последовательной программы в зависимости от количества вычислителей и числа вершин графа варьируется в диапазоне 1.2-6.0. Зависимость ускорения Q-эффективной программы для распределенной памяти от изучаемых факторов имеет сложный характер. Описание этой зависимости приведены в следующих пунктах.

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

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

5. Ускорение программы для распределенной памяти, равно как и программы для общей памяти, не зависит линейно от количества вычислителей. Это связано с тем, что по мере увеличения количества вычислителей растут и накладные расходы. В случае программы для общей памяти они связаны с организацией работы нитей, а в случае программы для распределенной памяти, кроме того — с увеличением в общем времени выполнения доли задержек в коммуникационной среде по мере роста общего числа передаваемых узлами сообщений, хоть и становящихся меньшими по объему.

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

Заключение

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

1) построение Q-детерминанта алгоритма Дейкстры;

2) описание Q-эффективной реализации алгоритма Дейкстры;

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

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

Проведенное исследование пополнило коллекцию алгоритмов, для которых разработаны Q-эффективные программы и оценены их динамические характеристики. Применение

метода проектирования Q-эффективных программ решает проблему наиболее полного использования ресурса параллелизма численных алгоритмов и тем самым делает возможной эффективную реализацию численных алгоритмов на ПВС. Программная Q-система для исследования ресурса параллелизма численных алгоритмов [25, 26] метод проектирования Q-эффективных программ и технология (^-эффективного программирования [5] в комплексе являются одним из решений проблемы повышения эффективности параллельных вычислений, использующих численные алгоритмы. Их могут применять разработчики программного обеспечения для проектирования эффективных программ, предназначенных для любых ПВС — от персональных компьютеров с многоядерными процессорами до суперкомпьютеров. Это приведет к уменьшению времени выполнения программного обеспечения и более полному использованию ресурсов вычислительных систем.

Литература

1. Dijkstra E.W. A note on two problems in connexion with graphs // Numerische Mathematik. 1959. Vol. 1, no. 1. P. 269-271. DOI: 10.1007/BF01386390.

2. Алеева B.H., Алеев Р.Ж. Применение Q-детерминанта численных алгоритмов для параллельных вычислений // Параллельные вычислительные технологии (ПаВТ’2019): Труды международной научной конференции, Калининград, 2-4 апреля 2019. Короткие статьи и описания плакатов. Челябинск: Издательский центр ЮУрГУ, 2019. С. 133-145.

3. Алеева В.Н. Основные положения технологии Q-эффективного программирования // Наука ЮУрГУ. Секции технических наук: материалы 71-й научной конференции, Челябинск, апрель 2019. Челябинск: Издательский центр ЮУрГУ, 2019. С. 334-342.

4. Алеева В.Н., Шатов М.Б. Применение концепции Q-детерминанта для эффективной реализации численных алгоритмов на примере метода сопряженных градиентов для решения систем линейных уравнений // Вестник Южно-Уральского государственного университета. Серия: Вычислительная математика и информатика. 2021. Т. 10, № 3. С. 56-71. DOI: 10.14529/cmse210304.

5. Aleeva V.N. Improving Parallel Computing Efficiency // Proceedings - 2020 Global Smartlndustry Conference, GloSIC 2020, Chelyabinsk, Russia, November 17-19, 2020. IEEE, 2020. P. 113-120. Article number 9267828. DOI: 10.1109/GloSIC50886.2020.9267828.

6. Voevodin V.V., Voevodin VI.V. The V-Ray technology of optimizing programs to parallel computers // Numerical Analysis and Its Applications. WNAA 1996. Vol. 1196 / ed. by L.G. Vulkov, P. Yalamov, J. Wasniewski. Springer, 1997. P. 546-556. LNCS. DOI: 10.1007/3-540-62598-4_ 136.

7. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб.: БХВ-Петербург, 2002. 608 с.

8. Voevodin VI., Antonov A., Dongarra J. AlgoWiki: an Open Encyclopedia of Parallel

Algorithmic Features // Supercomputing Frontiers and Innovations. 2015. Vol. 2, no. 1. P. 4-18. DOI: 10.14529/jsfil50101.

9. Voevodin VI., Antonov A., Dongarra J. AlgoWiki Project as an Extension of the Top500 Methodology // Supercomputing Frontiers and Innovations. 2018. Vol. 5, no. 1. P. 4-10. DOI: 10.14529/jshl80101.

10. Абрамов С.М., Адамович А.И., Коваленко М. Р. Т-система - среда программирования с поддержкой автоматического динамического распараллеливания программ. Пример реализации алгоритма построения изображений методом трассировки лучей / / Программирование. 1999. Т. 25, № 2. С. 100-107.

11. Абрамов С.М., Васенин В.А., Мамчиц Е.Е. и др. Динамическое распараллеливание программ на базе параллельной редукции графов. Архитектура программного обеспечения новой версии Т-системы // Научная сессия МИФИ-2001, 22-26 января 2001: Сборник научных трудов. Т. 2. 2001. С. 234.

12. Malyshkin V.E., Perepelkin V.A., Schukin G.F. Distributed Algorithm of Data Allocation in the Fragmented Programming // Parallel Computing Technologies (PaCT’2015): Proceedings of the 13th International Scientific Conference, Petrozavodsk, Russia, August 31 -September 4, 2015. Proceedings. Vol. 9251 / ed. by V. Malyshkin. Springer, 2015. P. 80-85. LNCS. DOI: 10.1007/978-3-319-21909-7_8.

13. Malyshkin V.E., Perepelkin V.A., Tkacheva A.A. Control Flow Usage to Improse Performanse of Fragmented // Parallel Computing Technologies (PaCT’2015): Proceedings of the 13th International Conference, Petrozavodsk, Russia, August 31 - September 4, 2015. Proceedings. Vol. 9251 / ed. by V. Malyshkin. Springer, 2015. P. 86-90. LNCS. DOI: 10.1007/978-3-319-21909-7_9.

14. Легалов А.И. Функциональный язык для создания архитектурно-независимых параллельных программ // Вычислительные технологии. 2005. Т. 1, № 10. С. 71-89.

15. Gurieva Y.L., Il’in V.P. On Parallel Computational Technologies of Augmented Domain

Decomposition Methods // Parallel Computing Technologies (PaCT’2015): Proceedings

of the 13th International Conference, Petrozavodsk, Russia, August 31 - September 4, 2015. Proceedings. Vol. 9251. / ed. by V. Malyshkin. Springer, 2015. P. 35-46. LNCS. DOI: 10.1007/978-3-319-21909-7_4.

16. Schlueter M., Munetomo M. Parallelization strategies for evolutionary algorithms for MINLP // IEEE Congress on Evolutionary Computation, Cancun, Mexico, June 23-25, 2013. P. 635-641. DOI: 10.1109/CEC.2013.6557628.

17. Wang Q., Liu J., Tang X., et al. Accelerating embarrassingly parallel algorithm on Intel MIC // IEEE International Conference on Progress in Informatics and Computing, Shanghai, China, May 16-18, 2014. P. 213-218. DOI: 10.1109/PIC.2014.6972327.

18. Li Y., Dou W., Yang K., et al. Optimized Data I/O Strategy of the Algorithm of Parallel Digital Terrain Analysis // 13th International Symposium on Distributed Computing and Applications to Business, Engineering and Science, Xi’an, China, November 24-27, 2014. P. 34-37. DOI: 10.1109/DCABES.2014.10.

19. Prifti V., Bala R., Tafa I., et al. The time profit obtained by parallelization of quicksort algorithm used for numerical sorting // Science and Information Conference (SAI), London, UK, July 28-30, 2015. P. 897-901. DOI: 10.1109/SAI.2015.7237248.

20. Rajashri A. Parallelization of shortest path algorithm using OpenMP and MPI // International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC), Palladam, India, February 10-11, 2017. P. 304-309. DOI: 10.1109/I-SMAC.2017.8058360.

21. Fazio М., Buzachis A., Galletta A., et al. A Map-Reduce Approach for the Dijkstra Algorithm in SDN Over Osmotic Computing Systems // International Journal of Parallel Programming. 2021. Vol. 49, no. 3. P. 347-375. DOI: 10.1007/sl0766-021-00693-3.

22. Zhang W., Zhang L., Chen Y. Asynchronous Parallel Dijkstra’s Algorithm on Intel Xeon Phi Processor // International Conference on Algorithms and Architectures for Parallel Processing. 2018. P. 337-357. DOI: 10.1007/978-3-030-05051-l_24.

23. Jasika N., Alispahic N., Elma A.,et al. Dijkstra’s shortest path algorithm serial and parallel execution performance analysis // 2012 Proceedings of the 35th International Convention MIPRO, Opatija, Croatia, May 21-25, 2012. P. 1811-1815. URL: https: //ieeexplore. ieee. org/document/6240942/ (дата обращения: 14.03.2023).

24. Биленко P.B., Долганина Н.Ю., Иванова Е.В., Рекачинский А.И. Высокопроизводительные вычислительные ресурсы Южно-Уральского государственного университета / / Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2022. Т. 11, № 1. С. 15-30. DOI: 10.14529/cmse220102.

25. Алеева В.Н., Зотова П.С., Склезнев Д.С. Расширение возможностей исследования ресурса параллелизма численных алгоритмов с помощью программной Q-системы / / Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2021. Т. 10, № 2. С. 66-81. DOI: 10.14529/cmse210205.

26. Aleeva V., Bogatyreva Е., Skleznev A., et al. Software Q-system for the Research of the Resource of Numerical Algorithms Parallelism // Supercomputing. Vol. 1129 / ed. by V. Voevodin, S. Sobolev. Springer, 2019. P. 641-652. Communications in Computer and Information Science. DOI: 10.1007/978-3-030-36592-9_52.

Алеева Валентина Николаевна, к.ф.-м.н., доцент, кафедра системного программирования, Южно-Уральский государственный университет (национальный исследовательский университет) (Челябинск, Российская Федерация)

Манатин Павел Андреевич, студент, кафедра системного программирования, Южно-Уральский государственный университет (национальный исследовательский университет) (Челябинск, Российская Федерация)

DOI: 10.14529/ cmse230203

APPLICATION OF THE DESIGN METHOD FOR Q-EFFICIENT PROGRAMS IMPLEMENTING DIJKSTRA’S ALGORITHM

© 2023 V.N. Aleeva, P.A. Manatin

South Ural State University (pr. Lenina 76, Chelyabinsk, 454080 Russia)

E-mail: aleevavn@susu.ru, manatinpa@ya.ru Received: 21.10.2022

The problem of improving the efficiency of parallel computing is extremely relevant. The article demonstrates the initial application of the concept of Q-determinant for the effective implementation of graph algorithms. The concept of the Q-determinant is based on a unified representation of numerical algorithms in the form of the Q-determinant. The Q-determinant allows to express and evaluate the internal parallelism of the algorithm, as well as to show the method of its parallel execution. The article gives the main notions of the Q-determinant concept necessary for better understanding of our research. Also, we describe a method of designing effective programs for numerical algorithms on the base of the concept of the Q-determinant. As a result, we obtain the program, which uses the parallelism resource of the algorithm completely, and this program is called Q-effective. As the initial application of the method for design of Q-effective programs implementing graph algorithms, we describe the designing programs for Dijkstra’s algorithm implementation on parallel computing systems with shared and distributed memory. Finally, for the developed programs, we present the results of experiments on the Tornado SUSU supercomputer. Analyzing the results of the experimental study, we determine the effectiveness of the developed programs and identify features of their execution. The research described in the article leads to the conclusion that the application of the Q-determinant concept for the development of effective programs is possible not only for numerical algorithms, but also for graph algorithms.

Keywords: improving parallel computing efficiency, Q-determinant of algorithm, representation of algorithm in the form of Q-determinant, Q-effective implementation of algorithm, parallelism resource of algorithm, Q-effective program, Dijkstra’s algorithm.

FOR CITATION

Aleeva V.N., Manatin P.A. Application of the Design Method for Q-effective Programs Implementing Dijkstra’s Algorithm. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2023. Vol. 12, no. 2. P. 62-77. (in Russian) DOI: 10.14529/cmse230203.

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. Dijkstra E.W. A note on two problems in connexion with graphs. Numerische Mathematik. 1959. Vol. 1, no. 1. P. 269-271. DOI: 10.1007/BF01386390.

2. Aleeva V.N., Aleev R.Zh. Application of the Q-determinant of numerical algorithms for parallel computing. Parallel Computational Technologies (PCT’2019): Proceedings of the International Conference, Kaliningrad, Russia, April 2-4, 2019. Short articles and poster descriptions. Chelyabinsk: SUSU Publishing Center, 2019. P. 133-145. (in Russian)

3. Aleeva V.N. The fundamentals of Q-effective programming technology. Science of SUSU. Sections of Technical Sciences: materials of the 71st Scientific Conference, Chelyabinsk,

Russia, April 2019. Chelyabinsk: SUSU Publishing Center, 2019. P. 334-342. (in Russian)

4. Aleeva V.N., Shatov M.B. Application of the Q-determinant Concept for Efficient Implementation of Numerical Algorithms by the Example of the Conjugate Gradient Method for Solving Systems of Linear Equations. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2021. Vol. 10, no. 3. P. 56-71. (in Russian) DOI: 10.14529/cmse210304.

5. Aleeva V.N. Improving Parallel Computing Efficiency. Proceedings - 2020 Global Smart Industry Conference, GloSIC 2020, Chelyabinsk, Russia, November 17-19, 2020. IEEE, 2020. P. 113-120. Article number 9267828. DOI: 10.1109/GloSIC50886.2020.9267828.

6. Voevodin V.V., Voevodin VI.V. The V-Ray technology of optimizing programs to parallel computers. Numerical Analysis and Its Applications. WNAA 1996. Vol. 1196 / ed. by L.G. Vulkov, P. Yalamov, J. Wasniewski. Springer, 1997. P. 546-556. LNCS. DOI: 10.1007/3-540-62598-4_ 136.

7. Voevodin V.V., Voevodin VI.V. Parallel Computing. St. Petersburg: BHV-Petersburg, 2002. 608 p. (in Russian)

8. Voevodin VI., Antonov A., Dongarra J. AlgoWiki: an Open Encyclopedia of Parallel

Algorithmic Features. Supercomputing Frontiers and Innovations. 2015. Vol. 2, no. 1. P. 4-18. DOI: 10.14529/jsfil50101.

9. Voevodin VI., Antonov A., Dongarra J. AlgoWiki Project as an Extension of the Top500 Methodology. Supercomputing Frontiers and Innovations. 2018. Vol. 5, no. 1. P. 4-10. DOI: 10.14529/jsfil80101.

10. Abramov S.M., Adamovich A.I., Kovalenko M. R. T-system programming environment with support for automatic dynamic parallelization of programs. An example of the implementation of an algorithm for constructing images by ray tracing. Programming. 1999. Vol. 25, no. 2. P. 100-107. (in Russian)

11. Abramov S.M., Vasenin V.A., Mamchits E.E., et al. Dynamic parallelization of programs based on parallel graph reduction. Software architecture of the new version of the T-system. Scientific session of MEPhI-2001, January 22-26, 2001: Collection of scientific papers. Vol. 2. 2001. P. 234. (in Russian)

12. Malyshkin V.E., Perepelkin V.A., Schukin G.F. Distributed Algorithm of Data Allocation in the Fragmented Programming. Parallel Computing Technologies (PaCT’2015): Proceedings of the 13th International Scientific Conference, Petrozavodsk, Russia, August 31 - September 4, 2015. Proceedings. Vol. 9251 / ed. by V. Malyshkin. Springer, 2015. P. 80-85. LNCS. DOI: 10.1007/978-3-319-21909-7_8.

13. Malyshkin V.E., Perepelkin V.A., Tkacheva A.A. Control Flow Usage to Improse Performanse of Fragmented. Parallel Computing Technologies (PaCT’2015): Proceedings of the 13th International Conference, Petrozavodsk, Russia, August 31 - September 4, 2015. Proceedings. Vol. 9251 / ed. by V. Malyshkin. Springer, 2015. P. 86-90. LNCS. DOI: 10.1007/978-3-319-21909-7_9.

14. Legalov A.I. Functional language for architecturally independent parallel programs creating. Computational Technologies. 2005. Vol. 1, no. 10. P. 71-89. (in Russian)

15. Gurieva Y.L., Il’in V.P. On Parallel Computational Technologies of Augmented Domain

Decomposition Methods. Parallel Computing Technologies (PaCT’2015): Proceedings of

the 13th International Conference, Petrozavodsk, Russia, August 31 - September 4, 2015. Proceedings. Vol. 9251. / ed. by V. Malyshkin. Springer, 2015. P. 35-46. LNCS. DOI: 10.1007/978-3-319-21909-7_4.

16. Schlueter M., Munetomo M. Parallelization strategies for evolutionary algorithms for MINLP. IEEE Congress on Evolutionary Computation, Cancun, Mexico, June 23-25, 2013. P. 635-641. DOI: 10.1109/CEC.2013.6557628.

17. Wang Q., Liu J., Tang X., et al. Accelerating embarrassingly parallel algorithm on Intel MIC. IEEE International Conference on Progress in Informatics and Computing, Shanghai, China, May 16-18, 2014. P. 213-218. DOI: 10.1109/PIC.2014.6972327.

18. Li Y., Dou W., Yang K., et al. Optimized Data I/O Strategy of the Algorithm of Parallel Digital Terrain Analysis. 13th International Symposium on Distributed Computing and Applications to Business, Engineering and Science, Xi’an, China, November 24-27, 2014. P. 34-37. DOI: 10.1109/DCABES.2014.10.

19. Prifti V., Bala R., Tafa I., et al. The time profit obtained by parallelization of quicksort algorithm used for numerical sorting. Science and Information Conference (SAI), London, UK, July 28-30, 2015. P. 897-901. DOI: 10.1109/SAI.2015.7237248.

20. Rajashri A. Parallelization of shortest path algorithm using OpenMP and MPI. International Conference on I-SMAC (IoT in Social, Mobile, Analytics and Cloud) (I-SMAC), Palladam, India, February 10-11, 2017. P. 304-309. DOI: 10.1109/I-SMAC.2017.8058360.

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

21. Fazio M., Buzachis A., Galletta A., et al. A Map-Reduce Approach for the Dijkstra Algorithm in SDN Over Osmotic Computing Systems. International Journal of Parallel Programming. 2021. Vol. 49, no. 3. P. 347-375. DOI: 10.1007/sl0766-021-00693-3.

22. Zhang W., Zhang L., Chen Y. Asynchronous Parallel Dijkstra’s Algorithm on Intel Xeon Phi Processor International Conference on Algorithms and Architectures for Parallel Processing. 2018. P. 337-357. DOI: 10.1007/978-3-030-05051-l_24.

23. Jasika N., Alispahic N., Elma A., et al. Dijkstra’s shortest path algorithm serial and parallel execution performance analysis. 2012 Proceedings of the 35th International Convention MIPRO, Opatija, Croatia, May 21-25, 2012. P. 1811-1815. URL: https: //ieeexplore. ieee. org/document/6240942/ (accessed: 14.03.2023).

24. Bilenko R.V., Dolganina N.Yu., Ivanova E.V., Rekachinsky A.I. High-performance computing resources of South Ural State University. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2022. Vol. 11, no. 1. P. 15-30. DOI: 10.14529/cmse220102.

25. Aleeva V.N., Zotova P.S., Skleznev D.S. Advancement of research for the parallelism resourceof numerical algorithms with help of software Q-system. Bulletin of the South Ural State University. Series: Computational Mathematics and Software Engineering. 2021. Vol. 10, no. 2. P. 66-81. (in Russian) DOI: 10.14529/cmse210205.

26. Aleeva V., Bogatyreva E., Skleznev A., et al. Software Q-system for the Research of the Resource of Numerical Algorithms Parallelism. Supercomputing. Vol. 1129 / ed. by V. Voevodin, S. Sobolev. Springer, 2019. P. 641-652. Communications in Computer and Information Science. DOI: 10.1007/978-3-030-36592-9_52.

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