Skip to content

Address issues with bad GEES/GEEV in MKL 18.0.2 library

James Willenbring requested to merge hkthorn:develop into develop

Created by: hkthorn

@trilinos/belos @trilinos/anasazi

Description

This commit modifies the use of GEES/GEEV in the Belos and Anasazi 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.

The change to the single reduction CG is because the most recent change does not work for complex-valued arithmetic, which it must have not been checked for before the merge was allowed. It results in a compiler error without this change.

Motivation and Context

Address test failures due to bad MKL on ATDM platforms.

How Has This Been Tested?

On Mutrino, using the environment described in bugs #3497 (closed) and #3499.

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.

Merge request reports