Рефераты. Диалоговая оболочка отладчика MPI-программ

просмотр комментариев к ошибкам (Comments)

Окна предназначены для изображения объектов визуализации в графическом виде, с использованием простейших геометрических фигур, линий, цвета, специальных символов-пометок, либо в текстовом виде. Ошибочные ситуации при этом изображаются специальным образом - спецсимволами-пиктограммами, цветом (обычно оттенки красного). Обеспечивается представление полных текстовых сообщений об ошибках, и другой необходимой информации, облегчающей локализацию ошибок - параметров MPI-функций, событий трасс, привязки ошибок к строкам текста исходного программы.

Подробнее основные и дополнительные окна и способы работы с ними описаны ниже.

2. Обеспечение навигации внутри окон. Вертикальная и горизонтальная прокрутка, переходы по связанным событиям.

3. Обеспечение навигации между окнами. Навигация по связанным объектам из разных окон (например, ошибка -> событие в трассе, где она обнаружена -> строка текста программы, соответствующая событию в трассе). Циклическая навигация по взаимосвязанным объектам, относящимся к одной сложной ошибке (например, пара операций точка-точка с несовпадающими контрольными суммами передаваемых данных, последовательность deadlock-событий). Навигация по группе событий определенной пользователем (все или несколько ошибок одного типа, указанных пользователем типов). Возможность перехода к строке текста исходной программы всегда, когда оператор из этой строки связан с представленным событием (кроме интегральных характеристик, подобных общему числу ошибок).

4. Доступ (через интерфейс с отладчиком) к информации о состоянии задачи и процессов, к информации об ошибках, к трассам. Привязка к текстам исходной программы.

5. Изображение объектов визуализации в графическом виде (с использованием простейших геометрических фигур, линий, цвета, специальных символов-пометок), либо в текстовом виде. Выделение при этом специальным образом ошибочных ситуаций. Обеспечение полных текстовых сообщений об ошибках (и другой необходимой информации) в качестве обязательной дополнительной формы изображения (при наведении курсора на объект всплывает текст в качестве постоянного комментария к соответствующему событию).

5.6 Общая схема визуализации

После запуска программы открывается главное окно. Главное окно содержит меню, и панель инструментов. Кнопки на панели инструментов позволяют открыть трассу для чтения и закрыть программу. Меню содержит следующие пункты:

· Меню файла (File)

· Меню событий (Events)

· Меню состояния задачи (Task state)

· Меню справки (Help)

В меню файла можно открыть файл трассы для чтения и закрыть программу. Меню событий позволяет открыть окна трассы (Event line) и окно конкретных ошибок и предупреждений (Errors list). Через меню состояния задачи можно вызвать окно состояния задачи (Task state) и окно обобщенных ошибок (Error location).

5.7 Окно состояния задачи (Task state)

Основное окно Task state представляет в виде текстовой таблицы итоговое состояние задачи, определяемое итоговыми параметрами (Рис. 1):

- число завершенных процессов с неизвестным статусом (unknown status),

- число снятых процессов (aborted),

- число аварийно завершенных процессов (abend),

- число нормально завершенных (normal termination) процессов,

- общее число обнаруженных ошибок (error number)

- общее число обнаруженных предупреждений (warning number)

- общее число зависших операций посылки (pending send number),

- общее число зависших операций приема (pending receive number),

- общее число выполненных операций посылки (send number),

- общее число выполненных операций приема (receive number),

- общее число выполненных коллективных операций (GOP number).

Рис 1. Окно Task state.

Окно Task state содержит управляющие кнопки:

- Show topology - открытие окна детальной визуализации итогового состояния задачи по процессорам,

Нажатие кнопки Show topology приводит к показу в виде матрицы процессоров распределения помеченных итоговых параметров (Topology control). Сначала выводится диалоговое окно задание размера матрицы для визуализации (matrix) (Рис 2.). Это сделано в связи тем, что информации о конкретной топологии процессоров в трассе не хранится, поэтому для отображения выбирается топология решетки, где число столбцов задает сам пользователь. Подробнее окно Topology control описано ниже.

Рис 2. Окно Matrix.

5.8 Окно обобщенных ошибок (Error location)

Информация об ошибках представляется в виде текстовой таблицы, содержащей для каждой ошибки строку:

<название типа ошибки> <список различающихся ссылок на исходные коды для ошибок данного типа>

В каждой строке представляются обобщенные ошибки данного типа (Рис 3.).

Рис 3. Окно Error location.

Обобщаются (объединяются для показа) все ошибки, которые порождены одним и тем же оператором исходной программы (имеющие одну и ту же ссылку на исходные коды).

В списке ссылок на исходные коды могут быть помечены один или несколько элементов и осуществлен, при нажатии кнопки Show source, переход к окну (окнам) стека вызовов и исходного текста (Text control) программы. В окне (окнах) исходного текста показывается строка исходной программы, соответствующая помеченной ссылке в исходный код. Таким образом, пользователь может просмотреть для каждого типа ошибки все места в программе, где такие ошибки были обнаружены. При этом не требуется доступ к трассам.

