Среда визуализации позволяет членам распределенной группы взаимодействовать с исполняемым программным приложением, настраивая параметры его работы так, чтобы обеспечить требуемую производительность.

Высокоскоростные глобальные сети являются необходимыми и достаточными для связи географически распределенных приложений, которые управляют наборами научных данных, удаленным научным инструментарием и высокопроизводительными компьютерными системами. Такие приложения могут, к примеру, удаленно управлять радиотелескопом, передачей необработанных данных с узла, где он расположен, в архив распределенных данных и одновременно преобразовывать данные для создания изображений, используемых в визуализации реального времени. Разработкой такой инфраструктуры распределенных приложений как раз и занимаются наши партнеры по National Computational Science Alliance — одному из альянсов NSF Partnerships по Advanced Computational Infrastructure.

Хотя возможности внутренней связи этих приложений позволяют территориально распределенным научным и инженерным группам взаимодействовать друг с другом, применяя для этого новые методы, итоговые распределенные вычисления требуют серьезного анализа производительности и значительных изменений организационной структуры. Во-первых, среда исполнения географически разнесенных приложений является намного менее детерминированной, чем среда исполнения локально распределенных, параллельных приложений [1]. Полоса пропускания и задержки в сети, вычислительные ресурсы и доступные хранилища данных — все это может меняться от одного сеанса работы к другому и даже в рамках одного сеанса. Как следствие, определение и коррекция производительности, сделанные во время одного сеанса выполнения, в следующий раз могут не оказать никакого эффекта.

Во-вторых, распределенные приложения очень сложны. Компоненты приложения выполняются на разнородном программном и аппаратном обеспечении. Инструментарий реального времени часто налагает ограничения по времени и доступу. Доступные хранилища данных иногда требуют преобразования информации для корреляции ее с данными, полученными экспериментально или в результате расчетов. Наконец, эффективное удаленное взаимодействие и визуализация требуют гарантий качества обслуживания. Интеграция функций качества обслуживания в эти аппаратные и программные системы еще больше увеличивает их сложность.

Исторически сложилось так, что анализ производительности в основном проводился в монолитных приложениях, исполняемых на крупных автономных параллельных системах. При таком построенном на измерениях, ограниченном анализе, выполнявшемся после завершения работы приложения, и оптимизации текстов достаточно, чтобы устранить недостаток производительности и оптимизировать работу приложения. Большая часть современных систем анализа производительности, к примеру, SvPablo [2], Medea [3] и Paragraph [4], используют только анализ по завершении работы приложения. Чтобы оптимизировать работу новых распределенных приложений, инструментальные средства нового поколения измерения и оптимизации производительности должны динамически менять поведение приложения в соответствии с изменением объема и качества доступных ресурсов.

Помимо обеспечения настраиваемого управления в реальном времени новые инструментальные средства анализа производительности должны собирать данные из множества различных источников и уровней программного обеспечения (приложение, библиотека, система и сеть). Более того, этот инструментарий должен обеспечивать территориально распределенным группам возможности совместной работы по идентификации и корректировке в случае недостатка производительности. Эти возможности предполагают поддержку распределенной визуализации и управления, а также синхронных и асинхронных взаимодействий.

Распределенные инструментальные средства визуализации, добычи данных и анализа позволяют ученым совместно анализировать и проникать в суть сложных явлений. Точно так же, как системы измерения производительности реального времени и системы объемного отображения (с погружением) данных о производительности, то есть системы, предоставляющие большие стереоскопические изображения сложных данных, позволяют совместно работающим группам взаимодействовать с исполняемым программным обеспечением. Они настраивают его так, чтобы добиться необходимых научных результатов и требуемого уровня производительности.

Именно с этой целью и был создан Virtue — прототип системы, которая интегрирует возможности совместной объемной визуализации данных о производительности с функциями измерения производительности в реальном времени и настраиваемого управления приложениями на вычислительных структурах. Пакет включает в себя измерительную систему SvPablo, набор инструментальных средств, позволяющий управлять производительностью в реальном времени Autopilot и виртуальную среду для анализа производительности Virtue. Эти инструментальные средства позволяют географически разнесенным пользователям управлять сложным программным обеспечением в реальном времени, а также анализировать и оптимизировать динамику распределенных приложений.

ИЗМЕРЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ И РАСПРЕДЕЛЕННОЕ УПРАВЛЕНИЕ

Чтобы оптимизировать работу распределенных приложений, программное обеспечение, применяемое для измерения производительности, должно получать данные из различных узлов, разнообразных аппаратных и программных платформ, а также взаимодействовать с программными компонентами, написанными на различных языках. Дополняющие эти измерения механизмы распределенного управления дадут пользователям возможность или управлять программным обеспечением с тем, чтобы изменить параметры времени исполнения, или резервировать ресурсы в процессе выполнения приложения.

Измерение производительности

Для распределенного измерения параметров исполняемых программных компонентов Virtue использует набор инструментальных средств Autopilot [2,3]. Autopilot представляет собой расширение системы вычислительной структуры [6], которая обеспечивает адресное пространство, совместно используемое процессами, системами и сетями. Globus также поддерживает возможности разработки распределенного приложения и выделения ресурсов на базе обмена сообщениями. С помощью служб Globus инструментарий Autopilot определяет набор программных датчиков и активаторов для измерения параметров работы кода приложения и управления его выполнением. Датчики Autopilot состоят из утилит, не требующих высоких накладных расходов и предназначенных для сбора в реальном времени данных о производительности распределенных программных компонентов. С помощью определенных пользователями функций эти датчики можно расширить, добавив обработку «сырых» данных о производительности перед их передачей, например, вычисление профиля на основе информации о произошедших событиях. Чтобы минимизировать сложность спецификации и конфигурации датчиков, Autopilot использует систему SvPablo для добавления датчиков в исходный текст распределенного приложения. SvPablo проводит синтаксический разбор текста и выявляет все логические фрагменты, определенные как внешние циклы вложенных циклов, и все вызовы процедур. Пользователи могут проводить измерения интерактивно с помощью графического интерфейса SvPablo, или автоматически, с помощью опций командной строки модуля синтаксического анализатора. Помимо текста с интегрированными датчиками SvPablo генерирует статические графы вызовов процедур для их последующей визуализации.

Чтобы дополнить данные приложения, мы также создали модифицированную программу Traceroute, которая использует датчики Autopilot для сбора информации о задержке и полосе пропускания сети. Все эти данные, начиная с информации, полученной в результате измерений, выполняемых с помощью SvPablo, и заканчивая параметрами сетевой производительности, передаются в Virtue через датчики Autopilot.

Распределенное управление

Autopilot не только обеспечивает сбор данных, но и поддерживает настраиваемое управление удаленных приложений и систем. Программные активаторы, добавленные в текст приложения или встроенные в библиотеки времени исполнения, обеспечивают механизмы реализации управляющих функций в программных модулях. На уровне приложения активаторы могут изменять значения переменных или выбирать алгоритмы для выполнения конкретной задачи. Точно также системные активаторы времени исполнения могут менять правила управления ресурсами и их параметры (такие как принципы упреждающей доставки или кэширования, используемые файловой системой). Датчики и пускатели Autopilot предоставляют данные о производительности, необходимые для визуализации программной структуры и динамики, а также средства изменения этой динамики. Virtue импортирует данные, полученные с датчиков, для выполнения объемной визуализации в реальном времени и предоставляет инструментарий для взаимодействия с активаторами Autopilot. Этот интерактивный замкнутый цикл дает пользователям возможность менять поведение программного обеспечения во время погружения в виртуальную среду.

ИНФРАСТРУКТУРА СИСТЕМЫ ВИЗУАЛИЗАЦИИ

Хотя в научном сообществе виртуальные среды с погружением для анализа сложных научных данных используются достаточно широко, простая статичная и динамичная графика рабочих станций остается фактическим стандартом для анализа производительности. Современные распределенные параллельные системы в совокупности содержат тысячи процессоров, связанных сетью с большой пропускной способностью, и они должны получать доступ к распределенным вторичным и третичным системам хранения. Чтобы иметь возможность эффективно визуализировать и оптимизировать работу этих систем, специалистам по анализу производительности необходимы системы визуализации информации, которые могли бы максимально полно использовать все органы чувств человека.

