Octave gives wrong results when diagonalizing large matrices with MKL
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Octave |
Unknown
|
Unknown
|
|||
octave (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Octave gives wrong results when manipulating large matrices, when the package `intel-mkl` is installed, and BLAS, LAPACK are configured with `intel-mkl` (from default ubuntu repositories). With MKL, Octave seems to have a 2x speedup when diagonalize certain matrices, but the results are totally wrong (when the matrix is large, say 1000x1000).
Code:
```
for a = 1:500
for b = 1:500
c(a,b) = sin(a + b^2);
endfor
endfor
g = eig(c);
max(real(g))
```
The correct result is `ans = 16.915` (I checked this before installing intel-mkl, and also in Ubuntu 18.04 in the same computer, where intel-mkl was not installed)
With MKL in Ubuntu 20.04, I get random numbers of order 10^5 - 10^6, which change every time the code is run.
lsb_release -rd
Description: Ubuntu 20.04 LTS
Release: 20.04
(It is Xubuntu 20.04)
apt-cache policy octave
octave:
Installed: 5.2.0-1
Candidate: 5.2.0-1
Version table:
*** 5.2.0-1 500
500 http://
100 /var/lib/
apt-cache policy intel-mkl
intel-mkl:
Installed: 2020.0.166-1
Candidate: 2020.0.166-1
Version table:
*** 2020.0.166-1 500
500 http://
100 /var/lib/
I followed https:/ /askubuntu. com/a/1265802/ 124466 to install Intel MKL.