next up previous contents
Next: Примеры Up: Управление коммуникаторами Previous: Конструкторы коммуникаторов   Contents

Деструкторы коммуникаторов

Синтаксис функции MPI_COMM_FREE представлен ниже.

MPI_COMM_FREE(comm)

INOUT comm удаляемый коммуникатор (дескриптор)

int MPI_Comm_free(MPI_Comm *comm)

MPI_COMM_FREE(COMM, IERROR) INTEGER COMM, IERROR

void MPI::Comm:Free()

Эта коллективная операция маркирует коммуникационный объект для удаления. Дескриптор устанавливается в MPI_COMM_NULL. Любые ждущие операции, которые используют этот коммуникатор, будут завершаться нормально; объект фактически удаляется только в том случае, если не имеется никаких других активных ссылок на него. Это обращение используется в интра- и интер-коммуникаторах. Удаляемые функции обратного вызова для всех кэшируемых атрибутов (см. раздел 5.7) вызываются в произвольном порядке.

Совет разработчикам: Можно использовать механизм подсчета ссылок: число ссылок увеличивается c каждым вызовом MPI_COMM_DUP и уменьшается c каждым вызовом MPI_COMM_FREE. Объект окончательно удаляется, когда число ссылок достигает нуля.

Функция MPI_COMM_FREE является коллективной, но ожидается, что она как правило будет реализовываться как локальная, хотя отладочная версия библиотеки MPI может использовать синхронизацию.[]



Alex Otwagin 2002-12-10