5.9 Окно топологии процессоров (Topology control)

Окно топологии отображает топологию процессоров. Процессоры раскрашиваются в соответствии с итоговым состоянием задачи. Справа располагается легенда, где объясняется значение цветов и указываются значения параметров, соответствующих данному цвету (Рис 4).

Рис 4. Окно Topology control.

По двойному щелчку мыши на изображении процессора вызывается окно просмотра стека и исходных текстов (Text control) для последней ссылки в исходные тексты для данного процессора.

5.10 Окно конкретных ошибок (Errors list)

Информация об ошибках представляется в виде текстовой таблицы, содержащей для каждой ошибки строку (Рис 5):

<название типа ошибки> <список ссылок (времен) ошибочных событий в трассе >

Рис 5. Окно Errors list.

В строке таблицы с конкретными ошибками содержится упорядоченный по времени (в рамках строки) список ошибок данного типа. Значение элемента списка - время возникновения ошибки. Все строки упорядочены по временам их первых (самых ранних) ошибок.

В списке ссылок (времен) могут быть помечены один или несколько элементов и осуществлен переход к другим окнам, представляющим дополнительную информацию о конкретной ошибке. Для этой цели используются кнопки Show Errors, Show Event Line, Show Comments.

При нажатии кнопки Show Comments открывается дополнительное окно Comments (Рис 6), в котором приводится текст комментария об ошибке. Комментарий формируется отладчиком и предоставляется визуализатору при помощи интерфейса.

Рис 6. Окно Comments.

При нажатии кнопки Show Event Line осуществляется открытие окна событий Event line. Окно Event line должно открываться со сдвигом к первому отмеченному в списке конкретных ошибок событию (первому по времени событию, если указано несколько).

При нажатии кнопки Show Event Line визуализатору требуется доступ к трассам.

При нажатии кнопки Show Errors осуществляется открытие окна (окон) трасс (Trace control) и показывается соответствующее событие (строка) трассы, а также для каждого события трассы открывается окно (окна) стека и исходного текста (Text control) программы. Для ошибочного события каждой трассы показывается соответствующее окно с ошибочной строкой программы. Для одной отмеченной в окне Errors list ошибки могут показываться трассы нескольких процессоров, если ошибочная ситуация связана с несколькими процессорами.

При нажатии кнопки Show Errors визуализатору требуется доступ к трассам.

5.11 Окно событий (Event line)

Другая форма визуализации ошибок - окно Event line, в котором графически представлены события программы по процессорам с выделением ошибочных событий.

В этом окне для каждого процессора представлены в виде линеек окрашенных простейших геометрических фигур события трассы, упорядоченные по времени. Для каждого процессора изображается своя линейка. Таким образом, информация в этом окне - двумерный графический объект с координатами (номер процессора, время события).

Изображения событий “синхронизируются” (выравниваются слева) по коллективным операциям - у этих событий в линейках разных процессоров одинаковые координаты “время события”. Ошибочные события окрашиваются в различные оттенки красного, с учетом типа зафиксированной ошибки. Остальные события окрашиваются цветами, отличными от красного, чтобы упростить понимание типа операции (Рис 7).

Рис 7. Окно Event line.

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

Масштабирование осуществляется при помощи панели инструментов, возможно масштабирование сразу по двум измерениям и по каждому в отдельности, с заданием коэффициента растяжения (сжатия).

Навигация между окнами: при двойном “нажатии” кнопкой мыши на изображенное событие -переход к окну Trace control, причем в списке событий трассы текущим выделено событие, соответствующее нажатому изображению.

5.12 Окно просмотра стека и исходных текстов (Text control)

Окно показа стека и текстов разделяется на две части: просмотр стека (Stack view) и просмотр текса (Source view). В окне Stack view представлен стек вызовов в виде списка строк формата <номер> <имя файла> <стока кода> <наличие файла> (Рис 8), где <имя файла> - имя исходного файла, <строка кода> - номер строки в исходном тексте, помогающий локализовать ошибку, <наличие файла> - указание существования файла (файл может не существовать). Последний вызов расположен под первым номером, первый вызов стоит последним в списке.

Рис 8. Окно Text control.

Второе окно Source view отображает исходные тексты программы, и представляет собой набор закладок (Tab pane), где каждому файлу соответствует одна закладка.

Управление:

При выборе строки в окне стека, в окне Source view отображается исходный текст соответствующий данному вызову.

Возможен выбор режимов просмотра, через меню Actions:

· Показать/спрятать стек

· Показать/спрятать исходный код

· Показать строку кода (прокрутить окно исходного текста к выделенной строке)

5.13 Окно просмотра трасс (Trace control)

Окно Trace control состоит из двух частей (окон): окно трассы Trace view и окно Text control (Рис 9).

