GELS produces the wrong result with sequential version

Problem Description:


We have a number of customers report regarding incorrect behavior of GELS in Intel® MKL 11.0 if sequential library is linked.

Customer’s quote:”When I compile and run this program with Intel® Fortran Composer XE 2013(**), the output is totally wrong. Compiling and running with Intel FORTRAN Composer XE 2011 (*) gives the correct results.”


The issue was introduced into 11.0 code development. There are no problems with previous versions 10.3 and earlier.


The issue number is DPD2002622493


Working around of the problem:


Workarounds for MKL version 11.0 (see note):
1. Use the minimal documented LWORK: max( 1, MIN(M,N)+max( MIN(M,N), NRHS ) ).
2. Link to threaded version of MKL which doesn't have such issue. If sequential execution is required then set MKL_NUM_THREADS=1 or call mkl_set_num_threads(1).



Customer Impact:

-      The issue impacts all versions of MKL since version 11.0 (included 11.0 update 1).

-      The problem affects all supported OS including Windows, Linux and OS X*.

-      Intel® MKL for IA32 and Intel64 bits.



The problem has been already fixed in upcoming MKL 11.0.2.



(*)   Intel® MKL version 10.3 bundled with Intel® Composer XE 2011.

(**)  Intel® MKL version 11.0 bundled with Intel® Composer XE 2013.


GELS Uses QR or LQ factorization to solve a overdetermined or underdetermined linear system with full rank matrix.

For more complete information about compiler optimizations, see our Optimization Notice.