I have been using Inspector XE to look for memory leaks and it is reporting a memory leak where I would not expect one from an MPI operation. The unusual behavior is that if the size of the transfer is below a certain array size no memory leaks are reported, but if the array size is larger than this threshold then a memory leak is reported.
I have attached a simple Fortran 90 program that demonstrates the behavior along with the makefile necessary to compile it.
The command to execute the program that I have been using is:
mpirun -np 2 inspxe-cl -r InspectorResults -collect mi3 <absolute path to executable>/test
If I set arraysize=10000 no memory leak is detected, but if I set the variable arraysize=20000 a memory leak is reported. Please see the screen shots included. both the send buffer and the receive buffer are reported as having memory leaks.
The versions of the Fortran compiler and Inspector XE I am using are:
[rick@RainierLinux testmpi]$ ifort -V
Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 12.0.0.084 Build 20101006
Copyright (C) 1985-2010 Intel Corporation. All rights reserved.
[rick@RainierLinux testmpi]$ inspxe-cl -V
Intel(R) Inspector XE 2011 Update 7 (build 189290) Command Line tool
Copyright (C) 2009-2011 Intel Corporation. All rights reserved.
Any thoughts on why a memory leak is being reported with one array size versus the other size?