Научная статья на тему 'ВЫДЕЛЕНИЕ ЯВНОГО УРОВНЯ РЕАЛИЗАЦИИ АЛГОРИТМОВ ДЛЯ ИСПОЛЬЗОВАНИЯ В ПРОЕКТЕ ALGO500'

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

CC BY
32
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ALGO500 / ALGOWIKI / ЗАДАЧА / МЕТОД / АЛГОРИТМ / РЕАЛИЗАЦИЯ / СУПЕРКОМПЬЮТЕР / РЕЙТИНГ

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

Исследование и описание свойств алгоритмов крайне важно для их эффективной реализации на различных типах целевых программно-аппаратных платформ. Этой актуальной задаче посвящен проект создания Открытой энциклопедии свойств алгоритмов AlgoWiki, начатый в Московском государственном университете имени М.В. Ломоносова в 2014 году. В рамках проекта была предложена единая универсальная схема описания свойств алгоритмов, в которой особое внимание уделялось свойствам, связанным с параллелизмом. Множество описанных по данной схеме алгоритмов послужило основой описания структуры предметной области в рамках иерархической схемы «Задача-Метод-Алгоритм-Реализация». Однако для дальнейшего развития проекта AlgoWiki потребовалось выделить реализации алгоритмов, ранее включенные в описания свойств алгоритмов, в отдельную сущность. В данной статье изложена схема описания свойств реализаций алгоритмов, также как и модификация изначальной схемы описания свойств самих алгоритмов. Преобразование описаний в энциклопедии AlgoWiki по данной схеме было выполнено для всех страниц проекта, и оно позволяет как более качественно описывать свойства реализаций алгоритмов, так и интегрировать проект энциклопедии AlgoWiki с проектом Algo500, реализующим масштабируемую цифровую платформу для совместного анализа свойств алгоритмов и компьютерных архитектур.

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

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

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

EXTRACTION OF AN EXPLICIT LEVEL OF ALGORITHM IMPLEMENTATION FOR USE IN THE ALGO500 PROJECT

The study and description of the algorithm properties is extremely important for their effective implementation on various types of target software and hardware platforms. This topical task is the subject of a project to create an AlgoWiki Open encyclopedia of parallel algorithmic features, launched at Lomonosov Moscow State University in 2014. Within the framework of the project, a unified universal scheme for describing the algorithm properties was proposed, in which special attention to the properties associated with parallelism was paid. The set of algorithms described according to this scheme served as the basis for describing the structure of the subject area within the framework of the “Problem-Method-Algorithm-Implementation” hierarchical scheme. However, for the further development of the AlgoWiki project, it was necessary to separate the implementations of the algorithms that were previously included in the descriptions of the properties of the algorithms. This paper presents a scheme for describing the properties of algorithm implementations, as well as a modification of the original scheme for describing the properties of the algorithms themselves. The transformation of descriptions in the AlgoWiki encyclopedia according to this scheme was performed for all pages of the project, and it allows not only to better describe the properties of algorithm implementations, but also to integrate the AlgoWiki encyclopedia project with the Algo500 project, which implements a scalable digital platform for joint analysis of the properties of algorithms and computer architectures.

Текст научной работы на тему «ВЫДЕЛЕНИЕ ЯВНОГО УРОВНЯ РЕАЛИЗАЦИИ АЛГОРИТМОВ ДЛЯ ИСПОЛЬЗОВАНИЯ В ПРОЕКТЕ ALGO500»

УДК 004.421, 519.688

DOI: 10.14529/cmse230105

ВЫДЕЛЕНИЕ ЯВНОГО УРОВНЯ РЕАЛИЗАЦИИ АЛГОРИТМОВ ДЛЯ ИСПОЛЬЗОВАНИЯ В ПРОЕКТЕ

ALGO500

© 2023 А.С. Антонов

Научно-иссследователъский вычислительный центр Московского государственного университета имени М.В. Ломоносова (119234 Москва, ул. Ленинские горы, д. 1, стр. 4)

E-mail: asa@parallel.ru Поступила в редакцию: 03.12.2022

