Специфика ПС 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".
![](20-05_files/publications_pub2005_tdb_abrau_2005_lam_mpi_props.gif)
Рис. 3. Компонент настройки свойств ПС TDB
![](20-05_files/publications_pub2005_tdb_abrau_2005_nodes_selection.gif)
Рис. 4. Компонент выбора вычислительных узлов
2. Запуск задачи осуществляется коммандой
"run".
3. Управление процессом интерактивной отладки
просходит либо с использованием компонентов и элементов
графического пользовательского интерфейса (кнопки, всплывающие
меню), либо при помощи CLI-комманд.
В процессе интерактивной отладки
действия можно выполнять как над отдельными процессами, так и
над множествами процессов-группами. Для формирования различных
типов групп: статических (состав которых определен в момент
создания) и динамических (состав которых пересчитывается в
момент выполнения команды над группой) используются команды
"sgroup" и "dgroup" соответственно.
Наряду с ординарными командами, которые
могут выполняться на группе процессов (next, print и др.), в
ПС TDB реализованы специальные групповые команды, аналоги
"break", "watch", "display", позволяющие оперировать
объектами, заданными на каждом из процессов группы (например,
breakpoint) как с единым объектом (см. рис. 5).
Клиент GTDB позволяет производить
отладку MPI-приложений в двух режимах: основном и "по
процессам". В первом (основном) режиме пользователю дается
возможность работать с активным(выбранным) процессом или
группой, во втором-работать с процессами приложения
индивидуально (см. рис. 5).
![](20-05_files/publications_pub2005_tdb_abrau_2005_procs.gif)
Рис. 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
|