Octave gives wrong results when diagonalizing large matrices with MKL

Bug #1890984 reported by Archisman Panigrahi on 2020-08-10
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Octave
Unknown
Unknown
octave (Ubuntu)
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://archive.ubuntu.com/ubuntu focal/universe amd64 Packages
        100 /var/lib/dpkg/status

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://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages
        100 /var/lib/dpkg/status

Revision history for this message
Archisman Panigrahi (apandada1) wrote :
Revision history for this message
Archisman Panigrahi (apandada1) wrote :

I followed https://askubuntu.com/a/1265802/124466 to install Intel MKL.

summary: - Octave gives wrong results with MKL
+ Octave gives wrong results when diagonalizing large matrices with MKL
description: updated
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.