Очевидно, что число факторов, которые могут повлиять на производительность, растет. Более того, эффективная настройка производительности распределенных приложений часто требует совместного анализа таких объектов, как сетевые функции, память, планирование и архитектура, группой экспертов, находящихся в разных регионах. Средства анализа должны отражать взаимосвязанную, часто асинхронную природу такой работы.

Программное обеспечение

Визуализация данных о производительности имеет те же особенности, что и визуализация любой другой информации — множественность типов данных, а кроме того, такие объекты, как программные модули и уровень использования процессоров, являются абстрактными, в силу чего для них не существует очевидного физического представления. При наличии подходящего соответствия данных их представлениям, изображение с погружением может делать абстрактное конкретным и обеспечивать интуитивный интерфейс, который позволяет выполнять те же самые прямые манипуляции с объектами, которые человек выполняет в реальном мире. С помощью такого интерфейса, к примеру, пользователь может увеличить размер кэша для файлов, просто «схватив» и растянув виртуальный ящик, который представляет кэш.

Ясно, что поиск интуитивных соответствий абстрактных данных о производительности и их физического представления, очень важен; при отсутствии приемлемого соответствия изображения будут не более, чем анимированным световым шоу. До сих пор мы плохо представляли себе, что такое интуитивное соответствие и не знали, что, скорее всего, наилучшее соответствие зависит от прикладной области. Наша предыдущая работа (создание среды для анализа производительности [2, 5, 7]) позволила нам понять, что системы, предназначенные для визуализации очень специфических типов данных, имеют крайне ограниченный жизненный цикл и редко оказываются полезны вне пределов конкретной предметной области. В силу чего, Virtue предлагает язык для быстрого изменения и исследования альтернативных соответствий данных.

По сути, Virtue представляет собой инструментальный пакет общего назначения для визуализации общих компьютерных систем и компонентов коммуникационной сети как иерархического трехмерного графа. Он предоставляет богатый язык графических описаний для определения соответствия данных и графических атрибутов, в том числе размера вершин и ребер, а также их формы, цвета, прозрачности, положения и звука. Язык содержит мощные механизмы для манипуляции графами и аннотирования компонентов графа звуковыми и видеокомментариями. В основу языка графических описаний Virtue положен расширяемый Self-Defining Data Format [2, 5]. SDDF отделяет структуру данных от их семантики, что дает пользователям возможность быстро создавать новую структуру графа или определять соответствие данных, меняя всего несколько строк в описании SDDF. Файлы конфигурации позволяют разработчикам исследовать различные варианты соответствия, быстро присваивая переменным новые визуальные или звуковые атрибуты.

Рис. 1. Распределенное измерение и управление производительностью с помощью набора инструментальных средств Autopilot

Поскольку наша контрольно-измерительная система SvPablo также использует SDDF для представления собственных данных, интеграция описаний графа с соответствиями данных о производительности не вызывает никаких затруднений. К примеру, определяя соответствие числа вызова процедур и времени исполнения размеру и цвету вершин, пользователи могут представить граф вызовов, созданный с помощью контрольно-измерительных датчиков SvPablo, как трехмерный диграф. Кроме того, мы используем SDDF как управляющий язык Virtue для указания соответствий и виртуального инструментария для манипулирования данными.

Наконец, для поддержки распределенной совместной работы Virtue включает в себя видеоконференции для синхронного взаимодействия, а также возможность получать и воспроизводить мультимедиа аннотации для асинхронного взаимодействия. Модифицированные версии инструментария поддержки видеоконференций Multicast Backbone (Mbone) связывают сервер аннотаций и удаленных пользователей, работающих совместно, экспортируя цифровое видео и созданные с помощью Virtue представления. Более того, инструментарий Java для настольных и карманных компьютеров позволяет стационарным и мобильным пользователям управлять изображениями графа и анализировать связанные с ними данные.

Рис. 2. Программная архитектура Virtue

Ядро Virtue состоит из менеджера данных, который поддерживает описания данных и управляющих команд на языке SDDF, а также менеджера изображений, координирующего взаимодействия пользователей и выполняющего визуализацию. Для совместной работы и аннотирования набор мультимедиа инструментария координирует многоадресное аудио и видео и управляемые пользователями камеры. Созданный в National Center for Supercomputing Applications (NCSA) сервер Vanilla Sound Server (VSS) поддерживает ориентацию звука в пространстве, воспроизведение звука и генерацию аудиосигналов. Библиотека VRCO CAVE и OpenGL обеспечивают графическую поддержку, а библиотека CyberGlove дает пользователю возможность вносить изменения и в ответ испытывать тактильные ощущения с помощью Virtual Technologies CyberGlove. Наконец, коммерческое программное обеспечение распознавания речи позволяет отдавать голосовые команды.

