Полное решение проблемы совместного анализа свойств алгоритмов и особенностей архитектуры вычислительных системНИР

A complete solution to the problem of joint analysis of the properties of algorithms and the architecture features of computing systems

Источник финансирования НИР

грант РНФ

Этапы НИР

# Сроки Название
1 27 мая 2020 г.-31 декабря 2020 г. Полное решение проблемы совместного анализа свойств алгоритмов и особенностей архитектуры вычислительных систем
Результаты этапа: Проведен анализ и описаны особенности архитектуры современных высокопроизводительных вычислительных систем; выделены и описаны классы вычислительных систем; выделены и описаны характерные параметры архитектуры процессоров и вычислительных систем в целом. Разработан подход для формирования структурных иерархических моделей параллельных вычислительных систем, построенных на основе классических многоядерных процессоров (Intel, AMD, IBM, ARM). Выполнена проверка функциональной полноты предложенных моделей на примерах суперкомпьютерных систем из списков Топ500 и Top50 самых мощных суперкомпьютерных систем мира и России. Представлено описание более 10 систем из данных списков, выполненное с помощью предложенных моделей в рамках данного класса архитектур. Выполнено расширение базовой цепочки AlgoWiki дополнительным этапом, описывающим целевую вычислительную систему: Задача-Метод-Алгоритм-Программа-Компьютер. Предложенное расширение согласовано с разработанными моделями процессоров и вычислительных систем. Предложена и обоснована архитектура цифровой платформы Algo500, объединяющей информацию о структуре алгоритмов (AlgoWiki), особенностях архитектуры компьютеров (модели процессоров и вычислительных систем, CompBase) с данными кортежей PerfData репозитория. Выполнена серия вычислительных экспериментов для отработки и апробации предложенных подходов на примере не менее трех графовых задач, не менее двух алгоритмов для каждой задачи и не менее трех вычислительных систем с различной архитектурой (с многоядерными, графическими и векторными процессорами). 4 публикации в изданиях, индексируемых в базах данных Web of Science или Scopus. 6 выступлений с докладами по проекту на международных или всероссийских конференциях или семинарах.
2 1 января 2021 г.-31 декабря 2021 г. Полное решение проблемы совместного анализа свойств алгоритмов и особенностей архитектуры вычислительных систем
Результаты этапа: В рамках данного проекта в полном объёме выполнены работы, запланированные на данном этапе. Разработана многоярусная модель вычислительной системы, которая является крайне подробной и позволяет описывать вычислительную систему с желаемой точностью. Используемый подход позволяет эффективно описать любую из вычислительных систем в списках Топ50 и Top500 с наперед заданной точностью, достаточной для решения той или иной задачи сравнения или ранжирования систем или их подсистем. Нередко может возникнуть ситуация, когда реализация алгоритма не предполагает использование всех доступных компонент вычислительного узла, например, программа, реализуемая только на центральном процессоре, или во время запуска пользователь намеренно не задействует ускорители, хотя на используемых узлах доступны несколько GPU и сопроцессор. Для таких случаев в системе реализована поддержка частичных запусков. Выполнена разработка технологической архитектуры компоненты CompBase. Проведен анализ процесса создания описаний суперкомпьютеров в проекте Algo500. Разработана новая схема базы данных, которая отличается применением noSQL-подхода для хранения вариативных списков атрибутов (не имеющих строго определенной структуры), описывающих подсистемы суперкомпьютера различных уровней вложенности. Разработаны хранимые процедуры для транзакционной записи в таблицы базы данных с учетом требований к модерированию и возможности отката. Разработан прототип программного обеспечения компоненты CompBase в части клиентской программы (JavaScript, браузер), позволяющей пользователю создавать наборы атрибутов, характеризующих некоторую подсистему суперкомпьютера. Выполнена разработка архитектуры репозитория PerfData, предназначенного для хранения суперкомпьютерных экспериментов по каждой реализации алгоритма. Проведен анализ процесса сохранения данных о прогонах реализаций алгоритмов на конкретных суперкомпьютерах. В предметной области выделены понятия "суперкомпьютерных эксперимент", "серия запусков" и описаны отношения между ними. Проведен анализ типовых хранимых данных по суперкомпьютерному эксперименту и запускам на примерах реализаций алгоритмов поиска в ширину (Gunrock, VGL) и теста Linpack для компьютеров с распределенной памятью (HPL). Сделан вывод о том, что часть информации компоненты PerfData необходимо хранить в SQL базе данных, а часть - в файловой системе под управлением системы контроля версий Git. Предпринята попытка структурировать сохраняемую в Git информацию о запусках. Выполнена разработка архитектуры масштабируемой цифровой платформы Algo500. Разработана структурная схема, объединяющая серверы компонентов AlgoWiki, CompBase и PerfData. Для повышения реактивности системы предложено разработать сервер обмена сообщениями на основе протокола WebSocket. Разработан сервер обмена сообщениями на языке JavaScript на платформе Node JS. Для компоненты AlgoWiki разработаны команды и уведомления. Смоделирована работа сервера сообщений под нагрузкой с помощью утилиты autocannon: среднее значение количества соединений в секунду сравнимы с таким же показателем для Apache2. Для компоненты AlgoWiki скорректирована структура хранения данных о классификации алгоритмов, разработаны хранимые в базе данных процедуры и функции. Выполнена разработка и реализация механизмов интеграции трёх ключевых компонентов платформы Algo500: AlgoWiki, CompBase и репозитория данных PerfData. Разработана клиентская часть программы на JavaScript, передающая команды на сервер сообщений и получающая уведомления от него. Разработаны модули JavaScript-классов, инкапсулирующих CSS-параметры фреймворка Bootstrap и реализующих такие элементы графического интерфейса как модальные окна, визарды и т.п. Разработано расширение движка MediaWiki для отображения структуры алгоритмов. Для пользователей организованы роли и разработаны ограничения в соответствии с правами. Реализован механизм идентификации реализации в классификации алгоритмов, представляющий собой полный путь в графе классификации от корневой задачи до реализации. Разработана начальная версия системы формирования сложных запросов системы Algo500. Предложено разделение множества запусков на разные классы для использования различных множеств параметров и результатов запусков. Выполнена пробная апробация всех предложенных моделей, методов и программных средств на примере запусков большого массива графовых алгоритмов. Построены рейтинги с возможностью фиксации различных этапов цепочек иерархического описания структуры предметной области в виде "Задача-Метод-Алгоритм-Реализация". Разработана возможность накладывать ограничения на вычислительную систему, добавляя к цепочкам "Задача-Метод-Алгоритм-Реализация" этап "Компьютер".
3 1 января 2022 г.-31 декабря 2022 г. Полное решение проблемы совместного анализа свойств алгоритмов и особенностей архитектуры вычислительных систем
Результаты этапа: В рамках данного проекта в полном объёме выполнены работы, запланированные на данном этапе. Разработана технология оценки реальной производительности вычислительных систем на любых алгоритмах и программах. Разработаны механизмы включения в оценку любых методов, алгоритмов и их реализаций, чтобы отойти от существующей практики сравнения реальной производительности компьютеров лишь на фиксированном наборе бенчмарков (Линпак, алгоритмы на графах, тест HPCG и некоторых других). В этой работе функционал платформы Algo500, связанный с формированием рейтинговых списков, т.е. конструирование пользователем запросов к базам данных и представление в браузере результатов запросов, выделен в отдельную компоненту RatingLists. В отличие от остальных компонент платформы Algo500 в RatingLists пользователь не изменяет никаких данных об алгоритмах, суперкомпьютерах или суперкомпьютерных экспериментах. Конструирование запросов и анализ результатов может выполнять любой исследователь, в том числе незарегистрированный пользователь guest. Сделать это можно для любых описанных в AlgoWiki реализаций любых вычислительных алгоритмов. Разработаны и реализованы механизмы синхронизации трёх ключевых компонентов платформы Algo500: AlgoWiki, моделей компьютеров CompZoo и репозитория данных PerfData. Показана работоспособность механизмов синхронизации в рамках платформы Algo500. Разработаны и реализованы методы формирования расширенных рейтинговых списков динамических характеристик программ при отсутствии отдельных данных в кортежах PerfData. Разработаны и реализованы методы интеграции значений параметров моделей процессоров и вычислительных систем в запросы на формирование рейтинговых списков динамических характеристик программ. Спроектированы и реализованы методы и технологии тонкого анализа взаимосвязи свойств алгоритмов и особенностей архитектуры компьютеров. Разработаны и реализованы методы формирования алгоритмических и архитектурных срезов, выделяющих на основе совместного анализа множества алгоритмов AlgoWiki и множества компьютерных систем CompZoo подмножества с предопределенными взаимосвязанными свойствами. В настоящее время актуальным является создание механизмов для сопоставления реализации алгоритма конкретной вычислительной архитектуре (так называемые "архитектурные срезы"). Для этого в базе данных энциклопедии AlgoWiki созданы таблица для хранения типов архитектур и таблица, содержащая ссылки реализации алгоритма на архитектуры. Добавление, редактирование и удаление типов архитектур в базе данных являются по сути типовыми задачами. Спроектирована, реализована и апробирована масштабируемая цифровая платформа Algo500 для формирования рейтинговых списков и проведения комплексного исследования качества цепочки “Задача – Метод – Алгоритм – Реализация – Компьютер” на уровне любого её звена. Проведен комплекс исследований и выполнена серия экспериментов для первичного наполнения компонент AlgoWiki, CompZoo и репозитория платформы Algo500, включая описание структуры реальных алгоритмов, модели реальных вычислительных систем и реальные динамические характеристики с различных вычислительных систем. Открытая энциклопедия параллельных свойств алгоритмов AlgoWiki содержит большое количество Wiki-страниц описаний алгоритмов и их программных реализаций. В основе AlgoWiki лежит распространяемый под лицензией MIT движок MediaWiki и СУБД MariaDB (MySQL). При создании описаний суперкомпьютеров в компоненте CompZoo исследователь использует наборы характеристик, которые сам определяет, следуя допущениям и ограничениям метамодели данных компоненты CompZoo. Хранение данных в компоненте CompZoo происходит в СУБД PostgreSQL, что обусловлено поддержкой JSON-строк для хранения описаний суперкомпьютеров. Для аналитических данных компоненты PerfData также используется СУБД PostgreSQL, программы и сопутствующие программные элементы хранятся в файловой системе под управлением системы контроля версий Git. Ввиду значительной программной обработки данных, извлекаемых из СУБД, происходящей при их отображении на клиентском компьютере, необходимо передавать на компьютер клиента выборки из базы данных, а не готовые web-страницы. Обработку выборок нужно производить с помощью JavaScript-программ в браузере клиента. Такой подход позволяет в значительной степени уменьшить нагрузку на серверы. Асинхронное взаимодействие с клиентами реализуется с помощью сервера (брокера) сообщений (Message Queue server) - программного обеспечения, связывающего все серверы, входящие в систему, и всех клиентов в сеть обмена сообщениями. В настоящее время разработан сервер обмена сообщениями на языке JavaScript на платформе Node.js. Сформированы рекомендации по использованию платформы Algo500 с учетом различных сценариев работы потенциальных пользователей. На текущем этапе развития проекта Algo500 происходит интеграция Web-интерфейсов пользователей различных компонент. Для пользователя переход от одной компоненты к другой происходит естественным образом, как если бы платформа Algo500 была монолитной. Этот эффект достигается, поскольку для отображения в браузере используются одни и те же HTML/CSS библиотеки. Поскольку MediaWiki (движок AlgoWiki) представляет собой готовый программный продукт, в который классификация алгоритмов встроена в качестве расширения (extension), то для CompZoo и PerfData используется библиотека Bootstrap, входящая в состав MediaWiki. Для авторизации пользователей в CompZoo и PerfData используется существующий в MediaWiki механизм авторизации и выделения прав пользователям. Движок MediaWiki обеспечивает регистрацию пользователей, административное назначение им необходимых прав, в том числе тех, которые не являются встроенными в MediaWiki, а принадлежат различным расширениям. Кроме этого, MediaWiki обеспечивает загрузку JavaScript-модулей при выборе определенной web-страницы. Таким образом, самым естественным путем интеграции компонентов AlgoWiki, CompZoo и PerfData (в аналитической части) стала их разработка в виде расширений платформы MediaWiki. Устойчивость проекта Algo500 к случайным или намеренным деструктивным действиям обеспечивается за счет ограничения прав пользователей и предварительного модерирования изменений, предлагаемых пользователем. Выделены следующие роли для пользователей: - guest - посетитель проекта, незарегистрированный пользователь, обладающим правом просмотра информации и построения выборок из нее; - pma_tree - зарегистрированный пользователь, имеющий право вносить изменения в различные разделы; - pma_root - зарегистрированный пользователь-модератор, осуществляющий проверку и подтверждение внесённой информации. Любой пользователь проекта может получить доступ ко всем описаниям и просмотреть соответствующие статьи. Вносить изменения в страницы могут только зарегистрированные пользователи. Изменения, совершенные пользователями с функциональностью pma_tree, сразу не публикуются: они должны быть подтверждены пользователем-модератором. Механизм предварительного согласования изменений, вносимых пользователем в классификацию AlgoWiki, позволяет поддерживать классификацию алгоритмов на актуальном научном уровне. Для реализации механизма подтверждения изменений, сделанных пользователем, в базе данных создана таблица, в которой хранятся текущие и предшествующие состояния добавленных, удаленных или измененных вершин графа. Эта информация позволяет каждому пользователю показать его изолированное представление страниц проекта. Пользователь с ролью pma_tree может вносить изменения и видеть их до подтверждения модератором. Остальные пользователи, в том числе незарегистрированные пользователи (guest), не видят производимых изменений до их принятия модератором. Технически изолированное представление создаётся за счет последовательного выполнения всех операций, совершённых пользователем, со структурами данных в памяти компьютера пользователя.

Прикрепленные к НИР результаты

Для прикрепления результата сначала выберете тип результата (статьи, книги, ...). После чего введите несколько символов в поле поиска прикрепляемого результата, затем выберете один из предложенных и нажмите кнопку "Добавить".