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

An Open Encyclopedia of Algorithmic Features: from Mobile to Extreme Scale

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

грант РНФ

Этапы НИР

# Сроки Название
1 5 мая 2017 г.-31 декабря 2017 г. Открытая энциклопедия свойств алгоритмов: от мобильных платформ до экзафлопсных суперкомпьютерных систем
Результаты этапа: За время выполнения проекта в 2017 получены следующие результаты. Выделены характерные особенности архитектуры современных вычислительных систем (доминирование тяжелых процессорных ядер, использование ускорителей), выполнено их качественное и количественное описание. Сформированы базовые классы архитектуры компьютеров (PROC, PROC^n, n*PROC) с указанием набора особенностей, характерных для каждого класса. Разработаны методы формирования производных классов архитектуры на основе базовых с использованием операций “+”, “*”, “,” и дополнительных модификаторов, сформированы производные классы. Выделены две группы особенностей классов архитектур, определяющих как методы достижения высокой производительности, так и причины ее снижения. Разработана технология исследования взаимосвязи особенностей классов архитектуры со свойствами алгоритмов, опирающаяся на разработанную в Проекте-2014 структуру описания алгоритмов. По каждому пункту описания алгоритмов указано, что в данном месте описания должно быть отражено касательно каждого класса архитектуры. Спроектирован и сформирован набор характерных примеров, иллюстрирующих как хорошее, так и плохое соответствие свойств алгоритма особенностям архитектуры компьютера. Проведены численные эксперименты на компьютерах с различной архитектурой (Multi-core CPU, NVIDIA GPU K40, Intel Xeon Phi (KNL)) с отражением результатов в AlgoWiki. Разработаны методы формирования оценки, показывающей степень соответствия алгоритмов базовым и производным классам архитектуры. Сформирована шкала оценки. Разработана методика выполнения архитектурной разметки. Исследованы технологии построения и осуществлена привязка существующих списков Top500, Graph500 и HPCG к энциклопедии AlgoWiki. Исследованы методы интеграции энциклопедии AlgoWiki с методикой составления классических списков типа Top500. Определен набор элементов структуры описания алгоритмов, которые могут стать основой для формирования множества классических списков типа Top500 в AlgoWiki. Определены способы представления многомерных данных, описывающих свойства алгоритмов по отношению к различным классам архитектур, в рамках энциклопедии AlgoWiki. Предложен вариант метода связанного представления различных алгоритмических подходов решения одной и той же задачи в рамках энциклопедии AlgoWiki. Цепочка "задача-метод-алгоритм-реализация" является основой для описания любой предметной области в рамках Открытой энциклопедии свойств алгоритмов AlgoWiki. Выполнено связанное представление различных алгоритмических подходов на примере одной реально востребованной на практике задачи (цепочка, ведущую от группы задач "Разложения матриц" до алгоритма "Метод Хаусхолдера (отражений) QR-разложения квадратной матрицы, вещественный точечный вариант"). Показан пример сравнения свойств алгоритмов по нанесенной архитектурной разметке (для графовых алгоритмов, реализующих нахождения кратчайших путей в графе (SSSP), поиск в ширину (BFS), нахождение компонент сильной связности (SCC), поиск мостов (Bridges), нахождение минимального остовного дерева (MST), нахождение транзитивного замыкания (TC)). Таким образом, в ходе выполнения проекта в 2017 году получены все запланированные в отчетном году научные результаты в точном соответствии с планом работ.
2 1 января 2018 г.-31 декабря 2018 г. Открытая энциклопедия свойств алгоритмов: от мобильных платформ до экзафлопсных суперкомпьютерных систем
Результаты этапа: За время выполнения проекта в 2018 получены следующие результаты. Показана взаимосвязь понятия локальности программ и свойств алгоритмов; получен список признаков проявления пространственной и временнОй локальности в алгоритмах; описано влияния свойств алгоритмов на свойства локальности в программах. В целом полученные результаты подтверждают сделанные ранее выводы о локальности и производительности работы с памятью. Используемый Top-down подход позволяет подробно оценить, как на практике проявляется разная степень локальности в программах. Показана взаимосвязь понятия масштабируемости программ и свойств алгоритмов; получен список свойств алгоритмов, препятствующих масштабируемости программ; сформирован набор свойств алгоритмов, поддерживающих хорошую масштабируемость программ. Основные факторы, влияющие на масштабируемость приложений: Исследование характеристик коммуникационной сети. 1) Латентность коммуникационной сети 2) Пропускная способность коммуникационной сети 3) Топология коммуникационной сети Исследование компонентов вычислительного узла компьютера. 4) Влияние обращений к жёсткому диску 5) Характеристики оперативной памяти 6) Объём и характеристики кэш-памяти Факторы, связанные с характеристиками примененного алгоритма или исследуемой программы. 7) Дисбаланс вычислительной нагрузки 8) Предел декомпозиции данных Разработаны методы интеграции архитектурных срезов энциклопедии AlgoWiki с возможностью связанного представления различных алгоритмических подходов решения задач. Реализуемая в рамках проекте AlgoWiki разметка алгоритмов согласно их соответствию архитектуре компьютеров является основой для построения методов сравнения разных алгоритмов между собой, что нужно для перехода от анализа отдельных алгоритмов к анализу алгоритмических методов решения задач. Имея подобную разметку, уже можно сравнивать качество соответствия алгоритмов особенностям архитектуры конкретных компьютеров, понять преимущества каждого подхода по отношению к другим, сравнить теоретический потенциал разных алгоритмических подходов решения одной и той же задачи, а также сделать множество других выводов. Реализованы методы интеграции энциклопедии AlgoWiki с разработанной на первом этапе оценкой, показывающей степень соответствия алгоритмов базовым и производным классам архитектуры. Разработаны и реализованы методы формирования архитектурных срезов энциклопедии AlgoWiki. Разработанная на первом этапе проекта оценка, показывающая степень соответствия алгоритмов базовым и производным классам архитектуры, интегрируется в энциклопедию AlgoWiki в идее набора шаблонов, позволяющих размечать страницы описаний в соответствии с определёнными классами соответствия. При этом архитектурные срезы AlgoWiki реализуются на базе этих шаблонов таким образом, чтобы в получившиеся подмножества вошли только страницы энциклопедии AlgoWiki с заданным уровнем соответствия. Реализованы методики построения списков типа Top500, позволяющие исследовать не только наилучшие достигнутые значения характеристик (время, производительность, эффективность и т.п.), но и значения характеристик в произвольном диапазоне числа процессоров/ядер и размеров задачи. Обеспечена возможность проецирования данных значений на характеристики реальных приложений. Проект AlgoWiki является хорошей основой для естественного расширения методики Top500, используемой сегодня для сравнения вычислительных систем. Опираясь на потенциал AlgoWiki, мы переходим от трех точек, отвечающих Linpack, Graph500 и HPCG, к анализу на основе десятков и сотен самых разных алгоритмов. Среди алгоритмов из AlgoWiki для детального анализа и сравнения мы можем брать не все, а выбирать только те, которые интересуют в первую очередь. Если нужный алгоритм в AlgoWiki отсутствует, его можно добавить, стартовав формирование нового, отвечающего ему рейтинга. Исследованы методы интеграции расширенных списков типа Top500 энциклопедии AlgoWiki с ее архитектурными срезами для получения данных по конкретным классам архитектур. Когда данные о выполнении алгоритма на некоторой вычислительной системе заносятся в энциклопедию AlgoWiki, то сохраняется информация обо всей цепочке от задачи до вычислительной платформы. Это дает дополнительную свободу для проведения сравнения и анализа. Получены результаты необходимых численных экспериментов на компьютерах различных классов для первичного наполнения вариантов списков типа Top500, интегрированных с энциклопедией AlgoWiki. Представлены первые версии списков по двум алгоритмам. В реализованных в AlgoWiki примерах (http://top53.parallel.ru/algo_results/task/29, http://top53.parallel.ru/algo_results/task/32 и др.) конкретные значения производительности получены пользователями AlgoWiki и, во многом, определяются их опытом и усердием. Они не обязаны быть максимально возможными: что человек на практике получил, то он здесь и указывает. Требование лишь одно: при занесении данных в базу AlgoWiki пользователи должны указать всю необходимую информацию, которая может потребоваться для воспроизведения и проверки этих результатов, и, возможно, их последующего улучшения. Разработаны методы сравнительного анализа различных алгоритмических подходов решения одной и той же задачи; сформирован набор количественных и качественных оценок преимущества одного алгоритмического подхода над другим, отражающих как теоретический потенциал алгоритмов, так и особенности реализации для различных классов архитектур. В любых звеньях указанной выше цепочки: задача, метод, алгоритм, реализация, вычислительная платформа, можно зафиксировать нужные значения, а остальные можно менять и на этой основе строить новые рейтинги или же находить те комбинации, которые удовлетворяют заданным условиям. Апробированы разработанные методы связанного представления различных алгоритмических подходов на двух новых примерах задач. Выполнена интеграция составленных за время проекта связанных представлений в энциклопедию AlgoWiki. Архитектурные срезы представлены в энциклопедии AlgoWiki. Одной из основных целей создания Открытой энциклопедии алгоритмов AlgoWiki является возможность предоставления пользователю возможности заранее во всех деталях представить всю описываемую цепочку от задачи до реализации, и выбрать те методы и алгоритмы, которые приведут к наиболее эффективным решениям. Таким образом, в ходе выполнения проекта в 2018 году получены все запланированные в отчетном году научные результаты в точном соответствии с планом работ.

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

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