Eigen + MKL uses single core for complex matrix (ZHEEV)

143 Views Asked by At

there is a weird behavior from mkl on our cluster. I am calling Eigen::SelfAdjointEigenSolverEigen::MatrixXcd for a complex matrix (ZHEEV).

When I calculate the eigenvectors for large matrices (dim >~ 100k) it only uses a single core.

Strangely, it runs perfectly fine (multiple cores) for smaller complex matrices, real matrices and large complex matrices (dim >~ 100k) without eigenvectors.

Did anyone face the same issue or has any idea what is going on in the background?

I tried various mkl versions.

1

There are 1 best solutions below

0
bgeneto On

This issue is well known with OpenBLAS and Netlib's reference Lapack due to poor zlasr performance ref. If you can, switch to zheevr or use Intel's MKL (it seems to take another route to avoid zlasr). MKL definitively don't exhibits this issue. (you didn't mention which versions of 'MKL' you've tried.)