Аппаратное обеспечение

Поскольку Virtue сама по себе является распределенной системой, то она состоит из компонентов, которые выполняются на различных ПК и работают с разными механизмами генерации изображений. Как показано на рисунке 3, центральный компонент — это платформа SGI. Сейчас мы используем систему Onyx2 с графикой Infinite Reality. Эта машина поддерживает устройства вывода объемных изображений, такие как CAVE или ImmersaDesk, для создания стереоскопического эффекта. Система слежения Flock of Birds компании Ascension Technologies дополняет устройство генерации изображения и сообщает о положении пользователя и ориентации камеры слежения.

Рис. 3. Аппаратные компоненты Virtue

Пользователи манипулируют отображаемыми объектами с помощью специального указателя (трехмерной мыши) или с помощью перчатки Virtual Technologies Cyber-Glove, предоставляющей данные для генерации изображения, которое можно «потрогать», а тактильные ощущения обеспечиваются с помощью микровибраторов. Пользователи через интерфейс генерации изображений на базе пиктограмм могут инициировать команду с помощью указателя или перчатки. В состав Virtue входят головной микрофон, с помощью которого можно отдавать голосовые команды. Для генерации звуковых сигналов, раздающихся в определенных случаях, например при пересечении объектов или для того, чтобы дать возможность определить соответствие меняющихся во времени данных и звуковых атрибутов, Virtue предоставляет специализированное аудио, создавая иллюзию того, что источник звука находится в конкретном месте. VSS использует данные о положении и ориентации для генерации звука.

Для обеспечения синхронного взаимодействия камеры слежения наблюдают за движениями пользователя и передают полученное видеоизображение и соответствующую аудиозапись на удаленные узлы через Mbone. Наш мультимедиа инструментарий управляет входящими и исходящими аудио и видео потоками Mbone, а также записывает и воспроизводит эти потоки для асинхронного взаимодействия через аннотации.

ИЕРАРХИЧЕСКИЕ ГРАФЫ И ВИЗУАЛЬНЫЕ ПРЕДСТАВЛЕНИЯ

Каждый граф, отображаемый Virtue, имеет соответствующую структуру. Эта структура включает в себя следующее:

  • точные структуры, которые используют значения данных, для которых найдено соответствие, для определения вершин;
  • структуры графа с весами, использующие величину значения данных для ребер как значение натяжения пружины для минимизации энергии вершин;
  • конусообразные деревья, которые объединяют вершины в трехмерную иерархическую структуру;
  • структуры, специфические для приложения, которые помещают вершины и ребра графа в соответствии с конкретным представлением для изображения или визуализации.

Структуры, специфические для приложения

Рис.4. Глобальное географическое изображение. Цвет линий соответствует сетевой задержке

Мы пришли к выводу, что для визуализации данных о производительности распределенных и параллельных приложений, нужно использовать структуры на основе следующих представлений: географические изображения сетевой активности, отображение временного туннеля взаимодействий параллельных процессов и граф вызовов структуры исходного кода. Эти структуры отражают иерархию распределенных вычислений от глобальных коммуникаций до выполнения динамики внутри единых программных модулей.

Рис.5. Изображение временных туннелей, которое показывает взаимодействие между задачами и нитями параллельных вычислений. Белые и пурпурные хорды показывают внутрипроцессорное взаимодействие; желтые временные линии — выполнение задачи

Распределенные приложения зависят от ширины полосы пропускания сети и приемлемой задержки для связи удаленных ресурсов. При географическом изображении сети положение вершин графа представляет широту и долготу узлов с ресурсами, атрибуты вершины и ребра представляют важные характеристики канала, такие как задержка и полоса пропускания, а фон с наложенной структурой описывает контекст.

Virtue поддерживает сферический фон для глобальных сетей и плоский для — локальных. К примеру, на рисунке 4 представлено географическое изображение глобальной сети.

