next up previous contents
Next: Множественные уровни перехвата Up: Примеры Previous: Реализация библиотеки MPI   Contents

Сложности

Двойной подсчет

Поскольку часть функций библиотеки MPI может быть выражена через основные функции MPI (например, переносимая реализация коллективных операций написана с помощью парных обменов), имеется потенциальная возможность вызывать профилирующие функции из функции MPI, которая была вызвана из профилирующей функции. Это приведет к ``двойному подсчету'' времени выполнения внутренней подпрограммы. Так как этот эффект будет полезным при некоторых обстоятельствах (например, он может ответить на вопрос ``Сколько времени тратится на парные обмены, если они были вызваны из коллективных функций?''), то решено не вводить никаких ограничений для авторов библиотеки MPI, которые бы запретили этот эффект. Следовательно, авторы профилирующих библиотек должны осознавать эту проблему и защитить себя от нее. В однопоточной среде это может быть легко достигнуто с помощью статической переменной в коде профилирования, которая хранит информацию о том, находитесь ли вы внутри профилирующей подпрограммы или нет. Это становится более сложным в многопоточных средах.



Alex Otwagin 2002-12-10