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

The development of fundamental principles and implementation of software tool suite for mass analysis of parallel application quality based on supercomputer co-design technology

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

грант РНФ

Этапы НИР

# Сроки Название
1 31 июля 2017 г.-30 июня 2018 г. Разработка фундаментальных основ и реализация программного комплекса для массового анализа качества параллельных приложений на основе технологий суперкомпьютерного кодизайна
Результаты этапа: За время выполнения первого этапа проекта были получены следующие результаты. Разработаны фундаментальные основы создания средств и технологий массового анализа качества параллельных приложений. Эти основы сформулированы в виде набора базовых принципов и требований, которым должен следовать разрабатываемый комплекс. С учетом сформулированных требований, определена базовая функциональность и разработана общая архитектура разрабатываемого комплекса. Составлено описание общего алгоритма функционирования комплекса, выделены отдельные подсистемы и модули в его составе, указаны запланированные технологии для реализации различных частей комплекса. Выделены ключевые характеристики для проведения первичного анализа – наиболее важные входные данные, которые могут быть использованы на этом этапе. Основным источником информации о задачах являются данные системного мониторинга, однако также необходимо собирать и анализировать другую информацию, например, данные о программных пакетах и системном программном обеспечении, используемых в задаче, или данные о произошедших сбоях в программно-аппаратной среде суперкомпьютера, которые могут повлиять на эффективность выполнения задачи. Выполнена разработка методов проведения первичного анализа всех приложений, выполняющихся на суперкомпьютере, с учетом составленного списка ключевых характеристик. Основу для проведения первичного анализа составил набор статически заданных правил, каждое из которых описывает конкретную проблему с эффективностью в приложении. Каждое правило задает условие срабатывания (какой признак неэффективности найден), предположение о причинах возникновения данной проблемы и рекомендации по устранению этой проблемы. Выполнена реализация разработанных методов первичного анализа на основе правил, которая была апробирована на суперкомпьютере петафлопсного уровня Ломоносов-2. Реализовано 22 правила, которые были использованы для анализа реальных данных. Реализован web-интерфейс, который позволяет получить результаты первичного анализа по любой завершенной задаче. В рамках данного интерфейса реализована web-страница, которая позволяет пользователю увидеть список его задач с краткой информацией о найденных проблемах с эффективностью. При выборе определенной задачи можно перейти на другую страницу с детальным описанием всех результатов первичного анализа по этой конкретной задаче. После проведения апробации выполнена оценка эффективности использованных методов, которая показала, что предложенное в проекте решение может быть успешно использовано для проведения первичного анализа на реальных крупных суперкомпьютерах петафлопсного уровня. Проведен первичный анализ трех реальных приложений (исследования механизмов микрососудистого тромбоза, волновой томографии и решения типовых задач обработки больших графов) с использованием разработанных методов. Для этого проведена ручная оптимизация этих приложений, описаны способы проведения оптимизации и свойства приложений, которые были затронуты проведенной оптимизацией, а затем для полученных версий приложения – исходной и оптимизированной – выполнено сравнение полученных результатов первичного анализа. Полученные результаты показали, что применение разработанных методов первичного анализа хорошо отражает проведенную оптимизацию и позволяет адекватно оценить изменения в поведении разных вариантов приложения. Стоит отметить, что в дальнейшем планируется расширять набор правил, а также выполнять подстройку параметров работы этих правил под особенности целевого суперкомпьютера. Выделено и описано 15 типов детального анализа, которые могут использоваться для получения подробной информации о работе задач. Разработаны базовые идеи и методы, которые планируется применять для накопления знаний по отдельной задаче при выполнении нескольких типов анализа. Разработаны методы сбора интегральных данных для изучения полного потока задач, выполняющихся на суперкомпьютере. В рамках разрабатываемого комплекса для выполнения этой подзадачи требуется собирать данные трех типов: данные о поведении и эффективности выполнения каждой отдельной задачи; данные о текущем состоянии суперкомпьютера и выполняемых на нем вычислительных задачах, агрегированные по всей вычислительной системе или некоторой выделенной части (например, по разделу с определенной архитектурой вычислительных узлов); данные о «здоровье» суперкомпьютера и его компонент (т.е. данные о сбоях в работе). Составлено описание каждого из типов данных, а также продемонстрированы реальные примеры этих данных, собранных на суперкомпьютере Ломоносов-2. Определен набор существующих решений, которые могут быть интегрированы для расширения функционала разрабатываемого комплекса. На основании проведенного исследования, составлен перечень из 36 существующих программных инструментов, которые являются наиболее перспективными для использования в качестве внешних средств анализа и сбора данных. Составлена таблица применимости выбранных внешних инструментов для каждого из 17 типов анализа (первичный анализ, 15 типов детального анализа, анализ полного потока задач). Выполнено описание рассмотренных внешних инструментов. Таким образом, на данном этапе все ожидаемые научные результаты были достигнуты.
2 1 июля 2018 г.-30 июня 2019 г. Разработка фундаментальных основ и реализация программного комплекса для массового анализа качества параллельных приложений на основе технологий суперкомпьютерного кодизайна
Результаты этапа: За время выполнения второго этапа проекта были получены следующие результаты. Завершена реализация программной подсистемы, направленной на выполнение в автоматическом режиме первичного массового анализа приложений. Данная подсистема в настоящий момент постоянно работает на суперкомпьютере Ломоносов-2 и анализирует весь поток выполняющихся на нем приложений. Результаты первичного анализа стали доступны всем пользователям суперкомпьютера. Выполнено обновление набора правил для проведения первичного анализа. Добавлено 12 новых правил, что позволило расширить спектр проблем, обнаруживаемых на этом этапе. Данные правила направлены, в частности, на поиск зависших или некорректно работающих программ, существенного дисбаланса между узлами по загрузке процессоров и подсистемы памяти, а также определение чрезмерно низкой утилизации вычислительных ресурсов. Проведено уточнение и модификация созданных ранее правил с учетом проведенной апробации на реальных данных. Разработаны методы для проведения 10 типов детального анализа с целью получения подробной информации о различных аспектах работы приложений. В частности, разработаны методы для анализа многопоточных программ, исследования масштабируемости, низкоуровневого анализа на основе аппаратных датчиков, профилирования MPI-программ, общего анализа последовательных программ, анализа эффективности и корректности работы с памятью и т.д. Для этих типов составлено описание алгоритмов их выполнения, а также определен спектр проблем с эффективностью, которые потенциально могут быть обнаружены с их помощью. На основе разработанных методов выполнена реализация 5 типов детального анализа отдельных приложений: анализ эффективности работы с памятью, профилирование MPI-программ, анализ работы с ускорителями, сбор более детальных данных по задаче и анализ корректности работы с памятью. Для каждого типа реализован набор правил, определяющий перечень проблем с эффективностью, которые на практике доступны для обнаружения. Выполнена апробация на реальных приложениях, работающих на суперкомпьютере Ломоносов-2. Разработаны механизмы накопления знаний по задаче, которые предназначены для интеграции результатов от различных методов предварительного и детального анализа. Для описания процесса накопления знаний составлена общая схема, которая описывает, как с помощью разрабатываемых решений на практике могут быть обнаружены те или иные проблемы с эффективностью. Эта же схема помогает определить, какие реальные проблемы могут быть обнаружены с помощью выбранного типа первичного или детального анализа. Создана пилотная версия программного комплекса, реализующая разработанные методы первичного и детального анализа. Данное программное решение апробировано на суперкомпьютере петафлопсного уровня Ломоносов-2. Проведенное исследование масштабируемости решения с точки зрения обработки всего потока приложений показало, что оно может быть применено и для работы с суперкомпьютерами будущего производительностью в десятки и сотни Петафлопс. С помощью предложенного программного решения проведено исследование основных узких мест, влияющих на эффективность трех реальных приложений. Изучены проблемы, возникающие из-за неэффективной работы с MPI, в задаче волновой томографии. Проведен анализ работы с графическими ускорителями в задачах обработки больших графов. При анализе задачи исследования механизмов микрососудистого тромбоза наиболее интересные результаты получены при анализе корректности и эффективности работы с памятью. На основе созданных ранее методов сбора данных о состоянии суперкомпьютера разработаны методы анализа этих данных для изучения полного потока задач. Предложены и описаны 7 вариантов представления информации для оценки качества работы суперкомпьютерных центров. В частности, предложены конкретные варианты представлений для составления единого экрана администратора, разбора структуры потока задач, оценки надежности и работоспособности суперкомпьютера, определения эффективности работы отдельных пользователей или проектов и другие. Все ожидаемые на данном этапе научные результаты были достигнуты.
3 1 июля 2019 г.-30 июня 2020 г. Разработка фундаментальных основ и реализация программного комплекса для массового анализа качества параллельных приложений на основе технологий суперкомпьютерного кодизайна
Результаты этапа: За время выполнения третьего этапа проекта были получены следующие результаты. Выполнена программная реализация 5 методов для проведения различных типов детального анализа. А именно, были реализованы и апробированы методы для выполнения низкоуровневого анализа и общего анализа программы, анализа многопоточной программы и особенностей ввода/вывода, а также трассировки MPI-программ. Апробация выполнялась на реальных приложениях, запускаемых пользователями в суперкомпьютерном центре МГУ. Реализованы разработанные ранее методы сбора и анализа интегральных данных для исследования соответствия потока задач текущей конфигурации суперкомпьютерных комплексов. На основе этих методов были созданы и апробированы 7 вариантов представления данных, отражающие различные аспекты общего состояния суперкомпьютера (СК). Например, были реализованы варианты представления для анализа общей статистики о состоянии суперкомпьютера и изучения эффективности работы пользователей и проектов, а также дайджест администратора. Данные варианты представления уже применяются на практике для исследования качества работы суперкомпьютера Ломоносов-2. Выполнена финальная доработка и интеграция всех реализованных методов. Данные методы легли в основу работы трех основных подсистем, предназначенных для проведения первичного и детального анализа, а также анализа качества работы суперкомпьютера. В результате проведенной интеграции подсистем был создан единый программный комплекс TASC (Tuning Applications for SuperComputers), реализующий всю заявленную в проекте функциональность. Часть TASC по проведению первичного анализа полностью реализована и постоянно работает на СК Ломоносов-2, доступ к результатам ее работы имеют все пользователи данного суперкомпьютера. Часть TASC по проведению детального анализа полностью реализована, апробирована на полной копии системы Октошелл и готова к внедрению в основную версию Октошелла, где доступ к ее результатам сможет получить любой пользователь суперкомпьютера. Внедрение этой части TASC в оперативную работу СК Ломоносов-2 будет выполнено после утверждения регламента ее включения в производственную цепочку администрацией суперкомпьютера. Часть TASC по проведению анализа качества работы суперкомпьютера полностью реализована, собирает и анализирует информацию о состоянии СК Ломоносов 2 в режиме 24*7, обеспечивая постоянный доступ к параметрам качества работы суперкомпьютера администраторам и руководству суперкомпьютерного центра. Выполнена масштабная апробация работоспособности и качества функционирования комплекса TASC на реальных данных суперкомпьютера Ломоносов-2. В частности, была изучена статистика по результатам проведения первичного анализа для более чем 300 тысяч задач, выполненных на суперкомпьютере Ломоносов-2. Также была собрана и изучена разнообразная информация о качестве работы данного суперкомпьютера за продолжительное время, на основе чего были выявлены причины снижения эффективности в различных реальных пользовательских приложениях. Данная апробация показала, что разработанный программный комплекс TASC применим на практике и исключительно полезен как для пользователей, так и для администраторов и руководства суперкомпьютерного центра МГУ. Он позволяет получать интересные и важные для практических выводов результаты, а также помогает анализировать и качественно повышать эффективность как отдельных приложений, так и суперкомпьютера в целом. Проведено детальное исследование особенностей, свойств и производительности трех реальных приложений, направленных на исследование механизмов микрососудистого тромбоза, волновой томографии и решения типовых задач обработки больших графов. Данное исследование было выполнено с помощью реализованных методов для проведения детального анализа в рамках комплекса TASC. Были обнаружены и изучены узкие места в программах, а также предложены возможные варианты для проведения их оптимизации. На основе полученного опыта был составлен набор практических рекомендаций как по реорганизации потоков задач, так и по оптимизации конфигураций существующих суперкомпьютеров. Данные рекомендации предназначены для администраторов и руководства суперкомпьютерных центров и направлены на повышение эффективности прохождения потока задач, выполняющихся на суперкомпьютере. Таким образом, все ожидаемые на данном этапе научные результаты были достигнуты.

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

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