Исследование и описание свойств алгоритмов крайне важно для их эффективной реализации на различных типах целевых программно-аппаратных платформ. Этой актуальной задаче посвящен проект создания Открытой энциклопедии свойств алгоритмов Algo Wiki, начатый в Московском государственном университете имени М.В. Ломоносова в 2014 году. В рамках проекта была предложена единая универсальная схема описания свойств алгоритмов, в которой особое внимание уделялось свойствам, связанным с параллелизмом. Множество описанных по данной схеме алгоритмов послужило основой описания структуры предметной области в рамках иерархической схемы «Задача—Метод—Алгоритм-Реализация». Однако для дальнейшего развития проекта AlgoWiki потребовалось выделить реализации алгоритмов, ранее включенные в описания свойств алгоритмов, в отдельную сущность. В данной статье изложена схема описания свойств реализаций алгоритмов, также как и модификация изначальной схемы описания свойств самих алгоритмов. Преобразование описаний в энциклопедии AlgoWiki по данной схеме было выполнено для всех страниц проекта, и оно позволяет как более качественно описывать свойства реализаций алгоритмов, так и интегрировать проект энциклопедии AlgoWiki с проектом Algo500, реализующим масштабируемую цифровую платформу для совместного анализа свойств алгоритмов и компьютерных архитектур.

Ключевые слова: Algo500, Algo Wiki, задача, метод, алгоритм, реализация, суперкомпьютер, рейтинг.

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

Антонов А.С. Выделение явного уровня реализации алгоритмов для использования в проекте Algo500 // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2023. Т. 12, № 1. С. 89-100. DOI: 10.14529/cmse230105.

Введение

Проект создания Открытой энциклопедии свойств алгоритмов AlgoWiki [1, 2] стартовал в Московском государственном университете имени М.В. Ломоносова в 2014 году. Его основной целью было создание доступной платформы для описания свойств вычислительных алгоритмов [3] силами формируемого вычислительного сообщества. Такая платформа с использованием wiki-технологий была создана на базе движка MediaWiki [4], разработанного изначально для проекта Wikipedia [5]. С использованием данных технологий был создан сайт энциклопедии AlgoWiki [6].

На первых этапах создания Открытой энциклопедии свойств алгоритмов AlgoWiki был реализован ряд основных разделов сайта:

• классификация алгоритмов — основной раздел энциклопедии AlgoWiki, в котором упорядочиваются все имеющиеся в проекте страницы описаний;

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

• руководства по заполнению разделов описания — пошаговые инструкции по заполнению разделов описаний алгоритмов;

• готовность статей — механизм, выдающий списки статей, размеченных авторами по признакам «Начатые статьи», «Статьи в работе», «Законченные статьи»;

• глоссарий — раздел для описания используемых в проекте терминов;

• помощь — раздел со справочными материалами.

Целью данной работы является разработка новой схемы описания свойств реализаций алгоритмов, описанных в энциклопедии AlgoWiki. Использование предлагаемой схемы позволяет закончить реализацию структуры иерархического представления предметной области. Помимо этого, выделение реализаций алгоритмов необходимо для их использования в рамках проекта создания масштабируемой цифровой платформы Algo500 [7, 8], в которой осуществляется интеграция энциклопедии AlgoWiki с идеями, используемыми в известных рейтингах высокопроизводительных вычислительных систем.

Статья организована следующим образом. В разделе 1 рассмотрена ранее разработанная в рамках энциклопедии AlgoWiki единая универсальная схема описания свойств алгоритмов. В разделе 2 описано иерархическое представление предметной области в виде цепочек «Задача-Метод-Алгоритм-Реализация». Раздел 3 посвящен выделению явного уровня реализации алгоритмов в энциклопедии AlgoWiki. В разделе 4 предложена новая структура описания выделенных реализаций алгоритмов. Раздел 5 описывает направления развития энциклопедии AlgoWiki в рамках проекта Algo500. В заключении приводится краткая сводка результатов, полученных в работе, и указаны направления дальнейших исследований.

1. Схема описания свойств алгоритмов

Изначально была предложена единая универсальная схема описания свойств алгоритмов, состоявшая из двух частей. В первую часть входили описания машинно-независимых свойств алгоритмов, а во вторую — свойства, которые могут различаться при реализации на различных программно-аппаратных платформах. На рис. 1 приведена получившаяся схема, по которой предлагалось описывать все вычислительные алгоритмы в AlgoWiki.

