ИНТЕРАКТИВНАЯ ОТЛАДКА MPI-ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ ПАРАЛЛЕЛЬНОГО ОТЛАДЧИКА TDBМ.Р. Коваленко В работе описаны основные принципы реализации компонентов программной системы интерактивной отладки MPI-программ TDB (ПС TDB), а так же методы отладки параллельных программ с использованием данной системы. Разработка ПС TDB проводилась в ИПС РАН в рамках программы СКИФ. Компоненты ПС TDB (см. рис. 1) естественным образом делятся на две группы: компоненты, функционирующие на фронтальной ЭВМ и компоненты, функционирующие на вычислительных узлах. К одной группе относятся первичный демон, центральный сервер и клиентский компонент, к другой - вторичный демон, сервер отладки и библиотечный компонент. Рис. 1. Архитектура ПС TDB. Первичный и вторичный демоны являются мониторными, постоянно функционирующими процессами. Основная задача, решаемая вторичным демоном, и одна из задач первичного демона-отслеживать состояние вычислительных узлов ПВС. Мониторинг состояния ПВС позволяет обеспечить клиентский компонент информацией о наборе вычислительных узлов, на которых возможен запуск рассматриваемого MPI-приложения в режиме отладки. Все остальные компоненты ПС TDB не являются постоянно функционирующими процессами и запускаются клиентским компонентом системы или непосредственно пользователем в процессе проведения сеанса отладки конкретного MPI-приложения. Центральный сервер ПС TDB обеспечивает взаимодействие клиентского компонента с остальными компонентами ПС TDB - играя, в частности, роль программного мультиплексора пакетов TDB-протокола. Использование центрального сервера в качестве отдельного компонента системы позволило в значительной степени повысить степени открытости всей системы, облегчить создание различных реализаций клиента. В контексте расширенной модели <клиент-сервер>, реализуемой в ПС TDB, центральный сервер выступает в роли сервера для клиентского компонента, и в роли клиента для других компонентов (первичного демона и серверов отладки). Библиотечный компонент предназначен для инициализации подключения процессов отлаживаемого MPI-приложения к ПС TDB на начальной стадии сессии отладки. С этой целью библиотечный компонент подменяет ряд функций, стандартных для параллельных приложений такого типа, на специальные, которые:
ПС TDB поддерживает различные реализации MPI и имеет в своем составе набор соответствующих библиотек. Подходящий экземпляр библиотечного компонента включается в состав исполняемого файла MPI-приложения на этапе редактирования связей. Сервер отладки - компонент, непосредственно управляющий отладкой процессов приложения на вычислительных узлах, а также отвечающий за присоединение процессов отлаживаемого приложения к сессии отладки. Запуск сервера отладки производится из пользовательского MPI-приложения в процессе выполнении им специальных функций библиотечного компонента. Для управления отлаживаемыми процессами сервер отладки имеет набор специальных программных объектов-экземпляров отладчиков, управляющих работой базовых системных отладчиков gdb. Таким образом, процессу отлаживаемого приложения в сервере отладки соответствует пара <экземпляр отладчика сервера отладки-системный отладчик>, которая занимается непосредственным управлением отладкой данного процесса, интерпретируя и выполняя команды, поступающие от клиента через центральный сервер. Набор процессов MPI-приложения, присоединенных к одному серверу отладки, образует MPI-узел. Наряду с персональными командами над конкретными процессами сервер отладки способен производить и групповые операции над предопределенными группами процессов MPI-узла, поддерживая, таким образом, парадигму групп и групповых команд ПС TDB. Клиентский компонент (клиент)-программная составляющая ПС TDB, обеспечивающая взаимодействие пользователя с ПС TDB в процессе интерактивной отладки. Клиентский компонент является критически важным для решения основной задачи ПС TDB-минимизации трудоемкости процесса отладки разрабатываемого MPI-приложения. |
Рис. 2. Интерфейс GTDB. Иллюстрация сеанса отладки.
|