|
ИСТИНА |
Войти в систему Регистрация |
ИСТИНА ПсковГУ |
||
Суперкомпьютерный кодизайн – это ключевой этап в решении задач с использованием высокопроизводительной вычислительной техники, который в настоящее время стал универсальным и массовым: вычислительные технологии сегодня проникли абсолютно везде, затронув большое число пользователей из самых разных предметных областей. Цель суперкомпьютерного кодизайна заключается в согласовании свойств используемых методов и алгоритмов со структурой создаваемого кода и особенностями целевой архитектуры. Только в случае успешного согласования можно рассчитывать на эффективное решение задач с использованием всех возможностей суперкомпьютерных ресурсов. И вне зависимости от того, в рамках какой вычислительной парадигмы планируется создавать суперкомпьютерное приложение или решать задачу: на основе математического моделирования, технологий работы с большими данными или же опираясь на технологии искусственного интеллекта, методы суперкомпьютерного кодизайна актуальны в любом случае. На практике задачи, требующие использования методов суперкомпьютерного кодизайна, могут ставиться по-разному, но наиболее распространенными являются три классические постановки: спроектировать метод решения задачи с ориентацией под имеющуюся архитектуру суперкомпьютера, подобрать наилучший вариант архитектуры суперкомпьютерной системы под класс задач или же создать приложение (программу) с учетом особенностей используемого метода и целевой архитектуры. В настоящее время в каждом из таких случаев пользователи, как правило, опираются на сложившуюся практику и, возможно, на имеющийся личный опыт, но здесь нужен строгий подход, нужны конструктивные методы и методики. Даст ли использование SIMD-инструкций существенное ускорение в расчетах для заданного алгоритма? Возможна ли эффективная векторизация для рассматриваемого метода? Что важнее для эффективной реализации выбранного метода: размер кэш-памяти первого уровня или число каналов в память? В реальной вычислительной практике подобных вопросов очень много и возникают они на каждом шагу… Для успешной работы в рамках каждой постановки необходимо не только детальное изучения свойств, структуры, особенностей и характеристик для методов, алгоритмов, программного кода и архитектуры как самостоятельных объектов. Требуется использование и методов проведения их совместного анализа, показывающих, насколько они соответствуют друг другу и насколько высокой является степень согласованности ключевых элементов цепочки “задача-метод-алгоритм-программа-архитектура”. На сегодня подобные методы суперкомпьютерного кодизайна для проведения совместного анализа, опирающиеся на единый подход, отсутствуют, и на это направленпредлагаемый проект. В рамках данного проекта будут рассматриваться все три постановки, на которых будут отрабатываться и иллюстрироваться методы и технологии суперкомпьютерного кодизайна. В работе будет активно использоваться значительный задел, полученный авторским коллективом в ходе исследований в рамках проектов открытой энциклопедии свойств алгоритмов AlgoWiki и цифровой платформы Algo500, а также значительный опыт коллектива по составлению и поддержке суперкомпьютерного рейтинга Top50. Дополнительно отметим, что суперкомпьютерные технологии и, в частности, суперкомпьютерный кодизайн, являются сквозными технологиями, применимыми практически ко всем областям науки и отраслям экономики, напрямую влияющими на конкурентоспособность научных исследований и промышленной продукции, качество жизни людей, на устойчивое развитие общества.
Supercomputer co-design is a key stage in solving problems using high-performance computing technology, which has now become universal and mass: computing technologies have now penetrated absolutely everywhere, affecting a large number of users from a wide variety of subject areas. The goal of supercomputer co-design is to harmonize the properties of the methods and algorithms used with the structure of the code being created and the peculiarities of the target architecture. Only in case of successful harmonization one can count on efficient solution of problems using all the possibilities of supercomputer resources. And regardless of what computing paradigm is used to create a supercomputer application or solve a problem: on the basis of mathematical modeling, big data technologies or relying on artificial intelligence technologies, supercomputer co-design methods are relevant in any case. In practice, tasks requiring the use of supercomputer co-design methods can be posed in different ways, but the most common are three classical formulations: to design a method for solving a problem with orientation to the existing supercomputer architecture, to select the best variant of the supercomputer system architecture for a class of problems, or to create an application (program) taking into account the peculiarities of the used method and target architecture. At present, in each of these cases, users usually rely on the established practice and, perhaps, on their personal experience, but a rigorous approach is needed here, constructive methods and techniques are required. Will the use of SIMD-instructions give a significant speedup in calculations for a given algorithm? Is efficient vectorization possible for the considered method? What is more important for effective implementation of the chosen method: the size of the first-level cache memory or the number of channels into memory? In real computational practice there are a lot of such questions and they arise at every step... For successful work within each statement it is necessary not only to study in detail the properties, structure, features and characteristics of methods, algorithms, program code and architecture as independent objects. It is also necessary to use methods of their joint analysis, showing how they correspond to each other and how high is the degree of consistency of the key elements of the chain “problem-method-algorithm-software code and architecture”. To date, there are no such supercomputer coding techniques for collaborative analysis based on a unified approach, and this is the focus of the proposed project. This project will consider all three productions on which supercomputer coding methods and techniques will be practiced and illustrated. The work will actively utilize the significant contribution obtained by the author's team in the course of research within the framework of the projects of the AlgoWiki open encyclopedia of parallel algorithmic features and the Algo500 digital platform, as well as the team's considerable experience in compiling and maintaining the Top50 supercomputer ranking. Additionally, it should be noted that supercomputer technologies and, in particular, supercomputer co-design, are cross-cutting technologies applicable to virtually all fields of science and sectors of the economy, directly affecting the competitiveness of scientific research and industrial products, the quality of life of people, and the sustainable development of society.
Ожидаемые результаты по годам 2025 год Обзор существующих подходов и методов к описанию и анализу свойств, структуры, особенностей и характеристик элементов суперкомпьютерной триады: методов решения задачи, характеристик программных реализаций и архитектур вычислительных систем. Целевая функция обзора, которая должна учитываться при его составлении – последующая разработка методов совместного анализа данных элементов. Структура описания элементов триады суперкомпьютерного кодизайна. Описание результата анализа необходимости и достаточности данной структуры описаний для обработки примеров, важных на практике (необходимость), и для обеспечения покрытия значительной доли практических случаев в целом (достаточность). Результат оценки предложенной структуры описаний различных элементов с точки зрения принципиальной возможности проведения их совместного анализа на будущих этапах проекта. Обзор по использованию методов искусственного интеллекта и машинного обучения для решения задач суперкомпьютерного кодизайна: перечисление возникающих задач с анализом используемых методов AI&ML. Коллекции описаний алгоритмов и больших наборов текстов программ для использования в процедурах обучения. Описание результата анализа степени готовности разработанных ранее систем AlgoWiki и Algo500 к реализации сценариев суперкомпьютерного кодизайна. Описание последовательности действий при решении трёх типовых задач, выделение недостающей функциональности систем AlgoWiki и Algo500 для решения трёх типовых задач суперкомпьютерного кодизайна, описание результата анализа необходимой степени формализации и автоматизации, сценарии решения типовых задач. Описание выбранной значимой опорной задачи, требующей для решения высокопроизводительные вычислительные системы, для апробации создаваемых в проекте технологий и методов. Описание выбранного приложения для решения опорной задачи, описание выбранной целевой суперкомпьютерной архитектуры. Описание результата первичного исследования качества работы приложения на суперкомпьютере с выбранной архитектурой для фиксации референсных показателей. Публикации и выступления с докладами по проекту. Отчетные материалы по текущему этапу проекта. 2026 год Описание технологии конструктивного использования выбранных подходов и методов к описанию и анализу свойств, структуры, особенностей и характеристик для всех основных элементов триады суперкомпьютерного кодизайна при решении задач суперкомпьютерного кодизайна. Описание результата исследования взаимозависимости пунктов описания элементов триады суперкомпьютерного кодизайна. Таблицы соответствия, показывающие взаимосвязь между пунктами описания элементов триады суперкомпьютерного кодизайна. Описание разработанных методов совместного анализа, основанных на использовании количественных и качественных характеристик разных элементов триады суперкомпьютерного кодизайна. Описание результатов вычислительных экспериментов по использованию методов искусственного интеллекта для решения задач суперкомпьютерного кодизайна. Описание результатов анализа применимости выделенных коллекций описаний алгоритмов и больших наборов текстов программ в процедурах обучения. Детальное описание базового сценария нахождения метода решения задачи с ориентацией под имеющуюся архитектуру. Детальное описание базового сценария проектирования (определения требований) или подбора варианта архитектуры суперкомпьютерной системы, подходящей под рассматриваемый класс методов. Детальное описание базового сценария создания или преобразования приложения (программы, реализации, программного кода) с учетом особенностей используемого метода и целевой архитектуры. Описание архитектуры специализированного инструментария, реализующего сценарии суперкомпьютерного кодизайна: функционал, платформа, используемые технологии. Описание опорной задачи: результаты анализа свойств, структуры, особенностей и характеристик, выбранных для апробации алгоритма, программной реализации и целевого суперкомпьютера. Описание результатов анализа степени согласованности данных характеристик. Описание результатов анализа эффективности использования разработанных методов применительно к решению опорной задачи. Публикации и выступления с докладами по проекту. Отчетные материалы по текущему этапу проекта. 2027 год Описание результатов анализа эффективности разработанных методов проведения совместного анализа элементов триады суперкомпьютерного кодизайна. Список практических рекомендаций по их использованию. Результаты анализа полноты составленных таблиц соответствия пунктов описания элементов триады суперкомпьютерного кодизайна. Уточнённые и скорректированные таблицы соответствия, показывающие взаимосвязь между пунктами описания элементов триады суперкомпьютерного кодизайна. Описание возможных типовых сценариев решения задач суперкомпьютерного кодизайна, отличных от базовых. Средства программной поддержки описанных базовых сценариев суперкомпьютерного кодизайна, представленные в свободном доступе для вычислительного сообщества. Описание доработки реализованных базовых сценариев суперкомпьютерного кодизайна по итогам апробации. Описание процесса исследования и последовательных шагов в решении опорной задачи: результаты апробации подходов, методов, инструментария, методик и рекомендаций, разработанных в ходе выполнения данного проекта, в рамках реализации технологии кодизайна для выбранного приложения на выбранном суперкомпьютере. Отчет по выработке рекомендаций и последовательности принятия решений в адаптации опорной задачи к архитектуре. Публикации и выступления с докладами по проекту. Отчетные материалы по текущему этапу проекта и проекту в целом.
Руководитель проекта: чл.-корр.РАН, профессор Воеводин В.В., является признанным учёным в области вычислительной техники, суперкомпьютерных технологий и параллельного программирования. Им разработана комплексная методология выявления по исходному тексту программ многоступенчатой иерархической структуры больших программных комплексов, построены новые критерии, в том числе неулучшаемые, для установления параллелизма вычислений, выполнения эквивалентных преобразований программ, выявления большого числа нетрадиционных свойств, созданы эффективные методы практической реализации данных критериев. За десятилетия успешной работы основных членов коллектива получены фундаментальные результаты по технологиям разработки программного обеспечения для решения вычислительно сложных задач из самых разных предметных областей науки и отраслей экономики, методам и технологиям искусственного интеллекта. Это подтверждается значительным числом публикаций и успешно выполненных проектов (системы V-Ray, X-Com, Octoshell, DiMMon, TASC и многие другие). Выполняя исследования, коллектив постоянно проверяет их на практике, выполняя проектирование, установку и поддержку суперкомпьютерных систем высшего диапазона производительности в рамках суперкомпьютерного комплекса Московского университета. Много работ авторского коллектива проекта посвящено исследованию структуры суперкомпьютерных приложений, определению потенциальных свойств используемых алгоритмических подходов, решению других практических задач суперкомпьютерного кодизайна, которые выполнялись в совместной работе с группами из самых разных предметных областей. Один из успешных проектов последних лет - создание Открытой энциклопедии свойств алгоритмов AlgoWiki, в рамках которого удалось отработать эффективный и конструктивный подход к описанию структуры алгоритмов. Значительный задел в области архитектуры суперкомпьютеров получен в рамках ведения проекта Top50 самых мощных вычислительных систем России, который стартовал с 2004 года.
| грант РНФ |
| # | Сроки | Название |
| 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 |
| Результаты этапа: - | ||
Для прикрепления результата сначала выберете тип результата (статьи, книги, ...). После чего введите несколько символов в поле поиска прикрепляемого результата, затем выберете один из предложенных и нажмите кнопку "Добавить".