关于mkl函数MKL_Set_Threading_Layer的问题

在调用mkl库时,发现了这样一个bug:
如果MKL_Set_Threading_Layer函数放在fftw_malloc函数之后,该函数调用失败,除非是将该函数放在fftw_malloc函数之前。

例如:
d=(fftw_complex*)fftw_malloc(1024*sizeof(fftw_complex));
MKL_Set_Threading_Layer(MKL_THREADING_SEQUENTIAL);

这样code时,mkl库计算将无法启动单线程,仍然按照多线程进行矩阵运算。
但是将上述两个函数位置前后颠倒后,就可以执行了:

MKL_Set_Threading_Layer(MKL_THREADING_SEQUENTIAL);
d=(fftw_complex*)fftw_malloc(1024*sizeof(fftw_complex));

这是怎么一回事呢