Система для визуального контроля загруженности высокопроизводительных многоядерных архитектур
1. «Система для визуального
контроля загруженности
высокопроизводительных
многоядерных архитектур»
представляет: Карпов М.А.| руководитель: Маслов И.В. |
СПбГПУ, ФУИТ. 2010
2. СОДЕРЖАНИЕ
• Постановка и актуальность задачи
• Анализ существующих решений
• Основные принципы предлагаемого решения
• Детали предлагаемого решения
• Демонстрация экспериментальных
результатов
• Заключение
• Дальнейшие пути развития
2
3. ПОСТАНОВКА ЗАДАЧИ
• Система, обеспечивающую возможность
визуального контроля над загруженностью ядер
работающего вычислительного комплекса.
• Необходимость анализа и контроля
производительности комплекса и его отдельных
компонент при различных режимах
вычислительных нагрузок.
• Дополнительно - удобный инструмент для
повышения эффективности распараллеливания
программ
3
4. ВИЗУАЛИЗАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ
Визуализация
помогает
понизить
интеллектуальную
сложность
параллельного
программирования
за счёт
использования
разнообразных
методик.
Наиболее
эффективны:
трёхмерность
анимация
4
5. СРЕДСТВА ВИЗУАЛИЗАЦИИ
Средства визуализации
Системы визуального
программирования
(Visual Programming)
Инструменты
визуализации
(Program Visualization Tools)
Средства
визуального
представления
данных
On-line Post-mortem
5
7. HPC SERVER 2008
• Работы ведутся на базе 16-ядерного кластера под
управлением Windows HPC Server 2008
(предоставленном университету СПбГПУ
корпорацией Intel) с использованием
предоставляемых фирмой Microsoft утилит и
библиотек HPC Pack и HPC SDK
7
12. МОДЕЛЬ
o Visual Studio 2008
o HPC.Scheduler API
метафора молекулы
периодический опрос
системы
на различных ядрах
одинаковый цвет для
одной задачи
отображение цветом
состояния ядер
12
18. ЗАКЛЮЧЕНИЕ
• Произведён системный анализ задачи и выбраны
возможные пути технической реализации
• Освоены основные принципы использования
предоставляемых корпорацией Microsoft утилит и
библиотек HPC Pack и HPC SDK для Windows HPC Server
2008
• Разработана необходимая иерархия классов,
содержащая как структуру кластера так и визуальное
отображение, и реализованы необходимые модули на
языке C#
• Произведена комплексная отладка
• Проведён анализ полученных результатов и
намечены дальнейшие задачи
18
19. РАЗВИТИЕ
Теория + реализация на сервере
Получение и обработка данных о
кластере в параллельном режиме:
C++ / TBB
Web-интерфейс:
X3D
было
Постобработка результатов
Дополненная реальность (Augmented reality, AR)
Обеспечение неоднородности системы
19
20. X3DToolkit (C++) or Xj3D (Java)
Поддерживается в MPEG-4
Интеграция с XML
Работа в реальном времени
20
Здравствуйте, меня зовут Михаил Карпов, я представляю Вам свою работу связанную с контролем загруженности кластеров.
Моя работа называется «Анализ и контроль производительности многопроцессорных архитектур и их отдельных компонент»
Моим научным руководителем является Маслов Игорь Валентинович.
Посмотреть Tivoly.
Основными пунктами выступления будут:
Постановка и актуальность задачи
Анализ существующих решений
Основные принципы предлагаемого решения
Детали предлагаемого решения
Также будут продемонстрированы экспериметальные результаты проделанной работы
Заключение и подведение итогов
Дальнейшие пути развития
И вкратце рассказано про те достижения, которых уже добилась данная работа
Сложности: слишком много задач и очень их сложно мониторить вместе. Хочется иметь возможность выделить приоритные задачи и видеть их вклад в загруженность системы, а также иметь возможность влиять на неё и исследовать их влияние, изменять параметры.
Традиционно считается, что использование трёхмерности и анимации повышает эффективность визуализации при представлении сущностей программного обеспечения.
Средства визуализации можно разбить на три основные группы:
Системы визуального программирования
Инструменты визуализации
И Средства визуального представления данных
Однако, каждая из этих систем, в основном, делает упор, на отображение MPI процессов, практически не показывая реальной загрузки ядер системы и той доли, которую каждая из работающих программ вносит в эту загруженность, непосредственно на каждое из ядер. Также, рассмотренные программы предоставляют информацию по всем задачам работающим в системе, но не предоставляют возможности «отслеживания» конкретных выбранных пользователем задач, что значительно понизило бы визуальную сложность работы с сотнями, работяющих в системе задач.
Одной из задач анализа в этой области является возможность в реальном времени показывать характеристики рабочей системы (к примеру, кластера, на котором распараллеливаются задачи, или рабочего сервера).
К основным характеристикам таких систем стоит отнести:
Загруженность процессоров
Использование памяти
Коммуникации между процессами
В данной работе ставилась задача создать программу, предоставляющую пользователю анализ текущего состояния системы на основе первых двух характеристик.
Основными объектами наблюдения в системе являются работы, проводимые на кластере и задачи, на которые они разбиваются.
Собственно, одна работа может разбиваться на несколько задач и их количество может изменяться по ходу выполнения работы.
Можно задать стартовые характериститки для задачи (например конкретные ядра и узлы кластера, на которых она будет выполняться) и запустить её отдельно или присоединить к какой-либо уже выполняющейся работе.
Своеобразная «клетка – зоопарк – теплица» для задачи на кластере.
Чтобы учёный пустил задачу на десятке кластеров по всей стране/миру и видел, как развивается обсчёт его задачи со своего ноутбука в браузере с X3D (MPEG-4)
Описание данного «куба задачи» (отображние в реальном времени, ловятся события на ядрах):
В решении задачи принимают участие столько-то ядер (с таких-то Node), сейчас Task #34 требует много памяти (столько-то).
Во всей системе простаивают ядра 5 и 7 (с такой-то CPU) на Node #15 – их можно подключить к решению задачи #34.
Всегда можем «заморозить» работу задачи, подорректировать (перенести tasks на другие ядра, остановить…) и пустить заново.
Всего на выбранных Nodes имеется столько-то памяти.
Если расчёт проходит на нескольких машинах, то стоит учитывать и скорость канала связи с каждым из узлов, участвующих в задаче.
Куб – как объём, выделенной под задачу памяти. Движущиеся молекулы, связность узлов.
Рамки, упругость стенок. Продолжительность выхода системы из куба. При большой – куб рвётся (alert!), при малой – он прогибается как мыльный пузырь.
Ресурсы: ядра, память, CPU.
Происходит периодический программный опрос системы для выявления изменений в состоянии ядер и работающих на них задачах.
Взаимодействие отображается связностью
Размер вершины зависит от ослеживаемых характеристик
Цвет для выделения особенностей
Анимация помогает изучить структуру
Автоматич привязка к событиям и триггеры!!!!!!
Для сохранения, получаемой с кластера информации были разработаны классы, отвечающие за его архитектуру.
Головным классом является класс HPC, который содержит в себе общее описание кластера, а также включает в себя список узлов и задач, запущенных в системе.
Узлы кластера представлены классом HPCNode, а работы представлены классом HPCJob.
HPCCore – это класс, отвечающий за рабочие ядра кластера, а класс HPCTask представляет задачи.
Основные данные сохраняются в последних двух классах, а потом полученная в них информация пересчитывается и записывается в родителькие классы, для учёта статистики по задачам.
То есть, допустим, можно получить информацию, о количестве памяти, выделяемой для конкретной работы на выбранных узлах архитектуры. Эта информация получается в течении опроса памяти выделяемой на задачи, относящиеся к этой работе, учитывая их расположение на ядрах.
Также были написаны классы для визуализации информации на разработанном инструменте для отображения информации на макете молекулы. Собственно они позволяют крутить молекулу, изменять цвет и размер отдельных частей, входящих в молекулу.
Для того, чтобы можно было достаточно просто перейти на другие способы визуализации, получаемых данных, классы для отображения и классы для хранения информации были сделаны независимыми друг от друга.
Также был разработан основной класс для работы с сервером, включающий в себя основную функциональность по опросу системы, сохранению этой информации, а также отображению этой информации пользователю.
При работе с множеством данных, не все из них необходимы пользователю в данный момент.
То есть сначала показываются только основные связи, а по мере изучения какого-либо участка, он становится более детальным и насыщенным связями, которые были ранее не так важны
Разработка велась на платформе Windows HPC Server 2008 и Visual Studio 2008 c .Net Framework 3.5
Произведён системный анализ задачи и выбраны возможные пути технической реализации
Освоены основные принципы использования предоставляемых корпорацией Microsoft утилит и библиотек HPC Pack и HPC SDK для Windows HPC Server 2008
Разработана необходимая иерархия классов, содержащая как структуру кластера так и визуальное отображение, и реализованы необходимые модули на языке C#
Произведена комплексная отладка
Проведён анализ полученных результатов и намечены дальнейшие задачи
http://www.web3d.org/x3d/content/examples/ConformanceNist/GroupingNodes/Billboard/_pages/page05.html
Extensible 3D тесно интегрирован с XML, более компактен, чем VRML, и имеет модульную конструкцию. Такие известные компании, как Macromedia и Adobe Systems, сразу высказались в поддержку нового стандарта.
Интеграция с XML, что позволяет интегрировать трёхмерную графику с: веб-службами;
распределёнными сетями;
передачей файлов и данных между платформами и приложениями.
Компонентность Расширяемость Эволюционность (X3D совместим с VRML97) Масштабируемость (от суперкомпьютеров дло мобильных телефонов) Работа в реальном времени Хорошая стандартизованность
Одним из наиболее перспективных направлений развития трехмерной графики является формат MPEG-4. Многие знают его как способ представления сжатого видео. MPEG-4 – это мощный инструмент, поддерживающий аудио- и видеоинформацию, 2D- и 3D-векторную графику, метаданные, управление авторскими правами и пр. С недавнего времени группа MPEG (Moving Pictures Experts Group) включила поддержку интерактивного X3D в свой стандарт сжатия видео MPEG-4. Это позволяет надеяться, что следующие поколения DVD-проигрывателей, лаптопов, КПК и смартфонов будут обладать возможностями работы с интерактивной трехмерной графикой (виртуальной реальностью).
http://artis.imag.fr/Members/Yannick.Legoc/X3D/index.html