СИСТЕМА И СПОСОБ ИНТЕРПРЕТАЦИИ И АНАЛИЗА ДИНАМИЧЕСКИХ ХАРАКТЕРИСТИК ТЕКУЩЕГО СОСТОЯНИЯ ВЫПОЛНЯЕМЫХ ЗАДАЧ
SYSTEM AND METHOD FOR INTERPRETING AND ANALYZING DYNAMIC CHARACTERISTICS OF THE CURRENT STATE OF TASKS PERFORMED

Область техники
Заявляемая группа изобретений относится к тематике исследования поведения программ (задач) во время выполнения на суперкомпьютерных системах и предназначена для реализации всестороннего анализа динамических характеристик параллельных программ и суперкомпьютеров. При проведении анализа учитываются характеристики задачи, начиная от момента постановки в очередь и заканчивая ее завершением. Это позволяет получать полную информацию как о самой задаче, так и о всей совокупности выполняемых на суперкомпьютере задач.
Вместе с ростом масштаба вычислительных систем и решаемых на них задач растет и сложность написания эффективных программ. Свойства аппаратного и программного обеспечения суперкомпьютера, свойства самой исполняемой программы, взаимное влияние исполняемых программ друг на друга - все это необходимо учитывать, если стремишься добиться высокой эффективности. Основная задача любой суперкомпьютерной установки - удовлетворение потребностей пользователей, решающих задачи, за которыми стоят реальные проблемы из различных прикладных областей. Поэтому проблема повышения эффективности работы каждого отдельного приложения чрезвычайно актуальна. Ее успешное решение для отдельного приложения благоприятно сказывается на решении не только той реальной научной задачи, которая за ней стоит, но и на работе всей системы в целом.
Уровень техники
Значительное число доступных сегодня программных средств, ориентированных на обнаружение конкретного местоположения ошибки в программе пользователя, локализации части программы, которая работает неэффективно и нуждается в оптимизации, используют метод трассировки. Чаще всего определяется набор фиксируемых событий, гранулярность их сбора, сами источники данных. Помимо сбора сведений о возникновении самих событий, распространена практика использования файла трасс для анализа итоговой последовательности операций и/или событий при выполнении приложения.
Подходы, имеющие в основе трассировку, достаточно развиты и широко распространены. Наиболее характерными представителями своих подходов могут служить следующие программные средства.
Известная система Scalasca (http://www.scalasca.org) поддерживает выполнение оптимизации производительности параллельных приложений на основании измерений 19 характеристик в ходе выполнения программы и соответствующем анализе. Такой анализ позволяет определить потенциально узкие места в приложении, относящиеся к коммуникации и синхронизации процессов. Система также предоставляет направления для дальнейшего углубленного изучения проблемных мест. В системе можно выбрать один из двух режимов анализа: исследование производительности на уровне вызовов функций, основанный на суммарных временах выполнения (профилирование) и изучение поведения задачи, основанное на трассировке событий. Система доступна для загрузки под лицензией с открытыми исходными кодами New BSD.
Система Score-P (http://www.vi-hps.org/projects/score-p) является относительно новой системой сбора и анализа данных о работе программ, работающей на уровне приложений. Система доступна с открытым исходным кодом и основана на инструментации кода программ.
Известная технология ThreadSpotter (http://www.roguewave.com/products/threadspotter), ориентированная на оптимизацию производительности, разработана корпорацией Rogue Wave и является естественным продолжением исследовательских проектов Упсальского Университета, Швеция. В обычном режиме собирается разнородная информация о поведении программы в виде так называемого «отпечатка». На основе данной информации производительность кэшей любого размера с любым размером строки и с любой стратегией выталкивания может оцениваться ThreadSpotter'oM без привязки к целевой системе. ThreadSpotter также позволяет обнаруживать ошибки и места падения производительности в приложениях в контексте определенных закономерностей доступа к данным. Такого рода ошибки группируются в 4 группы проблем: проблемы замусоривания кэшей, проблемы латентности, проблемы пропускной способности и проблемы взаимодействия потоков.
Из уровня техники известны СУПЗ, которые также могут быть использованы при реализации заявленного изобретения:
SLURM (Simple Linux Utility for Resource Management) - высокомасштабируемый отказоустойчивый менеджер кластеров и планировщик заданий для вычислительных узлов больших кластеров. SLURM поддерживает очередь ожидающих заданий и управляет общей загрузкой ресурсов в процессе выполнения вычислительных задач. Также SLURM управляет доступными вычислительными узлами. Наконец, в дополнение к мониторингу параллельных заданий вплоть до их завершения SLURM распределяет нагрузку по выделенным узлам (https://computing.llnl.gov/liniix/slurm/).
CLEO - программный комплекс, входящий в состав системы ParCon, решающей задачи эффективного управления ресурсами вычислительных кластеров, а также анализа эффективности кластеров и параллельных программ (http://parcon.parallel.ru/cleo.html). Эта система ориентирована на работу с параллельными приложениями и поддерживает многие параллельные среды.
Каждая из таких систем ведет собственный учет всех известных ей задач и событий, связанных с ходом выполнения приложения.
Таким образом, если требуются сведения о потоке, то основным источником данных о самой структуре потока задач является непосредственно система управления потоком задач (СУПЗ), называемая также менеджером ресурсов (Resource Manager).
Также при реализации подхода, описанного в заявляемом изобретении, используют данные систем мониторинга с каждого вычислительного узла. В качестве таких систем мониторинга могут быть использованы известные ClustrX Watch, Ganglia.
ClustrX Watch - распределенная система мониторинга параметров кластера, предназначенная для организации сбора, регистрации и обработки данных с большого количества датчиков всех подсистем кластера и способная функционировать в отказоустойчивом режиме. ClustrX Watch является разработкой ОАО «Т-Платформы», г. Москва, и входит в систему управления кластером - ClusrtX.
Некоторые из упомянутых средств позволяют провести сбор базовой информации о состоянии вычислителя. Но существует множество специализированного инструментария, более полно реализующего возможности системного мониторинга.
Одним из наиболее известных средств сбора данных системного мониторинга является общедоступная система Ganglia (http://ganglia.sourceforge.net). Она позволяет собирать информацию о загрузке процессора, загрузке сети, использовании памяти, многих других ресурсах, но не позволяет осуществить анализ собранных данных в привязке к конкретным выполняемым приложениям. Что важно, система не обеспечивает высокую детализацию по времени при больших масштабах исследуемых систем.
Для суперкомпьютерных комплексов, которые призваны решать задачи из разных областей науки, характерна неоднородность решаемых задач: различные требования по объемам требуемых ресурсов, возможности использования вычислительных ускорителей, доступности локальных дисков и многому другому.
Таким образом, используя эти сведения, можно осуществить привязку данных системного мониторинга, отражающих состояние вычислителя непосредственно с приложением, использующим известный набор узлов или разделов вычислительной системы.
Сочетание доступности данных от СУПЗ, описывающих всю структуру загрузки вычислительной системы, с богатыми возможностями системного мониторинга позволяет разработать комплексные методы анализа эффективности суперкомпьютерных приложений и систем - от уровня отдельного приложения до уровня раздела или системы в целом.
Раскрытие изобретения
Задачей заявляемой группы изобретений является обеспечение качественного анализа любой задачи из всего потока задач, выполненных суперкомпьютером и количественного анализа среднего использования задачами вычислительных ресурсов. Снижение эффективности работы каждого отдельного суперкомпьютерного приложения, каждой задачи приводит к увеличению затраченного времени, что ведет к снижению эффективности работы системы в целом. Таким образом, заявляемое техническое решение направлено на повышение эффективности работы суперкомпьютера за счет создания возможности оперативного реагирования на текущее состояние решаемой задачи.
Технический результат, достигаемый при использовании заявляемого изобретения, заключается в обеспечении возможности оценки пользователем информации о характеристиках и динамических особенностях выполнения той или иной конкретной задачи, решаемой суперкомпьютером, ее текущего состояния.
Поставленная задача решается тем, что заявляемая система интерпретации и анализа динамических свойств задач, решаемых суперкомпьютером, включает:
набор вычислительных узлов суперкомпьютера, каждый из которых снабжен средствами системы мониторинга (СМ) и системы управления потоком задач (СУПЗ),
сервер обработки информации, включающий модуль агрегации данных от системы мониторинга каждого вычислительного узла, модуль анализа данных от системы управления потоком задач каждого вычислительного узла, а также блок хранения данных,
средство визуализации результатов обработки, при этом
средства СМ включают датчики системного мониторинга, обеспечивающие получение информации о состоянии и степени использования доступных ресурсов от каждой из доступных систем мониторинга,
средства СУПЗ предназначены для получения информации о статусе задач, их распределении по узлам и характере использования ресурсов на вычислительных узлах.
Поставленная задача также решается тем, что заявляется способ интерпретации и анализа динамических свойств задач, решаемых суперкомпьютером, включающий следующие этапы:
- сбор данных с вычислительных узлов от датчиков системного мониторинга вычислительного узла суперкомпьютера по каждой отдельной задаче в ходе ее выполнения и помещение собранных данных в модуль агрегации;
- сбор данных от системы управления потоком заданий по каждой отдельной задаче и помещение собранных данных в модуль анализа;
- обработка собранных данных сервером обработки информации и связывание их по одинаковым выполняемым задачам;
- формирование сервером обработки информации отчета по задаче по запросу пользователя, включающего результаты обработки собранных данных по каждой задаче;
- визуализация отчета.
При обработке собранных данных модулями агрегации и анализа осуществляют сохранение результатов обработки в базу данных сервера обработки информации, обеспечивающую хранение данных о задачах, хранение динамических характеристик, хранение интегральных характеристик. Модуль агрегации обеспечивает выравнивание поступающих данных системного мониторинга, приведение данных к единым временным интервалам, прореживание, фильтрацию данных мониторинга, формирование динамических характеристик, сохранение в базу данных сервера обработки информации полученных динамических характеристик. Модуль анализа обеспечивает проверку корректности поступающих данных от СУПЗ, обработку сохраненных данных системного мониторинга, расчет интегральных характеристик, сохранение обработанных и данных в базу данных сервера обработки информации, формирование шаблонов визуализации результатов обработки. Данные системного мониторинга включают поток информации от отдельных датчиков системного мониторинга с указанием времени и/или места съема значения и/или идентификации источника от каждой из доступных систем мониторинга. Данные СУПЗ включают сведения о каждом запуске, по крайней мере, следующие: время начала выполнения задачи и/или постановки ее в очередь выполнения, и/или время завершения выполнения, и/или время ожидания, и/или время счета, и/или перечень выделенных вычислительных узлов, и/или число выделенных вычислительных ядер, и/или объем затраченных процессоро-часов, и/или строку запуска, и/или раздел вычислительной системы, и/или статус выполнения задачи. Отчет в качестве результата обработки информации представляет собой набор текстовой и/или табличной, и/или графической информации, отражающей общие сведения, сведения о динамических и интегральных характеристиках анализируемой задачи. В качестве общих сведений в отчет включают время начала выполнения задачи и/или постановки ее в очередь выполнения и/или время завершения выполнения, и/или время ожидания, и/или время счета, и/или перечень выделенных вычислительных узлов, и/или число выделенных вычислительных ядер, и/или объем затраченных процессоро-часов, и/или строку запуска, и/или раздел вычислительной системы, и/или статус выполнения задачи. В качестве интегральных характеристик в отчет включают минимальные, максимальные, средние (или медианные) значения динамических характеристик за время выполнения задачи с указанием превышения пороговых значений. В качестве динамических характеристик в отчет включают временные ряды, отражающие значения динамических значений от системы мониторинга, например CPU_user, LoadAverage, число операций с плавающей точкой, интенсивность сетевого обмена, интенсивность использования ввода/вывода, интенсивность обмена с памятью и характеристики использования кэш-памяти.
Заявляемая группа изобретений поясняется следующими чертежами.
На фиг. 1 схематично представлена взаимосвязь узлов и программных модулей, входящих в состав заявляемой системы.
На фиг. 2 представлен пример отчета, представленного системой.
На фиг. 3-7 приведен пример графиков, получаемых в качестве отчетов по отдельным задачам, а также интерпретация графической информации пользователем.
Позициями на чертежах обозначены:
1 - вычислительный узел;
2 - система мониторинга;
3 - система управления потоком задач;
4 - сервер обработки и хранения информации;
5 - модуль анализа;
6 - модуль агрегации;
7 - база данных;
8 - отчет;
9 - средство визуализации.
Заявляемая система представляет собой техническое решение, обеспечивающее возможность получения, анализа и интерпретации данных, характеризующих качество выполнения задачи на суперкомпьютере.
Система включает как аппаратные средства ее реализации, так и программный комплекс, обеспечивающий возможность реализации запросов пользователя.
Аппаратная часть системы включает множество вычислительных узлов 1, составляющих суперкомпьютерную вычислительную систему. Кроме того, заявляемая система включает сервер обработки и хранения информации 4, а также средство визуализации обработанной информации 9, в качестве которого может быть использован, например, ПК/ноутбук/планшет/телефон с доступом к Интернет и веб-браузером.
Программный комплекс заявляемого изобретения реализован следующим образом.
Говоря о системе мониторинга на вычислительных узлах суперкомпьютерной установки, подразумевают, что в каждом узле вычислительной системы, помимо основных вычислительных средств, присутствуют датчики системного мониторинга, которые предоставляют информацию о множестве характеристик состояния программно-аппаратной среды на узле. Для каждой характеристики данные представляют собой последовательность пар значения характеристики и времени ее измерения (Vi,Ti).
Заявляемый способ реализуют следующим образом.
Датчиками системы мониторинга с узлов вычислительной системы постоянно собираются данные о состоянии и степени использования доступных ресурсов (процессор, память, сеть и др.). Датчики фиксируют время, место съема значения и обеспечивают идентификацию источника от каждой из доступных систем мониторинга.
Каждый датчик имеет уникальный идентификатор, возможность получить свое значение от операционной системы, переменных окружения или же от доступных интерфейсов аппаратуры через программу-агент. Примеры таких датчиков приведены в таблице 1.
Система мониторинга периодически получает значения от всех датчиков. Каждая отдельная система мониторинга имеет собственный набор доступных датчиков, существенно зависящий как от особенностей аппаратуры, так и от настроек программного окружения.
Зачастую на практике число снимаемых с процессора датчиков сильно ограничено и приходится из них выбирать самые важные. С другой стороны, анализ на основе выбранных характеристик должен давать по возможности всестороннюю картину исследуемого потока задач.
СУПЗ предоставляет в модуль агрегации данные о задачах: времена постановки в очередь, запуска, завершения, статус, распределение по узлам, строка запуска и др.
Модуль агрегации, исходя из специфики исследований, приводит поступающие данные системного мониторинга к единым временным интервалам (обычно 5 мин) и фильтрует, получая тем самым из данных мониторинга динамические характеристики, и сохраняет их в одну таблицу. Динамические характеристики состоят для каждого интервала и каждого наблюдаемого параметра из трех значений: среднее за интервал, минимальное и максимальное значения за интервал.
Динамические характеристики запусков приложений пользователей доступны администраторам системы в полном объеме, а обычным пользователям доступ предоставляется только к запускам собственных приложений. Наибольший интерес представляет доля пользовательских процессов в общей загрузке процессора - CPU user time (время, затраченное на работу программ пользователей), в наибольшей мере отражающая загрузку процессора приложением. Для более подробного исследования поведения приложения можно использовать и другие датчики, однако при общих исследованиях, в том числе при определении типовых профилей использования суперкомпьютерных систем, предполагающих всестороннюю оценку как приоритетную, достаточно ограничиться включением CPU User в список ключевых характеристик.
Среди наиболее часто используемых датчиков также можно выделить датчики, фиксирующие загрузку процессора; число операций с плавающей точкой; число процессов, готовых принять управление (Load Average); интенсивность межузлового обмена; интенсивность ввода/вывода; число промахов при доступе к кэш-памяти. Конечно, такой список может как расширяться с добавлением к рассмотрению новых датчиков, так и быть улучшен с точки зрения частоты получения исследуемых характеристик.
Модуль анализа, получая данные от СУПЗ об изменении статуса задачи, проверяет корректность поступивших данных и сохраняет их в базу данных (БД).
Если модуль анализа получает данные о завершении задачи, он осуществляет выборку динамических характеристик по времени и узлам работы задачи и строит интегральные характеристики (средние по динамическим характеристикам), которые затем сохраняет в БД. Вместе с тем к интегральным характеристикам могут быть отнесены и принадлежность к классам по уровню среднего использования ресурсов (например, превышение порога), и др. подобная обработка.
Интегральные характеристики приложений представляют собой усредненные (либо медианы) данные соответствующих динамических характеристик для данной задачи, а также данные о выделенных и истраченных задачей ресурсах: раздел, время, число узлов и ядер.
Данные разных потоков данных относительно конкретной задачи связываются через временной интервал выполнения задачи и через идентификатор вычислительных узлов, на которых выполнялась задача. Такие данные всегда доступны как для потоков данных системного мониторинга, так и от системы управления потоком заданий по каждой из задач.
Данные из БД могут быть извлечены для анализа при помощи модуля анализа. В качестве БД для хранения данных используют, например, базы данных Cassandra и MongoDB.
При поступлении запроса о списке задач с пользовательского интерфейса из веб-браузера (переход по ссылке) модуль анализа осуществляет выборку из БД списка задач, их интегральных характеристик, меток (тегов) принадлежности к тем или иным классам (если таковые были). Возможна фильтрация и уточнение запроса через пользовательский интерфейс (подготовленные ссылки или уточнение SQL запроса вручную). Результат выборки подставляется в шаблон визуализации «список задач» с цветовой индикацией превышения определенных порогов интегральными характеристиками и передается по http на клиентскую сторону, где визуализируется веб-браузером. В списке имеется возможность перейти по ссылке к отчету отдельной задачи.
При поступлении запроса о конкретной задаче с пользовательского интерфейса из веб-браузера (переход по ссылке) модуль анализа осуществляет выборку из БД данных об этой задаче из списка задач, ее интегральных характеристик, меток (тегов) принадлежности к тем или иным классам (если таковые были), установленных для данной задачи. Результат запроса подставляется в шаблон визуализации и передается на клиентскую сторону, где визуализируется веб-браузером.
Одна из задач модуля анализа - это выполнение обработки данных. При этом выполнение анализа может быть инициировано из самых разнообразных частей системы. Например, запрос на анализ может прийти от средства визуализации через центр обработки запросов (ЦОЗ) в результате работы пользователя с системой через веб-браузер. В этом случае основной целью запроса может быть анализ динамики поведения параллельной программы. Анализ данных может быть инициирован системными процессами, например, по таймеру раз в сутки для построения ежедневного отчета о работе суперкомпьютера. Или же данные могут быть запрошены внешними системами интеграции и визуализации.
В запросе указываются характеристики завершенной задачи, а также шаблон визуализации для формирования отчета. Адрес этого отчета хранится в отдельном файле вместе с отчетом о задаче, и пользователь может впоследствии открыть его в браузере.
Сами запросы хранятся в текстовых файлах, называемых «шаблоны запросов». По окончании формирования отчета пользователь может просмотреть его в браузере. Основу отчета составляет информация о данных мониторинга выбранного приложения. В отчет можно включить любое количество графиков и диаграмм, отражающих различные параметры работы приложения - загрузка процессора.
Отчет, в частности, может содержать следующие блоки:
1. общие данные о задаче: id, владелец, список узлов, статус, раздел запуска, время постановки на счет, запуска и окончания, строка запуска, объем процессоро-часов, число выделенных ядер и др.;
2. интегральные характеристики задачи с цветовой индикацией превышения определенных порогов;
3. список меток принадлежности классам (tags, теги), если была определена соответствующая принадлежность задачи модулем анализа при построении интегральных характеристик;
4. графики, отражающие поведение динамических характеристик, на основе выборки из БД по узлам и времени выполнения задачи.
Пример конкретного выполнения
Ниже приведен пример графиков, получаемых в качестве отчетов по отдельным задачам, а также интерпретация графической информации пользователем.
Время работы программы: 9 часов 38 минут.
Число задействованных ядер: 112.
Использовался раздел с дисками: нет
На графике (фиг. 3) загрузки процессора наблюдается периодичность, что указывает на итерационную структуру алгоритма. Особенностью данного графика является большая разница между максимальной и минимальной загрузкой процессоров. Максимальная загрузка почти не отличается от 100%, тогда как минимальная почти все время находится около 0%.
График кэш-промахов первого уровня (фиг. 4) коррелирует с графиком загрузки процессора. Особенностью графика является то, что на каждой итерации всплеск числа кэш-промахов приходится на начало итерации. Это коррелирует со всплесками минимальной загрузки процессоров.
График количества кэш-промахов L2 (фиг. 5) повторяет график промахов в кэш первого уровня. Однако уровень числа промахов ниже.
График активности сети Ethernet (фиг. 6) указывает на всплески активности с равными периодами. Интенсивность использования сети в эти моменты доходит до 50 МБ/сек. Это довольно большая активность, однако такая загрузка сети происходит через равные и достаточно продолжительные промежутки времени. Поэтому средняя загрузка сети составляет всего 0,13 МБ/сек.
На графике скорости передачи данных по InfiniBand (фиг. 7) видна корреляция с графиком кэш-промахов. Общая высокая загрузка сети в 104,11 МБ/сек говорит о том, что коммуникации между процессами содержат не очень большой объем данных. Процессы обмениваются данными на начале каждой итерации.
Данный профиль показывает зависимость повышения количества кэш-промахов разного уровня от передачи новых данных из файла по сети Ethernet. Профиль отражает зависимость активности передачи данных по сети активностью сети InfiniBand и количеством кэш-промахов. Такая зависимость отражает итерационную структуру алгоритма, при которой на каждой итерации происходит обмен данными с файлами, потому и повышается число кэш-промахов. Ожидание новых данных понижает загрузку процессора, что видно на графике использования процессора. Отличительной особенностью данного графика является большой разброс между максимальным и минимальным значением загрузки процессора и кэш-промахов. Это показывает разбалансированность задачи: часть процессов занята вычислениями, а другая простаивает. Это отражает средняя загрузка процессора в 55,7%. Потому как, судя по показаниям датчиков, часть процессоров загружена с уровнем, близким к 100%, в то время как минимальная загрузка других процессоров колеблется около 0. Это и говорит о том, что вычисления распределены неравномерно.
Предложенный подход к анализу позволяет эффективно и технологически просто получить качественную оценку свойств реального потока задач, на основе которого можно судить об утилизации ресурсов суперкомпьютера, выделить проблемные места архитектуры и наметить возможные направления ее оптимизации.