Разработка средств визуализации для системы параллельного программирования DVM

Труды 34-й Региональной молодежной конференции
"Проблемы теоретической и прикладной математики".
Екатеринбург. 27-31 января 2003 г.

А.Ю.Байдалин, Е.М.Гусева, А.А.Даеничева, Д.Р.Исмагилов, А.Ю.Казанцев, Д.В.Манаков

bajur @ imm.uran.ru

Работа выполнена при поддержке РФФИ, гранты № 01-07-90210, № 01-07-90215.

Введение.
Cистема DVM разработана в ИПМ РАН им. М.В.Келдыша и предназначена для использования в том числе и на отечесвенных масс-параллельных вычислителях серии МВС. Опираясь на стандартные языки C и Fortran77, DVM расширяет их до эффективных языков параллельного программирования. Распараллеливание осуществляется за счет внедрения в текст последовательной программы специальных директив-комментариев, конвертируемых в реальные коммуникационные вызовы. Система снабжена богатыми текстовыми средствами off-line отладки правильности и эффективности, включая анализатор эффективности [4].

В данной работе рассматривается ряд вопросов, возникавших в ходе создания визуальной среды DVM-программирования.

Отладка эффективности.
Первоочередной задачей стало создание средств визуального представления информации об эффективности. Для разработки была применена стандартная схема: изучение основных сущностей, выявление их характеристик, построение видов отображения и создание опытной версии. Авторами системы DVM была создана специализированная (в чем-то специфическая) модель оценки эффективности и, как следствие, предложена методика анализа и отладки эффективности. При создании видов отображения были использованы как элементы идеологии авторской методики отладки, так и собственные идеи по представлению основных сущностей отлаживаемой программы и взаимодействию с ними пользователем.

На данный момент разработана прототипная версия VisDVM [2], которая передана в эксплуатацию в ИПМ РАН и ИММ УрО РАН.

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

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

Визуальное программирование.
Использование DVM облегчает работу программиста-прикладника, снимая проблему реализации низкоуровневого параллелизма "вручную", но требует от программиста четкого понимания функционирования программы и точного выражения намерений пользователя в DVM-директивах [1].

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

В создании средств визуальной поддержки проектирования и визуального программирования для DVM можно выделить несколько направлений.

"Мастера текста" [1] как средства визуальной поддержки разработки программ на уровне исходного текста. Мастером текста является форма, при взаимодействии с которой пользователь отвечает на вопросы путем выбора элемента из списка или указания конкретного имени. По окончанию работы с мастером пользователь получает текст, сгенерированный на основе указанной им информации. Мастера используются для генерации DVM-команд, а также для задания ряда DVM-директив, требующих больших по объему спецификаций. Вопросы, задаваемые мастером, формулируются на естественном для пользователя языке и кратко характеризуют назначение элемента (пункта списка, флажка). Четкая детализация назначения элемента и описание результата применения позволяют избежать написания синтаксически заведомо неправильного кода.

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

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

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

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

"За пределами DVM".
В ходе работы по визуализации для DVM были созданы некоторые виды отображения, которые могут быть использованы для других систем. В частности, определенный интерес представляет стена интервалов, описывающее выполнение интервала (параллельного фрагмента программы) на множестве процессоров.

В других системах отладки эффективности существуют свои методы представления данных об эффективности. Чаще всего это различные деревья или недревесные графы вызовов (CallGraph из Intel VTune). Разветвленность и запутанность таких графов затрудняет анализ программы и восприятие картины происходящего.

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

Попытка использовать другие метафоры и виды отображения привела к некоторому расширению первоначальной задачи представления графа вызовов. Предложена метафора молекулы, в которой структура молекулы отражает структуру исходного графа. Между атомами (отображающими функции-вершины графа) введено два типа взаимодействия: упругое между связанными и электростатическое между всеми вершинами-"атомами". Электростатическое взаимодействие отражает временные характеристики вызовов функций, тогда как упругое -- количество вызовов. (Такой подход несколько напоминает идеи [5].)

Поиск и конструирование новых метафор должны помочь в проектировании новых методов работы с параллельными программами.

Литература

  1. Авербух В.Л., Байдалин А.Ю. Проектирование визуальных средств разработки программ для системы параллельного программирования DVM // Алгоритмы и програм. ср-ва параллельн.вычислений: Сб.науч.тр./ ИММ УрО РАН. Екатеринбург, 2002.
  2. Авербух В.Л., Байдалин А.Ю. Проектирование средств визуализации для системы параллельного программирования DVM // Алгоритмы и програм. ср-ва параллельн.вычислений: Сб.науч.тр./ ИММ УрО РАН. Екатеринбург, 2001. С. 3-40.
  3. Байдалин А.Ю. Об опыте использования системы параллельного программирования DVM в ИММ УрО РАН // Проблемы теоретической и прикладной математики. Труды 33-й Региональной молодежной конференции, 28 января -- 1 февраля 2002 г. Екатеринбург. ИММ УрО РАН. 2002. С. 306-308
  4. Крюков В., Коновалов Н. Параллельные программы для вычислительных систем и кластеров // Открытые системы. 2002. № 3, стр.12-18
  5. Osawa N. An Enhanced 3-D Animation Tool for Performance Tuning of Parallel Programs Based on Dynamic Models // SPDP 98 Welches Or. USA. pp. 72-80.