Данная структура была использована для описания большого количества алгоритмов из самых разных областей науки. Отдельный акцент во всех описаниях делается на свойствах, связанных с параллелизмом. Были предложены и широко использованы технологии описания отдельных разделов таких описаний. В частности, для изображения информационных графов [9], являющихся основой анализа параллельных свойств алгоритмов, в разделе описания 1.7 была использована разработанная система интерактивной трехмерной визуализации информационных графов AlgoView [10, 11, 12]. Данная система позволяет отобразить параллельную структуру анализируемого алгоритма, оценить ресурс параллелизма, пошагово посмотреть ярусно-параллельную форму алгоритма, получить некоторые его численные характеристики и т.д. Пример отображения информационного графа при помощи системы AlgoView для алгоритма Холецкого [13] в рамках энциклопедии AlgoWiki приведен на рис. 2.

2. Иерархическое представление предметной области

Со временем усилиями привлеченных исследователей в Открытой энциклопедии свойств алгоритмов AlgoWiki накопилось большое количество страниц описаний алгоритмов в разной степени готовности. На множестве описаний алгоритмов требовалось выпол-

1 Свойства и структура алгоритмов

1.1 Общее описание алгоритма

1.2 Математическое описание алгоритма

1.3 Вычислительное ядро алгоритма

1.4 Макроструктура алгоритма

1.5 Схема реализации последовательного алгоритма

1.6 Последовательная сложность алгоритма

1.7 Информационный граф

1.8 Ресурс параллелизма алгоритма

1.9 Входные и выходные данные алгоритма

1.10 Свойства алгоритма

2 Программная реализация алгоритма

2.1 Особенности реализации последовательного алгоритма

2.2 Локальность данных и вычислений

2.3 Возможные способы и особенности параллельной реализации алгоритма

2.4 Масштабируемость алгоритма и его реализации

2.5 Динамические характеристики и эффективность реализации алгоритма

2.6 Выводы для классов архитектур

2.7 Существующие реализации алгоритма

3 Литература

Рис. 1. Структура описания свойств алгоритма

Рис. 2. Информационный граф алгоритма Холецкого

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

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

Таким образом, мы получаем широко известную схему отображения вычислительных задач на вычислительные системы, которую было решено реализовать в рамках Открытой энциклопедии свойств алгоритмов AlgoWiki. В энциклопедию были добавлены страницы, описывающие решаемые задачи и используемые методы, и возникло иерархическое представление предметной области в виде цепочек «Задача-Метод-Алгоритм-Реализация» [14, 15]. На рис. 3 показаны возможные соотношения между этими описаниями. Так, для описания исследуемой задачи могут использоваться страницы описаний других задач, может осуществляться выбор метода ее решения или же выбираться сразу готовый алгоритм реализации. Описания метода могут базироваться на описаниях других методов, или же для него может выбираться алгоритм реализации. Для описания алгоритма в качестве составных частей могут использоваться другие алгоритмы, после же фиксации алгоритмической стороны и с учетом особенностей целевой программно-аппаратной платформы выполнятся программная реализация.

Рис. 3. Возможные связи на странице классификации (3 — задача, М — метод,

А — алгоритм, Р — реализация)

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

3. Выделение явного уровня реализации алгоритмов

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

ма (зачастую предназначенных для различных программно-аппаратных платформ) описывалось в рамках одного раздела. Динамические характеристики из второй части описания алгоритма [17] (локальность [18], масштабируемость [19] и другие) существенно отличаются для каждой реализации, поэтому должны описываться раздельно. Все это приводило к крайней перегруженности описаний алгоритмов, особенно тех, у которых описывалось большое количество различных реализаций (для некоторых алгоритмов авторы приводили десятки разных реализаций).

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

2 Программная реализация алгоритма

2.1 Особенности реализации последовательного алгоритма

2.2 Возможные способы и особенности параллельной реализации алгоритма

2.3 Результаты прогонов

2.4 Выводы для классов архитектур

Рис. 4. Новая структура второй части описания свойств алгоритма

