![]() |
ИСТИНА |
Войти в систему Регистрация |
ИСТИНА ПсковГУ |
||
Представленный проект направлен на полное решение проблемы совместного анализа свойств алгоритмов и особенностей архитектуры вычислительных систем. Данная проблема многогранна, проявляется во множестве задач и исключительно важна для многих областей, что определяет ее и значимость, и актуальность. Разработка методов и инструментальных средств оценки производительности вычислительных систем, разработка технологий суперкомпьютерного кодизайна, сравнение, подбор и оценка возможностей архитектуры компьютеров, подбор вычислительной системы из доступного парка машин под класс алгоритмов, проектирование и выбор параметров архитектуры нового компьютера, разработка методов оценки и повышения качества работы суперкомпьютерных центров - конкретных задач очень много, но решение каждой из них опирается на объективную оценку соответствия свойств алгоритмов и программ особенностям вычислительных систем. Основная цель проекта – это разработка комплекса моделей, методов и программных средств для совместного анализа свойств алгоритмов и особенностей архитектуры вычислительных систем. В проекте выделяются нескольких взаимосвязанных задач, и как финальный результат - проектирование и создание масштабируемой цифровой платформы Algo500 для формирования рейтинговых списков, содержащих данные по реализациям методов и алгоритмов на вычислительных системах. Инструменты цифровой платформы должны позволять проводить комплексное исследование качества расширенной цепочки “Задача – Метод – Алгоритм – Реализация – Компьютер” на уровне любого её звена. На множестве имеющихся динамических характеристик выполнения программ создаваемая платформа ориентирована на поиск и выборку лучших по некоторому параметру, поэтому и возникает понятие “рейтинговых списков”, а аналогия со списками типа Top500 и Graph500 определила название проектируемой платформы – Algo500. Вместе с этим, в рамках данного проекта впервые предлагается практический подход, который ориентирован не на отдельные частные случаи оценки производительности как Top500/Graph500, а позволяет решить задачу в целом, давая возможность рассматривать любой алгоритм, любую вычислительную систему, менять любое звено расширенной цепочки. Определение результата проекта как цифровой платформы подчеркивает масштабность и комплексность поставленной задачи. Создаваемая платформа на основе единых стандартов объединит данные о любых алгоритмах и архитектурах компьютеров, позволит с единых позиций подходить к анализу свойств любого алгоритма применительно к особенностям любой архитектуры, позволит всему вычислительному сообществу коллективно дополнять и уточнять базу алгоритмов, их реализаций, вносить данные об их выполнении на различных вычислительных системах, формировать по запросу произвольные индивидуальные рейтинговые списки.
The proposed project is aimed at a complete solution to the problem of joint analysis of the properties of algorithms and features of the architecture of computing systems. This problem is multifaceted, manifests itself in many tasks and is extremely important for many areas, which determines its importance and relevance. Development of methods and tools for evaluating the performance of computing systems, developing technologies for supercomputer code design, comparing, selecting and evaluating the capabilities of computer architecture, selecting a computing system from an accessible fleet of machines for a class of algorithms, designing and selecting architecture parameters for a new computer, developing methods for evaluating and improving the quality of work supercomputer centers – there are a lot of specific tasks, but the solution to each of them is based on an objective assessment of compliance the properties of algorithms and programs to the features of computing systems. The main goal of the project is the development of a set of models, methods and software for a joint analysis of the properties of algorithms and architecture of computer systems. The project identifies several interrelated tasks, and as the final result – design and creation of a scalable digital platform Algo500 for the formation of rating lists containing data on the implementation of methods and algorithms on computer systems. The tools of the digital platform should allow a comprehensive study of the quality of the extended chain “Task-Method-Algorithm-Implementation-Computer” at the level of any of its links. Based on the many available dynamic characteristics of program execution, the created platform is focused on searching and selecting the best according to some parameter, therefore the concept of “ranking lists” arises, and the analogy with lists like Top500 and Graph500 defined the name of the designed platform – Algo500. At the same time, within the framework of this project, for the first time, a practical approach is proposed that is focused not on individual particular cases of performance evaluation like Top500/Graph500, but allows solving the problem as a whole, making it possible to consider any algorithm, any computer system, change any link of the extended chain. The definition of the project result as a digital platform emphasizes the scale and complexity of the task. The platform being created, on the basis of common standards, will combine data on any algorithms and architectures of computers, allow for a unified approach to the analysis of the properties of any algorithm in relation to the features of any architecture, will allow the entire computing community to collectively supplement and refine the database of algorithms, their implementations, and enter data on their implementation on various computing systems, generate, upon request, arbitrary individual ranking lists.
Будет разработан подход для формирования структурных иерархических моделей параллельных вычислительных систем, построенных на основе классических многоядерных, графических и векторных процессоров. Будет выполнена проверка функциональной полноты предложенных моделей на примерах всех суперкомпьютерных систем из списков Топ500 и Top50 самых мощных суперкомпьютерных систем мира и России. Будет представлено описание не менее 10 систем из данных списков, выполненное с помощью предложенных моделей в рамках данных классов архитектур. Будет предложена, обоснована и реализована архитектура масштабируемой цифровой платформы Algo500, объединяющей информацию о структуре алгоритмов (AlgoWiki), особенностях архитектуры компьютеров (модели процессоров и вычислительных систем, CompBase) с характеристиками выполнения программ, хранящимися в репозитории. Будет разработана технология оценки реальной производительности вычислительных систем на любых алгоритмах и программах. Чтобы отойти от существующей практики сравнения реальной производительности компьютеров лишь на фиксированном наборе бенчмарков (Линпак, алгоритмы на графах, тест HPCG и некоторых других), будут разработаны механизмы включения в оценку любых методов, алгоритмов и их реализаций. Будут разработаны и реализованы механизмы синхронизации трёх ключевых компонентов платформы Algo500: AlgoWiki, моделей компьютеров CompBase и репозитория данных. Будет показана работоспособность механизмов синхронизации в рамках платформы Algo500. Будут разработаны, описаны и реализованы методы формирования рейтинговых списков динамических характеристик программ на основе расширенной цепочки AlgoWiki: Задача-Метод-Алгоритм-Программа-Компьютер с возможностью варьировать и/или фиксировать значения на всех этапах цепочки. Будет проведена серия вычислительных экспериментов, будет представлено не менее 7 расширенных рейтинговых списков. Будет спроектирована, реализована и апробирована масштабируемая цифровая платформа Algo500 для формирования рейтинговых списков и проведения комплексного исследования качества цепочки “Задача – Метод – Алгоритм – Реализация – Компьютер” на уровне любого её звена. Проведен комплекс исследований и выполнена серия экспериментов для первичного наполнения компонент AlgoWiki, CompBase и репозитория платформы Algo500, включая описание структуры реальных алгоритмов, модели реальных вычислительных систем и реальные динамические характеристики с различных вычислительных систем.
Научный коллектив имеет существенный научный задел для реализации столь масштабного проекта: - проведение фундаментальных и прикладных исследований в области параллельных вычислений в течение более чем 30 лет, - проектирование, установка и поддержка суперкомпьютерных систем высшего диапазона производительности в рамках суперкомпьютерного комплекса Московского университета, - успешное выполнение проекта AlgoWiki, в рамках которого отработан подход к описанию структуры алгоритмов, - проектирование, запуск в 2004 году и ведение по настоящее время проекта Top50 самых мощных вычислительных систем СНГ/России.
грант РНФ |
# | Сроки | Название |
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), не видят производимых изменений до их принятия модератором. Технически изолированное представление создаётся за счет последовательного выполнения всех операций, совершённых пользователем, со структурами данных в памяти компьютера пользователя. |
Для прикрепления результата сначала выберете тип результата (статьи, книги, ...). После чего введите несколько символов в поле поиска прикрепляемого результата, затем выберете один из предложенных и нажмите кнопку "Добавить".