Чтобы понять, как осуществляется взаимодействие между задачами и нитями параллельных вычислений внутри одной машины, такой как локально параллельный компонент географического вычисления, мы разработали изображение системного уровня, получившее название «временной туннель» (time tunnel) [7]. Временной туннель состоит из цилиндрического массива временных линий, где каждая линия соответствует временной последовательности действий в задаче, а цвет показывает тип деятельности. Хорды, пересекающие внутреннюю область цилиндра, связывают временные линии взаимодействующих задач. На рисунке 5 изображен временный туннель изнутри.

Рис.6. Изображение графа вызовов. Соответствия данных представляют параметры процедур, к примеру, цвет и размер вершины показывает число вызовов и время, потраченное процедурой. Текстовые метки указывают имена процедур

Наконец, граф вызова процедур — знакомое представление, где блоки кода изображаются как вершины, а ссылки между ними показывают иерархию статических вызовов. Как видно из рисунка 6, Virtue использует иерархическую структуру вершин в трехмерном пространстве, вместе с различными соответствиями данных, показывающими параметры процедур. Наконец, анимация может показать изменение временных параметров вызова процедур или других метрик.

Иерархии графа

Virtue также может содержать произвольные графы, каждый из которых использует различные представления изображений и структуры. Чтобы создать вложенные графы, пользователи присоединяют один граф к вершине любого другого, причем в каждом графе поддерживается отдельное соответствие данных графическим атрибутам, в том числе размер, форма и цвет. Такое вложение можно расширять до произвольного числа уровней, а интерактивные элементы управления могут использоваться для расширения и сокращения вложенных графов.

Примером вложения служит создание иерархических представлений географических вычислений. Начиная с географической визуализации сетевого трафика, пользователь выбирает узел и «погружается» в представление временного туннеля параллельных вычислений на этом узле. Выбор конкретной задачи приведет к формированию графа вызовов для исполнения кода в этой задаче. Пользователь может увеличить число элементов иерархии графа на отдельных узлах. В совокупности эти возможности позволяют специалистам, анализирующим производительность, выполнять оптимизацию «поиска и устранения», выявляя проблемы и исследуя их более детально, чтобы выяснить и устранить причину.

ИНТЕРАКТИВНОЕ ИССЛЕДОВАНИЕ ДАННЫХ И НАСТРАИВАЕМОЕ УПРАВЛЕНИЕ

Визуализация данных — лишь первый шаг к анализу, пониманию и управлению. При работе с большими объемами данных, такими, которые имеются в параллельных и распределенных приложениях, системы визуализации данных должны позволять удалять ненужные и неподходящие данные. Более того, эти системы должны способствовать сравнению альтернативных представлений данных, высвечивая критически важную информацию. Наконец, системы должны поддерживать удаленное управление аппаратным и программным обеспечением с учетом получаемых параметров производительности.

Рис.7. Инструментарий Magic Lens, действующий в двух режимах. В режиме запроса он обнаруживает скрытый текст объекта, в режиме данных переключает альтернативные представления данных для визуальных атрибутов

В состав Virtue включен набор виртуальных инструментальных средств для манипулирования визуальными представлениями данных и экспертизы. Мы основывались на многих из них: на обобщенных увеличительных стеклах (Magic Lens), показанных на рисунке 7, на научных экспериментах и исследованиях, посвященных уровню использования, проведенных другими группами. Если объект остается в режиме запроса, то инструментарий Magic Lens обнаруживает скрытый текст (метки географических узлов, имена процедур в графе вызовов или текстовое описание числовых данных). В режиме данных инструментарий меняет альтернативное соответствие данных визуальным атрибутам, обеспечивая различное представление одних и тех же данных.

Рис.8. Инструментарий секущей плоскости. Пользователь может отсечь набор каналов визуализации сети и вычислить или максимальную задержку, или полосу пропускания всех каналов

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

Набор виртуальных инструментальных средств Virtue дополняет набор элементов управления непосредственных манипуляций данными, позволяющий менять поведение приложения или системы. Внутри виртуальной среды эти элементы управления принимают форму трехмерных переключателей-ползунков. Объединяя эти переключатели с активаторами Autopilot, система Virtue преобразует движения переключателей для того, чтобы изменить правила работы удаленной системы или приложения. С помощью этих элементов управления аналитик может удаленно управлять приложением по сети.

