I've recently ported some code to a 64-bit CentOS 6 server that supports AVX instructions and I think I have encountered a bug with the MKL DFT routines when threading is enabled. When I try to take a 80640 point complex 1D forward DFT, I get a segfault if I set mkl_set_num_threads to any number greater than 1, yet the code works fine if I set mkl_set_num_threads(1). Not sure if this has been documented or encountered by others, but for me it seems to be limited to my 64-bit AVX platform as when I compile on a 64-bit SSE4.2 platform, the code runs fine with no segfault. I've attached the test code that I've been running to debug. For reference, I am compiling with:
icpc -O3 -xHost test.cpp -openmp -liomp5 -lpthread -lm -lmkl_core -lmkl_intel_lp64 -lmkl_intel_thread
Here are my system stats:
Compiler: intel compserXE 2013.0.79 (MKL v11.0)
OS: 64-bit Linux CentOS 6.4
CPU: Xeon E5email@example.comGHz
Also, when I run the core dump through gdb, I get the following back-trace:
Is this a bug or am I just doing something wrong with my DFT?