Разделы 2.1, 2.2 и 2.4 остались во второй части описания свойств алгоритма, поскольку в них суммируются выводы по различным программным реализациям. Кроме того, в описание был добавлен раздел 2.3, в котором также суммируются данные с результатов прогонов различных реализаций данного алгоритма на различных программно-аппаратных платформах (это делается в рамках реализации проекта создания цифровой платформы Algo500 [7, 8]).

4. Описание свойств реализации алгоритма

Теперь в рамках Открытой энциклопедии свойств алгоритмов Algo Wiki для каждой реализации каждого алгоритма предлагается выделять отдельную страницу, на которой описываются ее основные свойства. Предложенная структура описания такой страницы приведена на рис. 5.

1 Ссылки

2 Локальность данных и вычислений

2.1 Локальность реализации алгоритма

2.1.1 Структура обращений в память и качественная оценка локальности

2.1.2 Количественная оценка локальности

3 Масштабируемость алгоритма и его реализации

3.1 Масштабируемость алгоритма

3.2 Масштабируемость реализации алгоритма

4 Динамические характеристики и эффективность реализации алгоритма

5 Результаты прогонов

Рис. 5. Структура описания свойств реализации алгоритма

В разделе 1 описания реализации алгоритма приводятся ссылки, позволяющие найти данную реализацию и информацию о ней. Разделы 2-4 перенесены сюда со страниц описаний свойств алгоритмов, поскольку содержат фактически описания свойств конкретных реализаций. Также добавляется новый раздел 5, в котором приводятся результаты прогонов данной программной реализации на различных программно-аппаратных платформах (это делается в рамках реализации проекта создания цифровой платформы Algo500 [7, 8]). В этом разделе считываются данные из базы проекта Algo500 и отображаются в виде таблиц или графиков.

В итоге все реализации всех описанных алгоритмов из Открытой энциклопедии свойств алгоритмов Algo Wiki были выделены в отдельные страницы с описанием по схеме, приведенной на рис. 5. Это позволило завершить процесс описания структуры предметной области в виде цепочек «Задача-Метод-Алгоритм-Реализация». Фрагмент получившейся страницы «Классификация алгоритмов» приведен на рис. 6.

1.4. 7 I Разложения матриц

1.4.1. В Задача разложения матриц

1.4.2. Треугольные разложения

14.2.1.0 Метод Гаусса (нахождение LU-разложения)

1 Ш LU-разложение методом Гаусса без перестановок

