I have several sparse iterative solvers that use the deprecated MKL sparse Blas procedures. After converting the solvers to use the latest sparse BLAS executor functions they all run slower than before. Has anyone else noticed this difference?
Typical times (seconds):
Equations threads Old_MKL Executor_MKL
2e5 1 13 17
2e5 6 6 10
3e6 1 170 250
The solvers used mkl_dcsrtrsv and mkl_dcsrsymv, they were updated to use mkl_sparse_d_trsv and mkl_sparse_d_mv. Double precision and double complex show similar time comparisons.
The comparisons were performed on a windows 10 computer with a Xeon E5 1650 processor, software built using Parallel XE 2019 with intel fortran and C++ compilers.
We haven't heard of this issue. Could you share your workload (matrix) with us so that we can check? Also, which threading did you use (I assume, OpenMP), was it Intel OpenMP or GNU?
Also, did you call mkl_sparse_optimize with appropriate hints before the actual calls to the computational routines?
In other words, if you can give us a simple example (just showing the way you call old SpBLAS and IE SpBLAS), it would speed up our investigation.