ВИЗУАЛИЗАЦИЯ СОВМЕСТНОЙ ДЕЯТЕЛЬНОСТИ

Крупномасштабные, территориально распределенные приложения объединяют широкий диапазон программных компонентов, созданных на различных языках и исполняемых на разнородных аппаратных и программных платформах. По своей природе они выполняются на различных узлах, причем узкие места могут возникнуть на самых разных уровнях. Более того, разработчики и специалисты по анализу производительности сами часто работают в географически разнесенных офисах. Однако группе ученых часто требуется работать вместе с аналитиками, невзирая на время и расстояния. Чтобы обеспечить обмен информацией между членами этой группы Virtue содержит механизмы мультимедиа-аннотаций для асинхронной совместной работы и объединяет дисплей, обеспечивающий объемную визуализацию, с настольными и карманными мобильными системами.

Поскольку графы Virtue представляют собой осязаемые объекты, пользователи могут аннотировать их так же, как и физические объекты — снабжать их комментариями. Просто прикасаясь к объекту Virtue и отдавая голосовую команду, пользователи могут добавить звуковую и видеоинформацию со своими соображениями об отображаемых данных. Общее описание визуализации закрепляется в определенной для конкретного пользователя позиции на дисплее.

Кажущиеся на первый взгляд более простыми, чем мультимедиа, текстовые аннотации менее удобны для дисплеев виртуальной среды — из-за низкого разрешения текст, выводимый в небольших окнах, очень плохо виден. Окна большего размера заслоняют изображение, и становится трудно определить, к какому именно контексту относится тот или иной комментарий. Более того, текстовая аннотация требует или специального устройства для ввода текста, или высокоточного преобразования текста в речь.

Чтобы усилить визуальную связь аннотации, содержащие детальное описание конкретной вершины графа, появляются в виде окаймленных рамочек, на (рис. 6). Такое окаймление говорит о наличии аннотации и в то же время минимально искажает изображение. Для общих аннотаций, не связанных с конкретным графическим объектом, Virtue имеет более гибкое решение. К примеру, мы использовали сферы с наложенными на них текстурами для представления таких аннотаций. Изображения могут предоставлять авторский контекст в виде картинки или визуального представления предмета. В основу системы аннотаций в Virtue были положены модифицированные версии инструментальных средств многоадресных видеоконференций Mbone VIC и VAT. Чтобы записать аннотацию, пользователь Virtue отдает голосовую команду и начинает говорить. Камеры слежения нацеливаются на говорящего, и инструментальные средства видеоконференций генерируют файлы, которые сохраняются в базе данных сервера аннотаций. Когда пользователь открывает аннотацию, Virtue связывается с этим сервером, который затем передает файлы с цифровым видео и аудио. Затем Virtue помещает полученный видеоматериал в плавающее окно на изображении.

Virtue использует то же самое программное обеспечение многоадресной рассылки для передачи и получения аудио- и видеопотоков. Это позволяет вести видеоконференции между дисплеем, поддерживающим объемное изображение, и удаленными настольными и мобильными устройствами. Чтобы еще больше укрепить связь дисплея и удаленных систем, мы экспортируем графические изображения Virtue через отдельный видеопоток многоадресной рассылки. Хотя представление на настольной системе имеет низкое разрешение, оно обеспечивает важный контекст для совместной работы, которая предполагает не только визуализацию но и обсуждение. Чтобы стать равноправными партнерами, удаленные члены группы должны иметь возможность взаимодействовать друг с другом и управлять визуализацией. Однако Virtue включает в себя систему на базе Java, которая позволяет удаленным пользователям управлять аспектами основного изображения. Это дает им возможность локально отображать и управлять поведением удаленного программного обеспечения через Java-интерфейсы работы с датчиками и активаторами Autopilot.

РАБОТА С VIRTUE

Лучший тест для любого инструментального средства анализа производительности — это его применение в реальных приложениях. Чтобы оценить эффективность Virtue, мы снабдили контрольно-измерительными датчиками большое параллельное приложение, применяемое в Center for Simulation ofAdvanced Rockets (CSAR) министерства энергетики в рамках программы Academic Strategic Alliance Program. Специалисты CSAR хотели создать полностью трехмерную интегрированную модель сложных взаимодействий компонентов в твердотопливном ракетном ускорителе и провести ее экспертизу. Недавно обнаруженные неполадки в твердотопливных ракетных ускорителях заставили ученых активно заняться этой проблемой, чтобы понять в чем потенциальная нестабильность этих устройств и каковы режимы, порождающие ошибки. Эта проблема имеет множество аспектов, относящихся к различным дисциплинам, а соответствующая модель, написанная множеством разработчиков, — динамична и постоянно совершенствуется.

