Intel® Trace Analyzer and Collector User and Reference Guide

ID 767272
Date 3/31/2023
Document Table of Contents

Freeing Communicators


A mistake related to MPI_Comm_free() is freeing them in different orders on the involved processes. The MPI standard specifies that MPI_Comm_free() must be entered by the processes in the communicator collectively. Some MPIs including Intel® MPI Library deadlock if this rule is broken, whereas others implement MPI_Comm_free() as a local call with no communication.

To ensure that this error is detected all the time, Intel® Trace Collector treats MPI_Comm_free() just like the other collective operations. There is no special error message for GLOBAL:COLLECTIVE:COMM_FREE_MISMATCH, it will be reported as a mismatch between collective calls (GLOBAL:COLLECTIVE:OPERATION_MISMATCH) or a deadlock, so GLOBAL:COLLECTIVE:COMM_FREE_MISMATCH just refers to the check which enables or disables this test, not a specific error instance.