I've recently noticed an issue when using a MKL DFT_DESCRIPTOR_HANDLE in a C++ class where the memory usage continually increases as I create and dereference objects of the class. I believe I may just be using the MKL DFT handle incorrectly but could use some advice on what I'm doing wrong. The basic problem is that I have a need for a DFT handle within a C++ class and I have a vector of objects of the class. I periodically resize the vector to 0, destructing all objects, then resize it to some new size, creating new objects. When I check the intel memory manager usage between resizes, I can see it slowly increasing which leads me to believe I'm not appropriately freeing the memory, despite calling DftiFreeDescriptor in the class destructor. For illustration purposes, I've created a contrived example using a simple dft wrapper class (attached).
I'm using ubuntu 13.10 32-bit on an intel core i5 M460 cpu. I've tried compiling with composer xe 2013.3.163 and composer xe 2013_sp1.1.106 (MKL v11.1) and gotten the same result. I am compiling with the following flags:
icpc -openmp -I/usr/include/i386-linux-gnu/ -I/usr/include/i386-linux-gnu/c++/4.8/ -xHost -I$MKLROOT/include -L$MKLROOT/lib/ia32 imkl_dft_test.cpp -o imkl_dft_test -lmkl_intel -lmkl_core -lmkl_intel_thread -lpthread -lm
Any advice would be greatly appreciated.