Синтаксис функции 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 может использовать синхронизацию.[]