1 [ I Компактная схема метода Гаусса и ее модификации

1. П Компактная схема метода Гаусса для трёхдиагональной матрицы и её модификации

1 QB Последовательно-параллельный алгоритм для LU-разложения трёхдиагональной матрицы

2. Q Компактная схема метода Гаусса для трёхдиагональной матрицы, последовательный вариант 3 О Алгоритм сдваивания Стоуна для LU-разложения трёхдиагональной матрицы 2-ГП Компактная схема метода Гаусса для плотной матрицы

2 Q LU-разложение методом Гаусса

1 Q LU decomposition via Gaussian elimination, locality

2. Q LU decomposition via Gaussian elimination, scalability 2_a LU-разложение методом Гаусса с перестановками

1 Q LU-разложение методом Гаусса с выбором ведущего элемента по столбцу

2 Q LU-разложение методом Гаусса с выбором ведущего элемента по строке

3Q LU-разложение методом Гаусса с выбором ведущего элемента по главной диагонали 4 Q LU-разложение методом Гаусса с выбором ведущего элемента по всей матрице 1 4.2.2. □ Метод Холецкого (нахождение симметричного треугольного разложения)

1. Q Разложение Холецкого (метод квадратного корня)

1 Q Cholesky decomposition, locality

2 Q Cholesky decomposition. SCALAPACK

3. Q Cholesky decomposition, scalability

1.4.3. В Унитарно-треугольные разложения

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

1.4.3.1. Q QR-разложения плотных неособенных матриц

1 □ Метод Гивенса (вращений) QR-разложения матрицы

1. Q Метод Гивенса (вращений) QR-разложения квадратной матрицы (вещественный точечный вариант)

1 Q Givens method, locality

2D Метод Хаусхолдера (отражений) QR-разложения матрицы

1 Q Метод Хаусхолдера (отражений) QR-разложения квадратной матрицы, вещественный точечный вариант

1 Q Householder (reflections) method for the QR decomposition, locality

2 Q Householder (reflections) method for the QR decomposition. SCALAPACK 3. [j) Метод ортогонализации

1 Q Классический метод ортогонализации

2 Q Метод ортогонализации с переортогонализацией 4 Q Метод треугольного разложения матрицы Грама

©

©

©

©

©

Рис. 6. Фрагмент страницы «Классификация алгоритмов»

Так, на рис. 6 можно отследить цепочку описаний для алгоритма Холецкого, информационный граф которого был приведен на рис. 2. В разделе «Разложения матриц» (для которого текст пока не написан, что вполне нормально для живого wiki-проекта) выделена отдельная задача «Треугольные разложения», в которой подробно описана страница «Метод Холецкого (нахождение симметричного треугольного разложения)». Для указанного метода описан алгоритм реализации «Разложение Холецкого (метод квадратного корня)»,

а для него отдельными страницами приводятся три реализации: последовательная реализация, использованная для изучения локальности данных, параллельная реализация из пакета SCALAPACK библиотеки Intel MKL (метод pdpotrf), использованная для исследования динамических характеристик и эффективности реализации алгоритма, и написанная одним из авторов параллельная реализация на языке Си, использованная для исследования масштабируемости реализации алгоритма. Все эти три реализации существенно отличаются и обладают различными свойствами, поэтому описания их в рамках одной страницы было не вполне корректно. Кроме того, после выделения отдельных страниц реализаций их можно использовать в рамках проекта Algo500.

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

5. Проект Algo500

В настоящее время в рамках проекта реализуется масштабируемая цифровая платформа Algo500 [7, 8], которая обеспечивает следующие основные функции:

• объединение данных о любых алгоритмах и архитектурах компьютеров;

• подход с единых позиций к анализу свойств любого алгоритма применительно к особенностям любой архитектуры;

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

• формирование по запросу произвольных индивидуальных рейтинговых списков.

В рамках проекта Algo500 производится интеграция четырех основных программных компонент:

1. Открытая энциклопедия свойств алгоритмов Algo Wiki.

2. База описаний компьютерных систем CompZoo.

3. Репозиторий исходных кодов и результатов запусков PerfData.

4. Система построения настраиваемых рейтингов RatingLists.

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

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

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

В качестве одного из основных результатов цифровая платформа Algo500 позволяет в рамках компоненты RatingLists строить рейтинговые списки [20] по любым описанным реализациям любых алгоритмов из энциклопедии Algo Wiki. Такая система рейтингов не только включает в себя самые известные рейтинги в данной области (Тор500 [21] на основе теста Linpack [22], Graph500 [23, 24], HPCG [25, 26] и другие), но и позволяет построить полноценную систему рейтингов с большими возможностями по представлению информации, построению различных выборок и получению аналитических оценок.

Заключение

В данной статье описано развитие проекта создания Открытой энциклопедии свойств алгоритмов AlgoWiki. Очередным важным шагом в выполнении данного проекта явилось выделение явного уровня реализаций алгоритмов. Была предложена структура описания реализаций алгоритмов, а также модификация структуры описания самих алгоритмов. Согласно этим структурам было выполнено преобразование всех описаний алгоритмов в рамках энциклопедии AlgoWiki и соответствующим образом модифицирована страница классификации алгоритмов. Это позволило завершить создание иерархического представления предметной области в виде цепочек «Задача-Метод-Алгоритм-Реализация».

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

Результаты получены в Московском государственном университете имени М.В. Ломоносова при финансовой поддержке РНФ (договор № 20-11-20194)- Работа выполнена с использованием оборудования Центра коллективного пользования сверхвысокопроизводи-телъными вычислительными ресурсами МРУ имени М.В. Ломоносова [27].

Литература

1. Voevodin V., Antonov A., Dongarra J. AlgoWiki: an Open Encyclopedia of Parallel

Algorithmic Features // Supercomput. Front, and Innov. 2015. Vol. 1, no. 2. P. 4-18. DOI: 10.14529/jsfil50101.

2. Воеводин В. Открытая энциклопедия свойств алгоритмов AlgoWiki: от мобильных платформ до экзафлопсных суперкомпьютерных систем / / Вычислительные методы и программирование 2015. Т. 16, № 1. С. 99-111. DOI: 10.26089/NumMet.vl6rlll.

3. Voevodin V., Antonov A., Dongarra J. Why is it hard to describe properties of algorithms? // Procedia Computer Science. 2016. Vol. 101. P. 4-7. DOI: 10.1016/j.procs.2016.11.002.

4. MediaWiki. URL: https://www.mediawiki.org (дата обращения: 01.12.2022).

5. Wikipedia. URL: https://wikipedia.org (дата обращения: 01.12.2022).

6. Открытая энциклопедия свойств алгоритмов. URL: http: //algowiki-project. org (дата обращения: 01.12.2022).

7. Antonov A., Nikitenko D., Voevodin VI. Algo500 — a New Approach to the Joint Analysis of Algorithms and Computers // Lobachevskii Journal of Mathematics. 2020. Vol. 41, no. 8. P. 1435-1443. DOI: 10.1134/S1995080220080041.

8. Antonov A.S., Maier R.V. Development and Implementation of the Algo500 Scalable Digital Platform Architecture // Lobachevskii J Math. 2022. Vol. 43. P. 837-847. DOI: 10.1134/S1995080222070058.

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

Петербург, 2002. 608 с.

10. Antonov A.S., Volkov N.I. An AlgoView Web-visualization System for the AlgoWiki Project // Communications in Computer and Information Science. 2017. Vol. 753. P. 3-13. DOI: 10.1007/978-3-319-67035-5_l.

11. Antonov A., Volkov N. Interactive 3D Representation as a Method of Investigating Information Graph Features // Communications in Computer and Information Science. 2018. Vol. 965. P. 587-598. DOI: 10.1007/978-3-030-05807-4_50.

12. Antonov A.S., Volkov N.I. Information Graph Visualization Using AlgoView Software Tool // Lobachevskii J Math. 2020. Vol. 41, no. 6. P. 1427-1434. DOI: 10.1134/S199508022008003X.

13. Cholesky A.-L. Sur la resolution numerique des systemes dequations lineaires //La SABIX, Bulletins deja publies, Sommaire du bulletin. 2005. No. 39. P. 81-95.

14. Antonov A., Frolov A., Konshin I., Voevodin VI. Hierarchical Domain Representation in the AlgoWiki Encyclopedia: From Problems to Implementations // Communications in Computer and Information Science. 2018. Vol. 910. P. 3-15. DOI: 10.1007/978-3-319-99673-8_l.

15. Popov A., Nikitenko D., Antonov A., Voevodin VI. Formal model of problems, methods, algorithms and implementations in the advancing AlgoWiki open encyclopedia // CEUR Workshop Proc. 2018. Vol. 2281. P. 1-11.

16. Antonov A.S., Maier R.V. A New Representation of Algorithmic Approaches in the AlgoWiki Encylopedia // Lobachevskii J Math. 2021. Vol. 42, no. 7. P. 1483-1491. DOI: 10.1134/S1995080221070039.

17. Antonov A., Voevodin Vad., Voevodin VI., Teplov A. A Study of the Dynamic Characteristics of Software Implementation as an Essential Part for a Universal Description of Algorithm Properties // 24th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing Proceedings, February 17-19, 2016. P. 359-363. DOI: 10.1109/PDP.2016.24.

18. Воеводин В.В., Швец П.А. Метод покрытий для оценки локальности использования данных в программах // Вестник Уфимского государственного авиационного технического университета. 2014. Т. 18, № 1(62). С. 224-229.

19. Antonov A., Teplov A. Generalized approach to scalability analysis of parallel applications // Lecture Notes in Computer Science. 2016. Vol. 10049. P. 291-304. DOI: 10.1007/978-3-319-49956-7_23.

20. Antonov A., Dongarra J., Voevodin V. 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.

21. Home - | TOP500. URL: https://top500.org (дата обращения: 01.12.2022).

22. Dongarra J.J., Bunch J.R., Moler G.B., Stewart G.W. LINPACK Users’ Guide. Society for Industrial and Applied Mathematics, 1979-1993.

23. Graph 500 | large-scale benchmarks. URL: https://graph500.org (дата обращения: 01.12.2022).

24. Murphy R.C., Wheeler К.В., Barrett B.W., Ang J.A. Introducing the Graph 500. Cray User’s Group (CUG). May 5, 2010. Vol. 19. P. 45-74.

25. HPCG Benchmark. URL: https://www.hpcg-benchmark.org (дата обраще-

ния: 01.12.2022).

