Pardiso.jl
Pardiso.jl copied to clipboard
Failure on Intel Mac
I've encountered this error while running Pardiso on an Intel Mac. (I observed this largely on Julia v1.7 but I could not get a chance to double check whether this happens on 1.6). It causes the test failure here
The error is like:
Raster Pairwise: Error During Test at /Users/runner/work/Circuitscape.jl/Circuitscape.jl/src/utils.jl:308
Got exception outside of a @test
Not enough memory.
Stacktrace:
[1] check_error(ps::Pardiso.MKLPardisoSolver, err::Int32)
@ Pardiso ~/.julia/packages/Pardiso/3uj3F/src/mkl_pardiso.jl:79
[2] ccall_pardiso(ps::Pardiso.MKLPardisoSolver, N::Int64, nzval::Vector{Float64}, colptr::Vector{Int64}, rowval::Vector{Int64}, NRHS::Int64, B::Vector{Float64}, X::Vector{Float64})
@ Pardiso ~/.julia/packages/Pardiso/3uj3F/src/mkl_pardiso.jl:73
[3] pardiso(ps::Pardiso.MKLPardisoSolver, X::Vector{Float64}, A::SparseArrays.SparseMatrixCSC{Float64, Int64}, B::Vector{Float64})
@ Pardiso ~/.julia/packages/Pardiso/3uj3F/src/Pardiso.jl:346
[4] #_#36
@ ~/work/Circuitscape.jl/Circuitscape.jl/src/utils.jl:459 [inlined]
(Full error)[https://github.com/Circuitscape/Circuitscape.jl/runs/4644991065?check_suite_focus=true#step:6:180]
To reproduce:
using JLD2, FileIO
ps = MKLPardisoSolver()
A = load("mat2.jld2")["G"]
B = rand(size(A,1))
X = zeros(size(A,1))
solve!(ps, X, A, B)
I've attached the matrix JLD2 here.
This example works on Julia v1.6.5.
This example works on Julia v1.6.5.
That's surprising to me. I don't see how a different Julia version would influence this.
Not failing on my intel mac with 1.7.3 - but I am getting incorrect answers. But circuitscape tests on trivial sized matrices seem to be running out of memory and complaining about ordering (not the case in 1.6).
https://github.com/Circuitscape/Circuitscape.jl/runs/5368204337?check_suite_focus=true
I am hoping that MKL 2022 may be somehow better. Opened a PR for that.
Out of memory errors and complaint about matrix ordering are also symptomatic of the problems in #73 and #88. It could be that the error is caused by a 32bit vs 64bit error when calling MKL. The issue appear sporadically since it depends on the load order of other packages, which might explain why it is not easily reproducible.
Intel mac support is deprecated in MKL.