Написанное на Fortran 90 параллельное приложение CSAR использует Message-Passing Interface (MPI). Сейчас код моделирует потоки жидкости, горение и структурные компоненты твердотопливного ракетного ускорителя (SRB) для космических кораблей; ученые продолжают добавлять новые, более сложные модели и компоненты. По оценкам CSAR, на моделирование первых 0,5 секунды сгорания в SRB потребуется около 120 часов при использовании 128-процессорного суперкомпьютера SGI Origin 2000. Конечная цель моделирования двух минут сгорания топлива в SRB зависит от оптимизации программы.

Чтобы проанализировать производительность приложения CSAR, мы создали визуализацию реального времени, детально описывающую исполнение кода на SGI Origin 2000 в NASA. Визуализация состоит из трех уровней. На самом высоком уровне, показанном на рисунке 4, географическое изображение демонстрирует логическую связь глобальной сети, объединяющей несколько суперкомпьютеров и национальные лаборатории в континентальной части США. Наша модифицированная маршрутная программа Trace, расширенная за счет датчиков Autopilot, собирает данные о задержке, которые Virtue указывает как канал соответствующего цвета. Хотя приложение CSAR сейчас исполняется только на одной параллельной системе в каждый момент времени, географическая визуализация позволила нам проверить возможности Virtue по визуализации сетевого трафика в реальном времени.

На среднем уровне иерархии изображения мы представили деятельность процессоров и данные по обмену сообщениями при выполнении приложения на одной платформе с использованием возможностей параллельной обработки. Мы добавили в исходный текст датчики с помощью SvPablo, чтобы выяснить структуру вызова процедур в приложении. Мы также добавили датчики Autopilot, чтобы узнать входные и выходные значения логических фрагментов кода и получить информацию об обмене сообщениями MPI. Выбирая узел NCSA на географическом изображении, пользователи могут «углубиться» в изображение в формате временных туннелей, созданное на основе данных Autopilot. Цвет каждого фрагмента временной линии указывает на исполняемый в данный момент фрагмент кода (например, потоки жидкости или структуры) на каждом из процессоров. На рисунке 5, к примеру, желтые временные линии соответствуют исполнению модуля разрешения структур. Хорды, связывающие временные линии через туннель, представляют деятельность обмена сообщениями.

Из сгенерированного Virtue графа с временными каналами, пользователь может выбрать временную линию, соответствующую конкретному процессору и «углубиться» , чтобы отобразить соответствующий граф вызовов, как показано на рисунке 6. Здесь соответствие данных связывает размер вершины с количеством исполнения соответствующего кода на указанном процессоре, а цвет вершины — со временем исполнения соответствующей процедуры.

Помимо визуализации в реальном времени мы создавали визуализацию по окончании работы приложения, записывая данные датчиков Autopilot для последующего воспроизведения. Визуализация по окончании работы позволила нам совместно использовать результаты с разработчиками приложений CSAR и сделать два важных вывода. Во-первых, в обоих видах визуализации Virtue обнаружил возможности для оптимизации инициализации кода CSAR. В существующей конфигурации кода инициализация требует обмена многими небольшими сообщениями MPI между процессорами, и на это тратится значительная часть всего времени исполнения.

Во-вторых, мы выявили возможности динамической регулировки критериев конвергенции и баланса исполнения между жидкостным и структурным компонентами кода. Мы уверены, что эта возможность весьма важна для управляемой пользователем настройки программного обеспечения. Предоставляя датчики и активаторы для измерения и настройки параметров, Virtue позволит разработчикам приложений CSAR интерактивно исследовать поведенческий баланс компонент кода. Помимо выявления возможностей оптимизации приложения мы также собрали ценные качественные данные, касающиеся самой системы Virtue. Самое главное, что подход, предусматривающий использование в качестве основы системы визуализации графов, оказался достаточно гибким, чтобы успешно применяться к сложным междисциплинарным приложениям. Кроме того, мы выяснили, что успех крупномасштабной визуализации зависит от виртуального инструментария, который доказал свою эффективность как механизм манипулирования данными и изменения представлений. Действительно, мы уверены, что Virtue требуется широкий набор еще более мощных инструментальных средств для того, чтобы полностью использовать ее возможности визуализации.

