我想把我的程序(SpMVM的求解器,矩阵以DIA格式存储,用Fortran写的)与以下程序进行比较 MKL.
我找到了MKL程序 ddiagemv
而且它的顺序工作很完美(我比MKL快多了!)。但后来,我开发了另一个版本的程序,这次是用OpenMP。所以,我四处寻找一种方法来使 ddiagemv
多线程,但我没有发现任何东西。
尽管我用了 export MKL_NUM_THREADS=4
, export MKL_DOMAIN_NUM_THREADS="MKL_BLAS=4
, export OMP_NUM_THREADS=1
, export MKL_DYNAMIC="FALSE"
和 export OMP_DYNAMIC="FALSE"
我得到的时间结果和我按顺序做的完全一样。
是否有些MKL例程可以多线程,而有些不能?如果是 ddiagemv
可以多线程,如何才能做到这一点?