Buffer Given to MPI Cannot Be Read or Written


During the check for LOCAL:MEMORY:ILLEGAL_MODIFICATION of a send buffer Intel® Trace Collector will read each byte in the buffer once. This works for contiguous as well as non-contiguous data types. If any byte cannot be read because the memory is inaccessible, a LOCAL:MEMORY:INACCESSIBLE is reported. This is an error because it is only possible to proceed by skipping the entire operation.

Disabling the LOCAL:MEMORY:ILLEGAL_MODIFICATION check also disables the accessibility check and send operations are then treated like receive operations: for receive operations no similar check is performed because the MPI standard does not say explicitly that the whole receive buffer has to be accessible - only the part into which an incoming message actually gets copied must be writable. Violations of that rule are caught and reported as fatal LOCAL:EXIT:SIGNAL errors.

For more complete information about compiler optimizations, see our Optimization Notice.