Хотя мы подтвердили состоятельность нашего подхода к работе с крупномасштабными приложениями, сделать предстоит еще немало. Во-первых, мы продолжаем тестировать Virtue на распределенных приложениях в рамках программы National Science Foundation PACI (Partnership for Advanced Computational Infrastructure) и программ NGI (Next-Generation Internet) и ASCI (Accelerated Strategic Computing Initiative) министерства энергетики. Мы также разрабатываем более точные изображения сетевой производительности и виртуальные инструментальные средства для исследования визуализаций.

За счет богатого набора данных о сетевых параметрах из Very High Performance Backbone Network Service (vBNS) мы увеличиваем представления изображений с новыми визуальными атрибутами для визуализации более широкого диапазона статистических показателей. Кроме того, ведутся разработки набора более мощных виртуальных инструментальных средств, ориентированных на конкретную предметную область. К ним относятся модуль поиска критически важных путей, который будет выполнять ограниченный набор задач в представлении с использованием временных туннелей, и модуль генерации статических кластеров, который будет выявлять наиболее уместные метрики производительности для изображения.

Наконец, мы планируем продолжить исследования технологий совместной работы. Чтобы усовершенствовать распределенные взаимодействия , мы генерируем мгновенные снимки VRML (Virtual Reality Modeling Language) структур графа для экспорта через Web. Мы также исследуем навигационные пути с помощью пакетов создания аннотаций и реализации «модулей записи полетов» для сохранения путей перемещения пользователя в сложных графах.

Эрик Шаффер — программист-исследователь факультета компьютерных наук университета штата Иллинойс.

Даниэль А. Рид - профессор и декан факультета компьютерных наук университета штата Иллинойс.

Шеннон Уайтморе - программист-исследователь факультета компьютерных наук университета штата Иллинойс.

Бенджамин Шиффер — программист-исследователь факультета компьютерных наук университета штата Иллинойс.

С авторами статьи можно связаться по адресам {shaffer1, reed, swhitmor, schaeffr}@cs.uiuc.edu

Virtue: Visualization of Parallel and Distributed Applications, Eric Shaffer, Daniel A. Reed, Shannon Whitmore, Benjamin Schaeffer. IEEE Computer, december 1999, pp.44-55. Reprinted with permission, Copyright IEEE CS, 1999. All rights reserved.


Литература

[1] I. Foster and C. Kesselman, The Grid: Blueprint for a New Computing Infrastructure, Morgan-Kaufmann, San Francisco, 1999.

[2] L. DeRose, Y. Zhang, and D. Reed, «SvPablo: A Multi-Language Performance Analysis System,» Computer Performance Evaluation Modeling Techniques and Tools, Lecture Notes in Computer Science, Vol. 1,469, R. Puigjaner, N. Savino, and B. Serra, eds., Springer-Ver-lag, New York, 1998, pp. 352-355.

[3] M. Calzarossa et al., «Medea: A Tool for Workload Characterization of Parallel Systems,» IEEE Parallel&Distributed Technology, Winter 1995, pp. 72-80.

[4] M.T. Heath and J.A. Etheridge, «Visualizing the Per-formance of Parallel Programs,» IEEE Software, Sept. 1991, pp. 29-39.

[5] L. DeRose et al., «An Approach to Immersive Perfor-mance Visualization of Parallel and Wide-Area Distrib-uted Applications,» Proc. 8th IEEE Int?l Symp. High-Performance Distributed Computing, IEEE CS Press, Los Alamitos, Calif., 1999, pp. 247-254.

[6] I. Foster and C. Kesselman, «Globus: A Metacomput-ing Infrastructure Toolkit,» Int?l J. Supercomputer Applications, Vol. 11, No. 2, 1997, pp. 115-118.

[7] D. Reed et al., «Virtual Reality and Parallel Systems Per-formance Analysis,» Computer, Nov. 1995, pp. 57-67.