Разработка фундаментальных основ суперкомпьютерного кодизайна на базе открытой энциклопедии алгоритмов AlgoWikiНИР

Development of fundamental principles of supercomputer co-design based on the AlgoWiki open encyclopedia of parallel algorithmic features

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

грант РНФ

Этапы НИР

# Сроки Название
1 28 мая 2025 г.-31 декабря 2025 г. Разработка фундаментальных основ суперкомпьютерного кодизайна на базе открытой энциклопедии алгоритмов AlgoWiki
Результаты этапа: 1. Проведены исследования и составлен обзор существующих подходов и методов к описанию и анализу свойств, структуры, особенностей и характеристик элементов суперкомпьютерной триады: методов решения задачи, характеристик программных реализаций и архитектур вычислительных систем. Обзор методов решения задачи и программных реализаций показал, что именно схема, предложенная в Открытой энциклопедии свойств алгоритмов AlgoWiki, наиболее полно и многогранно описывает и раскрывает свойства рассматриваемых объектов. В других коллекциях алгоритмов можно отметить отдельные интересные элементы, но стройной структуры описания они не предлагают. Обзор существующих подходов и методов к описанию и анализу свойств, структуры, особенностей и характеристик архитектур вычислительных систем показал, что наиболее перспективными и полными являются методы описания, используемые в текущей версии Algo500, а также в расширяемой иерархической модели систем на базе модели данных Топ50. 2. В качестве структуры описания элементов триады суперкомпьютерного кодизайна предлагается взять описания, принятые в проектах AlgoWiki и Algo500. Проведен анализ необходимости и достаточности данной структуры описаний для обработки примеров, важных на практике (необходимость), и для обеспечения покрытия значительной доли практических случаев в целом (достаточность). Выполнена оценка предложенной структуры описаний различных элементов с точки зрения принципиальной возможности проведения их совместного анализа на будущих этапах проекта. В рамках анализа необходимости разделов описания структуры алгоритмов энциклопедии AlgoWiki проведено обоснование необходимости каждого из разделов на конкретных примерах. Выполнен анализ предложенной структуры описания алгоритмов с точки зрения ее достаточности для обеспечения покрытия значительной доли практических случаев. Были обнаружены классы алгоритмов, для описания параллельных свойства которых предложенного описания было не достаточно: если описывать только по этой схеме, то значительный ресурс параллелизма был бы утерян. 3. Составлен обзор по использованию методов искусственного интеллекта и машинного обучения для решения задач суперкомпьютерного кодизайна: перечисление возникающих задач с анализом используемых методов AI&ML. Выполнены поиск и структуризация коллекций описаний алгоритмов и больших наборов текстов программ для использования в процедурах обучения. Проведено исследование применяемых методов искусственного интеллекта и машинного обучения для решения задач суперкомпьютерного кодизайна. В рамках исследования была составлена классификация автоматизируемых подзадач суперкомпьютерного кодизайна. Для каждого выделенного класса был составлен обзор существующих подходов, с описанием основных принципов реализации методологии, а также анализом практической применимости. Проведено исследование существующих коллекций описаний алгоритмов и наборов текстов программ достаточных для применения в процедурах обучения моделей машинного обучения и нейронных сетей. Для каждой коллекции, удовлетворяющей критериям достаточности для применения в процедурах обучения передовых нейросетевых моделей, был составлено краткое описание, включающее реализацию алгоритма сборки данных, а также характеристику обучающих данных. Дополнительно были рассмотрены методы автоматического извлечения алгоритмов работы программного кода для подготовки собственных коллекций описаний алгоритмов для обучения специализированных нейросетевых моделей. 4. Анализ степени готовности разработанных ранее систем AlgoWiki и Algo500 к реализации сценариев суперкомпьютерного кодизайна. Описание последовательности действий при решении трёх типовых задач, выделение недостающей функциональности систем AlgoWiki и Algo500 для решения трёх типовых задач суперкомпьютерного кодизайна, анализ необходимой степени формализации и автоматизации, составление и первичная апробация сценариев решения типовых задач. Составлено качественное описание последовательности действий при решении трёх типовых задач. 1. Выбор вычислительной платформы Для подбора платформы необходимо 1) выбрать подходящие классы систем исходя из свойств алгоритма и 2) для выбранных классов построить сравнительный рейтинг известных референсных реализаций. Выделение высокоуровневых свойств аппаратных платформ, являющихся ключевыми для успешной реализации алгоритмов, позволило бы частично автоматизировать данную последовательность действий. 2. Выбор вычислительного метода и алгоритма Для решения данной задачи можно построить рейтинг реализаций всех методов и алгоритмов, имеющих отношение либо к интересующей задаче, либо вообще всех, ограничив выборку характеристиками вычислительных систем на интересующем уровне абстракции. Это может быть пропускная способность памяти, число ядер в SMP узле, класс систем (кластерная, гибридная с GPU) и т.д. 3. Создать/преобразовать приложение с учетом метода и архитектуры Для оценки производительности собственной реализации, а при нахождении более удачной – изучение ее особенностей, целесообразно было бы строить выборку одновременно по упомянутым в первой и второй задаче критериям. При этом, с одной стороны, интересно нахождение именно реализаций для фиксированных платформ и методов/алгоритмов. С другой – интересно отдельно оценить удачность своей реализации с точки зрения используемого метода или выбранной целевой платформы. Как следствие, принять решение, быть может, стоит один из этих критериев сделать не столь жестким и рассмотреть развитие своего приложения в сторону использования новых методов или использования особенностей других архитектур. Пользователю необходимо понять, что же он может изменить в своей программе, а для этого будет крайне полезно посмотреть детали заинтересовавшей референсной реализации. Такую возможность предоставил бы репозиторий референсных реализаций в дополнение к развитой системе построения выборок из первых двух задач. Проведен анализ степени готовности разработанных ранее систем AlgoWiki и Algo500 к реализации сценариев суперкомпьютерного кодизайна. Выделена недостающая функциональность систем AlgoWiki и Algo500 для решения трёх типовых задач суперкомпьютерного кодизайна. Проведен анализ необходимой степени формализации и автоматизации. 1. AlgoWiki Целесообразно разработать методы описания классов свойств алгоритмов относительно качественной потребности в том или ином виде вычислительного ресурса. Например, суммарная пропускная способность памяти, наличие общей памяти для максимального числа параллельных процессов, максимально большое число независимых вычислительных узлов и т.д. С технологической стороны необходимо развивать интеграционную компоненту связи между сервисами Algo500 и AlgoWiki – рейтинги производительности реализаций и т.д. 2. Algo500 Принципиально существующие компоненты Algo500 позволяют реализовать все три цепочки. Наиболее существенными являются: - необходимость развития средств описания подмножества системы, задействованных при запуске, - разработка репозитория с референсными реализациями, который должен включать не только коды программ, но и, где требуется, входные данные, параметры компиляции и другие параметры, которые на данный момент не реализованы в достаточной мере, - расширение описаний целевых платформ качественным описанием классов, например, SMP, кластерная система, гетерогенная на базе GPU и т.д. для связи со свойствами категорий алгоритмов и методов помимо связи через значения отдельных характеристик платформы (условно, производительность, объем памяти и т.п.). Проведено составление и первичная апробация сценариев решения типовых задач. Проведено исследование характеристик программных реализаций, которые необходимо реализовать при расширении существующего функционала Algo500. Определено, что необходима разработка репозитория с референсными реализациями, который должен включать не только коды программ, но и, где требуется, входные данные, параметры компиляции, сведения о программном окружении. 5. В качестве опорной задачи, требующей для решения высокопроизводительные вычислительные системы, для апробации создаваемых в проекте технологий и методов было выбрано использование метода сопряжённых градиентов для решения переопределённых систем линейных алгебраических уравнений с плотно заполненной матрицей. Эта опорная задача даёт возможность связывать между собой все три аспекта триады суперкомпьютерного кодизайна: информационную структуру, коммуникационный профиль приложения и топологию коммуникационной сети. В качестве целевой суперкомпьютерной архитектуры был выбран суперкомпьютер «Ломоносов-2», установленный в Суперкомпьютерном комплексе Московского государственного университета имени М.В.Ломоносова. На примере выбранной опорной задачи была продемонстрирована принципиальная возможность использования идей суперкомпьютерного кодизайна для автоматического согласования оптимальной топологии вычислений с особенностями решаемой задачи, особенностями используемой суперкомпьютерной системы и технологией параллельного программирования. Таким образом, в ходе выполнения проекта в 2025 году получены все запланированные в отчетном году научные результаты в точном соответствии с планом работ.
2 1 января 2026 г.-31 декабря 2026 г. Разработка фундаментальных основ суперкомпьютерного кодизайна на базе открытой энциклопедии алгоритмов AlgoWiki
Результаты этапа: -
3 1 января 2027 г.-31 декабря 2027 г. Разработка фундаментальных основ суперкомпьютерного кодизайна на базе открытой энциклопедии алгоритмов AlgoWiki
Результаты этапа: -

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

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