Visible to Intel only — GUID: GUID-988AD4F7-B1D6-44E4-98BC-B92966C4E268
Visible to Intel only — GUID: GUID-988AD4F7-B1D6-44E4-98BC-B92966C4E268
Handling of Communicator Names
By default, Intel® Trace Collector stores names for well-known communicators in the trace: COMM_WORLD, COMM_SELF_#0, COMM_SELF_#1 and so on. When new communicators are created, their names are composed of a prefix, a space and the name of the old communicator. For example, calling MPI_Comm_dup() on MPI_COMM_WORLD will lead to a communicator called DUP COMM_WORLD.
There are the following prefixes for MPI functions:
MPI Function | Prefix |
---|---|
MPI_Comm_create() |
CREATE |
MPI_Comm_dup() |
DUP |
MPI_Comm_split() |
SPLIT |
MPI_Cart_sub() |
CART_SUB |
MPI_Cart_create() |
CART_CREATE |
MPI_Graph_create() |
GRAPH_CREATE |
MPI_Intercomm_merge() |
MERGE |
MPI_Intercomm_merge() is special because the new communicator is derived from two communicators, not just one as in the other functions. The name of the new inter-communicator will be MERGE <old name 1>/<old name 2> if the two existing names are different, otherwise it will be just MERGE <old name>.
In addition to these automatically generated names, Intel Trace Collector also intercepts MPI_Comm_set_name() and then uses the name provided by the application. Only the last name set with this function is stored in the trace for each communicator. Derived communicators always use the name that is currently set in the old communicator when the new communicator is created.
Intel Trace Collector does not attempt to synchronize the names set for the same communicator in different processes, therefore the application has to set the same name in all processes to ensure that this name is really used by Intel Trace Collector.