3. Отладка параллельных программ

 

3.1 Обзор методик отладки

В настоящее время можно выделить следующие методики отладки параллельных программ:

·          Методика статической отладки. Для отладки программы не используются процессы ее выполнения;

·          Методика анализа отладочной информации после завершения выполнения программы (post-mortem анализ) [8] позволяет минимизировать эффект вмешательства для систем с распределенной памятью;

·          Интерактивная отладка. Обычный способ отладки последовательных программ – установка точек останова, выполнение программы (процесса (процессов), нити (нитей)) до точки останова, анализ состояния программы в точке останова и т.д.;

·          Динамический контроль. В процессе выполнения программы средство отладки производит действия по локализации ошибок;

·          Методика record & replay. Эта методика предназначена для локализации трудновоспроизводимых ошибок. Отладка программы состоит из сбора информации, необходимой для последующего детерминированного воспроизведения ее выполнения и повторных детерминированных запусков этой программы с использованием собранной информации. При повторных запусках можно использовать инструментарий интерактивной отладки – точки останова, точки контроля данных, и т.п.;

·          Сравнительная отладка [12]. Поиск ошибок в программе при помощи сравнения даны ее выполнения с некоторыми эталонными данными. В качестве эталонных данных могут выступать, например, данные последовательного выполнения отлаживаемой программы.

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

Отладка параллельных программ осложняется (в большей степени, чем отладка последовательных программ) так называемым эффектом вмешательства (probe effect): отлаживаемая программа может вести себя по-разному при её запуске с отладочным средством и без него. Таким образом, отладочное средство может маскировать некоторые ошибки или, наоборот, способствовать их проявлению.

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

Отладчик, для которого реализуется визуализатор, описываемый в данной работе, реализует два метода отладки: post-mortem анализ и сравнительная отладка.

3.2 Обзор существующих средств отладки

 

3.2.1 LockInt (Sun)

·          Метод отладки: статическая отладка.

·          Эффект вмешательства: отсутствует.

·          Гибкость: отсутствует (не использует процессы выполнения программы).

·          Удобство использования и простота изучения: пользователю необходимо указать, какие блокировки, за какие разделяемые переменные отвечают. Обучиться использовать просто.

·          Языки программирования и операционные системы: Sun WorkShop ANSI C с Pthreads на ОС Solaris.

·          Использование ресурсов: не требует выполнения на параллельной ЭВМ, т.к. процессы выполнения программы не используются.

·          Локализация ошибок: ошибки синхронизации (дедлоки и условия гонок) ищутся по спецкомментариям пользователя и исходному коду. Возможен пропуск ошибок, в случае нехватки информации от пользователя.

·          Успешность на рынке: входит в SunTMONEStudio 7. Использовался для отладки программы, вычисляющей множество Мандельброта [15].

3.2.2 MAD EMU и ATTEMPT (Johannes Kepler University Linz)

·          Метод отладки: post-mortem анализ.

·          Эффект вмешательства: имеется, в связи с сохранением трассировки. Для многопоточных приложений может быть очень сильным.

·          Гибкость: отсутствует, (анализ происходит после завершения выполнения программы).

·          Удобство использования и простота изучения: сбор и анализ информации происходит автоматически. Возможны визуализация и анализ производительности. Обучиться использовать просто.

·          Языки программирования и операционные системы: работает с интерфейсом MPI. Поддержки языков программирования нет.

·          Использование ресурсов: трассировка может достигать больших размеров.

·          Локализация ошибок: класс ошибок определён и ограничен (изолированный send/receive, различная длина событий-сообщений при посылке/приёме, ...)

·          Успешность на рынке: информации об использовании MAD за пределами Johannes Kepler University Linz не имеется.


3.2.3 Total View (Etnus LLC), Prism(Sun), p2d2(NAS Ames), Ladebug(Compaq), GDB(GNU), DBX(Sun)

·          Метод отладки: интерактивная отладка.

·          Эффект вмешательства: имеется. Остановка нитей/процессов нарушает стандартное расписание их выполнения.

·          Гибкость: максимальна по определению.

·          Удобство использования и простота изучения: от пользователя требуется самостоятельная установка точек останова, изучение состояния программы, ее перезапуск, изменение значений переменны и т.д. Обучение эффективному использованию может быть не простым.

·          Языки программирования и операционные системы: Поддержка традиционных языков программирования и их параллельных расширений не представляет проблем. Наиболее развитые средства параллельной отладки разработаны для ОС Unix..

·          Использование ресурсов: ресурсы ЭВМ используются эффективно, может потребовать много усилий со стороны человека.

·          Локализация ошибок: класс ошибок достаточно широк, но их локализация сильно зависит от умения программиста.

·          Успешность на рынке: широко используются. Total View и PDBX(IBM) используются на ASCI White.


Информация о работе «Диалоговая оболочка отладчика MPI-программ»
Раздел: Информатика, программирование
Количество знаков с пробелами: 44644
Количество таблиц: 0
Количество изображений: 8

Похожие работы

Скачать
112646
5
10

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

0 комментариев


Наверх