Специфика ПС TDB заключается в том, что, в отличие от
обычных, не-параллельных отладчиков, ПС TDB работает сразу со
многими процессами отлаживаемого MPI-приложения на множестве
вычислительных узлов. В случае отладки таких сложных
многопроцессовых MPI-приложений каждая из подзадач работы
отладчика усложняется многократно, и пользователь сталкивается
с необходимостью оперировать намного большим объемом
поступающей информации различного рода.
Очевидно, что клиентский компонент, способный обеспечить
эффективность процесса интерактивной отладки параллельного
приложения, должен
- представлять информацию в легко считываемом, удобном
виде-для того, чтобы пользователь мог охватить картину
состояния отлаживаемого приложения целиком и в то же время
не был перегружен излишне исчерпывающей информацией;
- иметь интуитивно понятный интерфейс для упрощения задачи
управления процессом отладки.
Текущая реализация ПС TDB включает в себя полноценный
графический клиент-GTDB (см. рис. 2), удовлетворяющий всем
этим требованиям и имеющий набор базовых компонентов, каждый
из которых ответственен за выполнение отдельной группы
функций:
- настройки свойств ПС TDB, в том числе и поддерживаемых
MPI реализаций,
- выбора вычислительных узлов для запуска приложения,
- отображения состояния MPI-узлов/процессов отлаживаемого
приложения, с возможностью выбора любого из них для
индивидуальной работы по интерактивной отладке,
- интерактивной работы с процессом отлаживаемого
приложения,
- отображения сообщений ПС TDB,
- работы с точками останова,
- ввода команд ПС TDB.
Набор команд инрерфейса командной строки (CLI-команд, от
англ. "Command Line Interface") GTDB разработан таким образом,
чтобы быть наиболее приближенным к набору команд системного
отладчика gdb. Семантика, набор параметров и формат ответных
сообщений стандартных команд отладчика, как правило, идентичны
семантике, параметрам и сообщениям аналогичных команд
отладчика gdb.
Клиент ПС TDB имеет также ряд характерных отличий,
обусловленных спецификой ПС TDB как распределенного отладчика.
Среди особенностей можно выделить: групповые команды, команды
для настройки среды MPI, команды формирования, редактирования
и просмотра списка вычислительных узлов, пригодных для запуска
отлаживаемой задачи, а также команды, использующиеся при
отладке специальных параллельных приложений, например,
Т-приложений [1,2].
ПС TDB поддерживает различные реализации MPI, и для сборки
приложения, в список использумых библиотек необходимо включить
версию библиотеки libtdb_mpi, соответствующую используемой
реализации MPI.
Пример сборки MPI-приложения (MPI-реализация-SCALI MPI):
# gcc -g -O0 hello-world.c -o hello-world -ltdb_mpi_scali
-L/opt/scali/lib -lmpi
Ниже описываются основные функции GTDB на различных этапах
сеанса отладки и соответствующие возможности предоставляемые
пользователю.
1. Подготовка среды выполнения отлаживаемой задачи
происходит с использованием графических компонентов: настройки
свойств (см. рис. 3) и выбора узлов (см. рис. 4).
Альтернативный способ подготовки среды
выполнения-использование следующих CLI-команд: "shownodes",
"getnodes", "addnode", "delnode", "printnodes", "set npn",
"set args", "set mpi", "set mpiargs", "set runmode".
Рис. 3. Компонент настройки свойств ПС TDB
Рис. 4. Компонент выбора вычислительных узлов
2. Запуск задачи осуществляется коммандой
"run".
3. Управление процессом интерактивной отладки
просходит либо с использованием компонентов и элементов
графического пользовательского интерфейса (кнопки, всплывающие
меню), либо при помощи CLI-комманд.
В процессе интерактивной отладки
действия можно выполнять как над отдельными процессами, так и
над множествами процессов-группами. Для формирования различных
типов групп: статических (состав которых определен в момент
создания) и динамических (состав которых пересчитывается в
момент выполнения команды над группой) используются команды
"sgroup" и "dgroup" соответственно.
Наряду с ординарными командами, которые
могут выполняться на группе процессов (next, print и др.), в
ПС TDB реализованы специальные групповые команды, аналоги
"break", "watch", "display", позволяющие оперировать
объектами, заданными на каждом из процессов группы (например,
breakpoint) как с единым объектом (см. рис. 5).
Клиент GTDB позволяет производить
отладку MPI-приложений в двух режимах: основном и "по
процессам". В первом (основном) режиме пользователю дается
возможность работать с активным(выбранным) процессом или
группой, во втором-работать с процессами приложения
индивидуально (см. рис. 5).
Рис. 5. Иллюстрация работы GTDB в режиме
"Procs"
4. Завершение процесса отладки осуществляется коммандой
"quit".
ЛИТЕРАТУРА:
- Abramov S.M. et al. Autotransformation of evaluation
network as a basis for automatic dynamic
parallelizing // Proceedings of NATUG Meeting "Transputer:
Research and Application", 1993.
- С.М. Абрамов, А.И. Адамович, М.Р. Коваленко. Т-система -
среда программирования с поддержкой автоматического
динамического распараллеливания программ. Пример реализации
алгоритма построения изображений методом трассировки
лучей // Программирование, 1999, 25 (2), с. 100-107.
- А.И. Адамович, М.Р. Коваленко. TDB - открытая
распределенная программная система интерактивной отладки
MPI-программ: архитектурные решения и принципы реализации //
Proc. Суперкомпьютерные системы и их применение SSA'2004.
Труды Международной научной конференции, 26-28 октября 2004
г. Минск, ОИПИ НАН Беларуси Минск, с. 147-151
- Doreen Cheng and Robert Hood. A Portable Debugger for
Parallel and Distributed Programs // Proceedings of the 1994
conference on Supercomputing.
- Etnus TotalView delivers the features, flexibility, and
power you need to debug today's
code // URL: http://www.etnus.com/Support/papers/TotalViewBrochure.pdf
- The Distributed Debugging Tool. An Overview of
Features //
URL: http://www.streamline-computing.com/ddt-overview.pdf
|