Язык отладки

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

Языка отладки состоит из инструкций, которые вставляются в исходный код программы. Каждая инструкция является комментарием языка программирования (в данном случае С) и имеет следующий вид:

/*GPRD <инструкция> */,
где <инструкция> - определение информации, которую необходимо собрать дополнительно.

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

/*GPRD COUNT */,
Аналогично можно вести подсчет количеству вызова функций.

Ожидаемая система межпроцессного взаимодействия также может быть описана с тем, чтобы отладчик произвел ее сравнение с тем, что получилось при исполнении программы. Система коммуникаций задает отношение на множестве процессов. Отношение процессов задается множеством пар вида (ранк источника, ранк приемника). Для описания отношений в языке отладки предусмотрено ряд инструкций.

/*GPRD SCOMMSET $i SEND ($i-1, $i+1) */

Пример выше показывает способ указания того, что iый процесс может отправлять сообщения следующему и предыдущему процессу в некой линейке процессов. Система коммуникаций динамична и может меняться в процессе исполнения программы. Также пользователь может переопределять и ожидаемую систему межпроцессного взаимодействия.

Препроцессор распознает инструкции языка отладки и заменяет их соответствующими выражениями языка программирования. Также заменяются функции MPI функциями-обертками. Каждая функция-обертка имеет дополнительный параметр - позиция функции в исходном коде программы.


Полное описание языка отладки с примерами можно скачать со страници downloads в разделе "Документация".