В окне Trace view представляются в текстовом виде события трассы, упорядоченные по времени. События, определенные отладчиком как ошибочные, имеют соответствующие пометки в поле признака ошибки, а также снабжаются текстовыми сообщениями об ошибках.

Каждому событию соответствует срока формата

<номер события> <вызов/возврат> <имя функции> <время события> <имя файла> <ссылка на исходные коды> <признак ошибки> <название ошибки> <текст ошибки>

Где <вызов/возврата>- признак вызова или возврата из функции

<ссылка на исходные коды> - ссылка на текст программы, где происходит обращение к функции или возврат из нее

<признак ошибки> - может отсутствовать, либо указывать на наличие ошибки или предупреждения

Каждому событию соответствует ссылка на исходные коды или неопределенная ссылка. При смене строки в окне Trace view обновляется содержимое окна Text control, в нем выводится стек и исходные тексты, соответствующие ссылке в текущем событии из окна Trace view.

Рис 9. Окно Trace control.

Управление:

В окне Trace control через меню Actions возможны следующие действия:

· Полный/сокращенный просмотр стека. Установка (снятие) данного режима позволяет показывать (прятать) окно Stack view в окне Text control. При отключении стека показывается последнее событие в стеке вызовов, а точнее исходный текст, соответствующий этому событию.

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

· Показать/спрятать окно Trace view. Позволяет пользователю подробнее рассмотреть интересующие его исходные коды.

· Найти первую ошибку. Находит в списке событий первое событие с признаком ошибки и делает его текущим.

· Найти первую ошибку или предупреждение. Находит в списке событий первое событие с признаком ошибки или предупреждения и делает его текущим.

· Найти следующую ошибку. Находит следующее событие с признаком ошибки и делает его текущим.

· Найти следующую ошибку или предупреждение. Находит следующее событие с признаком ошибки или предупреждения и делает его текущим.

Некоторым событиям может соответствовать ссылка на другое событие (например, последовательность событий, приводящая к ошибке типа deadlock). При двойном щелчке мышью на этом событии, вызывается окно Trace control, в котором отображаются события на процессоре, на котором произошло следующее событие. Причем, текущим становится событие, следующее в последовательности.

Заключение

В ходе работы были изучены модели параллельного программирования, методики и средства отладки параллельных программ, методики создания пользовательского интерфейса. Изучена графическая библиотека Qt [13], которая была выбрана как база для реализации из-за того, что она обеспечивает работу приложения в двух операционных средах - UNIX и Windows. Изучено программное средство Qt Designer. Проанализированы вопросы визуализации отладочной информации, способов точной локализации и представления ошибок.

Была разработана, спроектирована и реализована диалоговая оболочка MPI-отладчика. Язык реализации C++ (объем программы 12700 сток), платформа Linux, графическая библиотека Qt 3.2. Определен набор функций, необходимый для быстрой и точной локализации ошибок. Предложены новые способы визуализации трассировки, например Event line (сравните с Time line, используемой в большинстве существующих средств отладки). Реализован пользовательский интерфейс, который был опробирован при отработке MPI-отладчика на тестах и реальных приложениях.

В дальнейшем возможно улучшение пользовательского интерфейса, добавление новых меню и панелей инструментов. Планируется добавление в MPI-отладчик и его диалоговую оболочку средств анализа эффективности выполнения программы. Также планируется перенос MPI-отладчика на платформу Windows, что возможно осуществить, благодаря использованию кросс-платформенной библиотеки Qt.

Литература

1. MPI: A Message-Passing Interface Standard. http://www.mpi-forum.org/docs /docs.html

2. High Performance Fortran language specification // High Performance Fortran Forum. Scientific Programming. - 1993. - Vol. 2. - Р.1-170.

3. OpenMP Consortium. http://www.openmp.org

4. Документация к системе DVM. http://www.keldysh.ru/pages/dvm

5. NASA http://science.nas.nasa.gov/Software/AIMS/manual

6. Описание программных средств отладки Vampir и VampirTrace http://www.pallas.com/e/products/vampir

7. Гибсон Ф. "Экологический подход к психологии восприятия"

8. Донской М. Пользовательский интерфейс. PC Magazine - Russian Edition © СК Пресс.

9. Parallel Relative Debugging for Distributed Memory Applications. Gregory R. Watson and David Abramson. School of Computer Science and Software Engineering Monash University.

10. Qt library documentation http://www.trolltech.com

11. High Performance Cluster Computing: Architectures and Systems, Vol. 1. Edited by Rajkumar Buyya. School of Computer Science and Software Engineering Monash University.

12. Solaris 7 Software Developer Collection. Multithreaded Programming Guide. Tools for Enhancing MT Programs. http://docs.sun.com/db/doc/805-5080/6 j4q7emhk?q=Locklint&a=view

13. Isolating Failure-Inducing Thread Schedules. International Symposium on Software Testing and Analysis (ISSTA2002), Via di Ripetta, Rome Italy, July 22-24, 2002. http://www.research.ibm.com/dejavu/choi-zeller.pdf

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.