26. Heroux M., Dongarra J. Toward a New Metric for Ranking High Performance Computing Systems. UTK EECS Tech Report and Sandia National Labs Report SAND2013-4744, June 2013.

27. Voevodin V., Antonov A., Nikitenko D., et al. Supercomputer Lomonosov-2: Large Scale, Deep Monitoring and Fine Analytics for the User Community // Supercomputing Frontiers and Innovations. 2019. Vol. 6, no. 2. P. 4-11. DOI: 10.14529/jshl90201.

Антонов Александр Сергеевич, к.ф.-м.н., ведущий научный сотрудник, Научно-исследовательский вычислительный центр, Московский государственный университет имени М.В. Ломоносова (Москва, Российская Федерация)

DOI: 10.14529/cmse230105

EXTRACTION OF AN EXPLICIT LEVEL OF ALGORITHM IMPLEMENTATION FOR USE IN THE ALGO500 PROJECT

© 2023 A.S. Antonov

Research Computing Center, Lomonosov Moscow State Universisty (GSP-1, Leninskie Gory 1, building 4, Moscow, 119234 Russia)

E-mail: asa@parallel.ru Received: 03.12.2022

The study and description of the algorithm properties is extremely important for their effective implementation on various types of target software and hardware platforms. This topical task is the subject of a project to create an AlgoWiki Open encyclopedia of parallel algorithmic features, launched at Lomonosov Moscow State University in 2014. Within the framework of the project, a unified universal scheme for describing the algorithm properties was proposed, in which special attention to the properties associated with parallelism was paid. The set of algorithms described according to this scheme served as the basis for describing the structure of the subject area within the framework of the “Problem-Method-Algorithm-Implementation” hierarchical scheme. However, for the further development of the AlgoWiki project, it was necessary to separate the implementations of the algorithms that were previously included in the descriptions of the properties of the algorithms. This paper presents a scheme for describing the properties of algorithm implementations, as well as a modification of the original scheme for describing the properties of the algorithms themselves. The transformation of descriptions in the AlgoWiki encyclopedia according to this scheme was performed for all pages of the project, and it allows not only to better describe the properties of algorithm implementations, but also to integrate the AlgoWiki encyclopedia project with the Algo500 project, which implements a scalable digital platform for joint analysis of the properties of algorithms and computer architectures.

