Опубликован: 22.04.2008 | Уровень: профессионал | Доступ: платный
Лекция 2:

Основы программирования на MPI

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >

2.7. Отладка параллельных программ с использованием Microsoft Visual Studio 2005

Visual Studio 2005 включает в себя важные функции, которые позволяют отлаживать параллельные приложения в удаленном режиме.

MPI-отладчик из Visual Studio использует файл Mpishim.exe для автоматического присоединения отладочных средств к MPI-процессам, исполняющимся на узлах кластера. Совокупность стандартных средств отладки, уже имевшееся в составе Visual Studio 2005, расширено на параллельные приложения, и обеспечивает точки останова и пошаговое выполнение на уровне процессов и на уровне потоков. С помощью этих средств, возможно отладить приложения, в которых имеются несоответствия в передаче и приеме сообщений, дедлоки и условия для возникновения гонок.

Установка и конфигурирование средств отладки в Visual Studio 2005

Visual Studio 2005 Professional Edition и Visual Studio 2005 Team System позволяют отлаживать приложения, включая и параллельные приложения, в удаленном режиме. При отладке MPI-приложений в рамках Visual Studio используются следующие средства:

  1. Msvsmon - монитор удаленной отладки
  2. Smpd - процесс-демон, который запускает приложение Mpishim.exe
  3. Mpishim - приложение, которое связывается с Msvsmon и запускает процедуру Mpiexeс.
  4. Mpiexec - процедура запуска приложения пользователя в виде MPI-задания.

Общие шаги по установке и конфигурированию средств отладки MPI приложений в рамках Visual Studio состоят в следующем:

  1. Установить и сконфигурировать MS MPI на каждом узле кластера. MS MPI включен в пакет Windows Compute Cluster Server 2003, но поддерживаются и другие версии MPI.
  2. Установить Mpishim.exe на каждом узле кластера в одной и той же директории на каждом из узлов. Например, можно поместить Mpishim.exe в директорию C:\Windows\system32 на каждом узле кластера.
  3. Установить монитор удаленной отладки (Msvsmon.exe) на каждом узле кластера.
  4. Установить на компьютере, с которого будет производиться удаленная отладка, достаточные привилегии для запуска заданий на кластере. Этот компьютер должен находиться в таком сегменте сети и в такой подсети, чтобы с него был возможен доступ к вычислительным узлам кластера.

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

  1. Вставить в дисковод последний из установочных дисков Visual Studio 2005.
  2. Отыскать на нем директорию Remote Debugger\x64.
  3. Запустить из нее файл rdbgsetup.exe для установки компонент для удаленной отладки.

Дополнительные замечания:

  1. При большом количестве узлов на вычислительном кластере, рекомендуется скопировать содержимое папки Remote Debugger\x64 на диск, доступный всем узлам, и запускать процедуру установки оттуда.
  2. Пользователь, задействованный в сессии отладки MPI-приложений в Visual Studio 2005, должен также быть пользователем, запустившим Msvsmon.exe на удаленных машинах, поскольку Visual Studio проверяет, чтобы пользователь, выполняющий отладку, и пользователь, запустивший процессы на удаленных компьютерах, совпадали.

Отладка MPI-приложений

Visual Studio 2005 имеет средства, которые делают ее эффективным инструментом отладки MPI-приложений. Пользователь может выполнять MPI-приложения непосредственно в рамках сессии из Visual Studio в двух режимах:

  • (1) в режиме симуляции на одной машине (задавая количество виртуальных процессоров, которые будет использовать MPI-приложение),
  • (2) в режиме непосредственного запуска приложения на вычислительном кластере.

При задании точек остановки (breakpoints) в приложении, пользователь может указать применение этих точек

  • (а) ко всем MPI-процессам, или
  • (б) только к некоторым из них путем задания условий фильтрации для точек остановки.

Установка конфигурационных параметров Visual Studio для отладки MPI-приложений

Чтобы установить конфигурационные параметры для MPI-приложения, для которого будет производиться отладка, необходимо выполнить следующие шаги:

  1. Открыть в Visual Studio решение, которое содержит требуемое MPI приложение.
  2. На странице Properties проекта, раскрыть подраздел Configuration Properties, выбрать Debugging, и затем в списке Debugger to launch, выбрать MPI Cluster Debugger, как показано на Рис 2.1.
    Отладка MPI-приложения с использованием Visual Studio

    увеличить изображение
    Рис. 2.1. Отладка MPI-приложения с использованием Visual Studio
  3. Заполнить соответствующими аргументами поля, как показано на Рис 2.1. Те же самые аргументы используются и в обычном MPI-задании, за исключением файла Mpishim.exe, который необходим для взаимодействия отладчика с MPI-сервисом.
  4. Проверить, что значение поля Application Command содержит значение, которое верно для каждого из узлов кластера. Легче всего это обеспечить, если указанный путь относится к общей директории для всех узлов.
  5. В главном меню Visual Studio 2005, выберите пункт Tools, а в нем - подпункт Options для раскрытия диалогового окна, показанного на Рис 2.2.
    Диалоговое окно Options

    Рис. 2.2. Диалоговое окно Options
  6. Установить необходимые точки остановки, и заново запустить процесс Build повторного построения изображения.

Замечание.

Важное свойство отладки параллельных приложений в Visual Studio 2005 состоит в том, что в ней возможно устанавливать точки остановки отдельно для каждого процесса. Например, можно установить точку остановки только для процесса с конкретным Windows Process ID (PID) или же для множества процессов с выбранными PID.

Запуск MPI-приложения в режиме отладки

После того, как для приложения установлены конфигурационные параметры в Visual Studio, запустить приложение в режиме отладки можно, нажав клавишу F5. В результате этого, приложение запустится с использованием mpiexec, а отладчик из Visual Studio будет запущен на узлах, где исполняются процессы приложения. Когда процесс приложения на некотором узле достигнет точки остановки, то его выполнение прервется.

Чтобы просмотреть процессы приложения, необходимо нажать Ctrl-Alt-Z, чтобы открыть окно Processes, пример которого показан на Рис 2.3.

Окно Processes

увеличить изображение
Рис. 2.3. Окно Processes

Отметим, что в поле ID этого окна отображается Windows Process ID (PID), а не ранг процесса в смысле MPI.

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

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

Замечание.

Для пошагового исполнения, начиная с точки остановки, необходимо всегда использовать соответствующие кнопки, отмеченные овалом на Рис 2.3. В этом случае, нельзя использовать комбинации клавиш.

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >
Дмитрий Молокоедов
Дмитрий Молокоедов
Россия, Новосибирск, НГПУ, 2009
Паулус Шеетекела
Паулус Шеетекела
Россия, ТГТУ, 2010