next up previous contents
Next: Примеры Up: Логика проектирования Previous: Логика проектирования   Contents

Управление профилированием

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

Эти требования удовлетворяются при использовании функции MPI_PCONTROL, синтаксис которой представлен ниже.

MPI_PCONTROL(level, ...)

IN level уровень профилирования

int MPI_Pcontrol(const int level, ...)

MPI_PCONTROL(LEVEL)
INTEGER LEVEL, ...

void Pcontrol(const int level, ...)

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

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

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

Также требуется, чтобы после выполнения MPI_INIT по умолчанию было установлено профилирование (как если бы была выполнена операция MPI_PCONTROL с аргументом 1). Это позволяет пользователю связаться с библиотекой профилирования и получить результат профилирования без модификации их исходного текста.



Alex Otwagin 2002-12-10