Keywords: Algo500, AlgoWiki, problem, method, algorithm, implementation, supercomputer, rating.

FOR CITATION

Antonov A.S. Extraction of an Explicit Level of Algorithms Implementation for Use in the Algo500 Project. Bulletin of the South Ural State University. Series: Computational

Mathematics and Software Engineering. 2023. Vol. 12, no. 1. P. 89-100. (in Russian) DOI: 10.14529/cmse230105.

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. Voevodin V., Antonov A., Dongarra J. AlgoWiki: an Open Encyclopedia of Parallel

Algorithmic Features. Supercomput. Front, and Innov. 2015. Vol. 1, no. 2. P. 4-18. DOI: 10.14529/jsfil50101.

2. Voevodin V. An AlgoWiki open encyclopedia of algorithmic features: from mobile to

extreme scale. Numer. methods and program. 2015. Vol. 16, no. 1. P. 99-111. (in Russian) DOI: 10.26089/NumMet.vl6rlll.

3. Voevodin V., Antonov A., Dongarra J. Why is it hard to describe properties of algorithms? Procedia Computer Science. 2016. Vol. 101. P. 4-7. DOI: 10.1016/j.procs.2016.11.002.

4. MediaWiki. URL: https://www.mediawiki.org (accessed: 01.12.2022).

5. Wikipedia. URL: https://wikipedia.org (accessed: 01.12.2022).

6. Open Encyclopedia of Parallel Algorithmic Features. URL: http: //algowiki-project. org/ en (accessed: 01.12.2022).

