Modify the use of LAPACK GEES/GEEV in the Belos and Anasazi solvers for Intel MKL 18.0.2
Created by: hkthorn
This commit modifies the use of LAPACK GEES/GEEV in solvers that employ this method such that they determine the optimal lwork size before allocating the work vector. This should not be necessary, but the Intel MKL 18.0.[0-3] library has a known bug that can cause this method to seg fault due to bad memory access, when the optimal size is not used. This was fixed in MKL Update 4, as documented here:
https://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-2018-bug-fixes-list
Since there is a concern that the MKL 18.0.2 library that is on the ATDM platforms will be in use for the near-term, the interactions with the LAPACK calls to GEES/GEEV in Anasazi and Belos will be modified.
This commit addresses the issues in bugs #3497 (closed) and #3499, except for the Anasazi_MultiVecTraitsTest2_MPI_4 failure.
@trilinos/belos @trilinos/anasazi
Description
This commit modifies the use of LAPACK GEES/GEEV in solvers that employ this method such that they determine the optimal lwork size before allocating the work vector. This should not be necessary, but the Intel MKL 18.0.[0-3] library has a known bug that can cause this method to seg fault due to bad memory access, when the optimal size is not used.
Motivation and Context
Should fix test failures on Mutrino
How Has This Been Tested?
On Mutrino and Chama using offending Intel MKL library.
Checklist
-
My commit messages mention the appropriate GitHub issue numbers. -
My code follows the code style of the affected package(s). -
My change requires a change to the documentation. -
I have updated the documentation accordingly. -
I have read the code contribution guidelines for this project. -
I have added tests to cover my changes. -
All new and existing tests passed. -
No new compiler warnings were introduced. -
These changes break backwards compatibility.