Система сбора данных

Система сбора отладочной информации состоит из мониторов (системных процессов, по одному на каждый виртуальный процессор). Перед вызовом функции MPI_Init каждый процесс параллельной программы создает монитор (MON) используя системный вызов fork(2). MON связан с породившим его процессом неименованым программным каналом. В соответствии со вставленными в код программы инструкциями, собирается информация и передается монитору. Никаких действий по ее сохранению и обработке внутри счетного процесса не происходит. Это задача MON'а. На MON возлагается сохранение информации во внутренем буфере, сбор информации о среде исполнения программы и выполнение частичного анализа собранной информации. По мере заполнения буфера, его содержимое переносится в файл отчета.

Каждая функция обертка передает информацию MON-у дважды: до и после вызова замененной функции. Это позволяет, например, отслеживать возникающие блокировки при приеме сообщений.