7. Antonov A., Nikitenko D., Voevodin VI. Algo500 — a New Approach to the Joint Analysis of Algorithms and Computers. Lobachevskii Journal of Mathematics. 2020. Vol. 41, no. 8. P. 1435-1443. DOI: 10.1134/S1995080220080041.

8. Antonov A.S., Maier R.V. Development and Implementation of the Algo500 Scalable Digital Platform Architecture. Lobachevskii J Math. 2022. Vol. 43. P. 837-847. DOI: 10.1134/S1995080222070058.

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

10. Antonov A.S., Volkov N.I. An AlgoView Web-visualization System for the AlgoWiki Project. Communications in Computer and Information Science. 2017. Vol. 753. P. 3-13. DOI: 10.1007/978-3-319-67035-5_l.

11. Antonov A., Volkov N. Interactive 3D Representation as a Method of Investigating Information Graph Features. Communications in Computer and Information Science. 2018. Vol. 965. P. 587-598. DOI: 10.1007/978-3-030-05807-4_50.

12. Antonov A.S., Volkov N.I. Information Graph Visualization Using AlgoView Software Tool. Lobachevskii J Math. 2020. Vol. 41, no. 6. P. 1427-1434. DOI: 10.1134/S199508022008003X.

13. Cholesky, A.-L. Sur la resolution numerique des systemes dequations lineaires //La SABIX, Bulletins deja publies, Sommaire du bulletin. 2005. No. 39. P. 81-95.

14. Antonov A., Frolov A., Konshin I., Voevodin VI. Hierarchical Domain Representation in the AlgoWiki Encyclopedia: From Problems to Implementations. Communications in Computer and Information Science. 2018. Vol. 910. P. 3-15. DOI: 10.1007/978-3-319-99673-8_l.

15. Popov A., Nikitenko D., Antonov A., Voevodin VI. Formal model of problems, methods, algorithms and implementations in the advancing AlgoWiki open encyclopedia. CEUR Workshop Proc. 2018. Vol. 2281. P. 1-11.

16. Antonov A.S., Maier R.V. A New Representation of Algorithmic Approaches in the AlgoWiki Encylopedia. Lobachevskii J Math. 2021. Vol. 42, no. 7. P. 1483-1491. DOI: 10.1134/S1995080221070039.

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

17. Antonov A., Voevodin Vad., Voevodin VI., Teplov A. A Study of the Dynamic Characteristics of Software Implementation as an Essential Part for a Universal Description of Algorithm Properties. 24th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing Proceedings, February 17-19, 2016. P. 359-363. DOI: 10.1109/PDP.2016.24.

18. Voevodin V.V., Shvets P.A. Covering method for assessing the locality of data use in programs. Bulletin of the Ufa State Aviation Technical University. 2014. Vol. 18, no. 1(62). P. 224-229. (in Russian)

19. Antonov A., Teplov A. Generalized approach to scalability analysis of parallel applications. Lecture Notes in Computer Science. 2016. Vol. 10049. P. 291-304. DOI: 10.1007/978-3-319-49956-7_23.

20. Antonov A., Dongarra J., Voevodin V. 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.

21. Home - | TOP500. URL: https://top500.org (accessed: 01.12.2022).

22. Dongarra J.J., Bunch J.R., Moler G.B., Stewart G.W. LINPACK Users’ Guide. Society for Industrial and Applied Mathematics, 1979-1993.

23. Graph 500 | large-scale benchmarks. URL: https://graph500.org (accessed: 01.12.2022).

24. Murphy R.C., Wheeler K.B., Barrett B.W., Ang J.A. Introducing the Graph 500. Cray User’s Group (CUG). May 5, 2010. Vol. 19. P. 45-74.

25. HPCG Benchmark. URL: https://www.hpcg-benchmark.org (accessed: 01.12.2022).

26. Heroux M., Dongarra J. Toward a New Metric for Ranking High Performance Computing Systems. UTK EECS Tech Report and Sandia National Labs Report SAND2013-4744, June 2013.

27. Voevodin V., Antonov A., Nikitenko D., et al. Supercomputer Lomonosov-2: Large Scale, Deep Monitoring and Fine Analytics for the User Community. Supercomputing Frontiers and Innovations. 2019. Vol. 6, no. 2. P. 4-11. DOI: 10.14529/jsfil90201.

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