intel mkl库里fft函数是否上锁?
我遇到这样的一个问题,我的原程序是func(input1,output1),func(input2,output2).....func(input10,output10)。程序调用的函数是一样的,输入和输出的数据量也是一样的。改写成#pragma omp parallel for for(int i=0;i<10;i++){func(plan[i].input,plan[i].output)}。plan是定义的结构体。计算出的结果也正确。发现的问题:
1、原程序每次的时间只有30ms左右。2、改用openmp后,函数运行的时间大概变成150ms左右,整体运行时间是200ms左右。我反复测时,情况都是这样。所以我想问下,是不是因为intel mkl 库里fft考虑线程安全加了锁,所以并行执行的时候,要等上一个线程把fft调用完,下一个线程才能调用。另外针对这样的问题,是不是我哪里时设置不对,请高人指教,感谢!