7. ОТЛАДКА ПРОГРАММ MPI С ПОМОЩЬЮ TOTALVIEW
В начало страницы
TotalView представляет мощный, рентабельный переносимый отладчик для параллельных и многопоточных программ, доступный из Etnus
(http://www.etnus.com/toolworksCHECK).TotalView «понимает» многократную реализацию MPI, включая mpich. Под «пониманием» мы имеем в виду, что если имеется TotalView, установленный в вашей системе, то легко запустить вашу mpich-программу под управлением TotalView, даже если вы работаете на многих машинах, управляете своими процессами и коллективно и индивидуально с помощью нужного GUI графический пользовательский интерфейс отладчика TotalView и даже проверяете внутренние структуры данных mpich, глядя на очереди сообщений 3. Общая операционная схема TotalView окажется знакомой для пользователей управляемых из командной строки отладчиков, таких как gdb или dbx.
В начало страницы
См. Руководство по установке для знакомства с правилами конфигурирования mpich так, что TotalView сможет демонстрировать очереди сообщений.
В начало страницы
Для запуска параллельной программы под управлением TotalView просто добавьте `-dbg=totalview' к вашим аргументам в mpirun:
mpirun –dbg=totalview –np 4 cpi
TotalView будет вызван и вы сможете запустить программу, напечатав `G'. Появится окно с вопросом, не хотите ли вы остановить процессы, когда они выполняют MPI Init. Вы можете счесть подходящим ответ «no» и подставить собственную точку остановки после MPI Init (см. раздел 7.4.) В таком случае процесс остановится, достигнув указанной строки вашей программы, а не где-то внутри MPI Init.
В начало страницы
TotalView можно подключить к выполняемой программе MPI, что в частности полезно, если вы подозреваете, что ваш код оказался в тупиковой ситуации. Для этого нужно запустить TotalView без аргументов, а затем нажать `N' в корневом окне. Это выдаст список процессов, к которым можно подключиться. Если вы войдете в это окно через начальный процесс mpich, то TotalView охватит также все другие mpich-процессы (даже нелокальные). См. Руководство по TotalView о деталях подключения.
В начало страницы
Тачки остановки можно определять, щелкая на номере на левом краю строки. Большая часть TotalView GUI сама собой понятна. Вы выбираете объект с
помощью левой кнопки мыши, вызываете меню действий средней кнопкой и входите в функции, переменные, структуры, процессы и пр. по правой кнопке. Нажим клавиши cntl-? в каждом окне TotalView выдает относящиеся к окну подсказки. В начальном окне TotalView это выдает общую помощь. Полная документация (Руководство пользователя TotalView) доступно в
http://www.etnus.com/tw/tvdemo37.htmCHECK.
С одного процесса на рассмотрение другого можно переключиться с помощью кнопок-стрелок в верхнем правом углу главного окна, или прямым выбором (левой кнопкой мыши) процесса в корневом окне перевести существующее окно на этот процесс, или переходя (по правой кнопке мыши) через процесс в корневом окне к открытию нового окна для избранного процесса. Все быстрые клавиши для команд перечислены в меню, которое выбирается по средней кнопке. Команды в основном обычные. Специальная для MPI – команда `m', которая выдает очередь сообщений, связанную с процессом.
Заметим также, что если вы используете функцию MPI-2, называемую
MPI Comm, для установки имени на коммуникатор, то TotalView выдает это имя всякий раз когда показывает информацию о коммуникаторе, облегчая понимание
того, какой коммуникатор кому принадлежит.
В начало страницы
TotalView – очень мощный, гибкий отладчик для параллельных и многопоточных программ. Он обладает многими возможностями кроме тех, которые здесь были описаны. Подробности см. в Руководстве пользователя TotalView, особенно в разделе об mpich.