next up previous contents
Next: Определение, закончился ли MPI Up: Разное Previous: Фиксирование фиксированного типа данных   Contents

Разрешение функций пользователя в завершении процесса

Есть интервалы времени, во время которых было бы удобно иметь действия, происходящие, когда заканчивается процесс MPI. Например, подпрограмма может делать инициализации, которые являются полезными, пока закончится работа MPI (или та часть работы, которая заканчивается в случае динамически созданных процессов). Это может быть выполнено в MPI-2, прикреплением атрибута к MPI_COMM_SELF с функцией повторного вызова. Когда MPI_FINALIZE вызывается, она сначала выполнит эквивалент MPI_COMM_FREE на MPI_COMM_SELF. Это заставит удаляющую функцию повторного вызова быть выполненной на всех ключах, связанных с MPI_COMM_SELF, в произвольном порядке. Если никакой ключ не был приложен к MPI_COMM_SELF, то никакой повторный вызов не будет вызван. ``Освобождение'' MPI_COMM_SELF происходит прежде, чем воздействуют любые другие части MPI. Таким образом, например, вызов MPI_FINALIZED возвратит false в любой из этих функций повторного вызова. Однажды сделанный с MPI_COMM_SELF, порядок и остаток действий, принятых MPI_FINALIZE, не определен.

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



Alex Otwagin 2002-12-10