Error when using MKLDirectSolver in SCS

I am using JuMP and calling SCS as a solver. I want to use SCS.MKLDirectSolver, as discussed in an earlier thread. As discussed on the SCS.jl README page, this requires using the package SCS_MKL_jll. But, I’m getting an error message, even just loading the packages:

Running the following two lines

using SCS_MKL_jll
using SCS

I get the following error message

ERROR: LoadError: UndefVarError: `libscsmkl` not defined
Stacktrace:
 [1] getproperty(x::Module, f::Symbol)
   @ Base ./Base.jl:31
 [2] top-level scope
   @ ~/.julia/packages/SCS/mqg7w/ext/SCSSCS_MKL_jllExt.jl:11
 [3] include
   @ ./Base.jl:495 [inlined]
 [4] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
   @ Base ./loading.jl:2222
 [5] top-level scope
   @ stdin:3
in expression starting at /Users/chris/.julia/packages/SCS/mqg7w/ext/SCSSCS_MKL_jllExt.jl:6
in expression starting at stdin:3
  βœ— SCS β†’ SCSSCS_MKL_jllExt
  0 dependencies successfully precompiled in 4 seconds. 49 already precompiled.
[ Info: Precompiling SCSSCS_MKL_jllExt [35b951bd-bc4e-5cd9-90c5-f6de5c23ce67]
ERROR: LoadError: UndefVarError: `libscsmkl` not defined
Stacktrace:
 [1] getproperty(x::Module, f::Symbol)
   @ Base ./Base.jl:31
 [2] top-level scope
   @ ~/.julia/packages/SCS/mqg7w/ext/SCSSCS_MKL_jllExt.jl:11
 [3] include
   @ ./Base.jl:495 [inlined]
 [4] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
   @ Base ./loading.jl:2222
 [5] top-level scope
   @ stdin:3
in expression starting at /Users/chris/.julia/packages/SCS/mqg7w/ext/SCSSCS_MKL_jllExt.jl:6
in expression starting at stdin:3
β”Œ Error: Error during loading of extension SCSSCS_MKL_jllExt of SCS, use `Base.retry_load_extensions()` to retry.
β”‚   exception =
β”‚    1-element ExceptionStack:
β”‚    Failed to precompile SCSSCS_MKL_jllExt [35b951bd-bc4e-5cd9-90c5-f6de5c23ce67] to "/Users/chris/.julia/compiled/v1.10/SCSSCS_MKL_jllExt/jl_Yy9goV".
β”‚    Stacktrace:
β”‚      [1] error(s::String)
β”‚        @ Base ./error.jl:35
β”‚      [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
β”‚        @ Base ./loading.jl:2468
β”‚      [3] compilecache
β”‚        @ ./loading.jl:2340 [inlined]
β”‚      [4] (::Base.var"#968#969"{Base.PkgId})()
β”‚        @ Base ./loading.jl:1974
β”‚      [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
β”‚        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.2+0.x64.apple.darwin14/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
β”‚      [6] #mkpidlock#6
β”‚        @ ~/.julia/juliaup/julia-1.10.2+0.x64.apple.darwin14/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
β”‚      [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
β”‚        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.2+0.x64.apple.darwin14/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
β”‚      [8] #invokelatest#2
β”‚        @ ./essentials.jl:894 [inlined]
β”‚      [9] invokelatest
β”‚        @ ./essentials.jl:889 [inlined]
β”‚     [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
β”‚        @ Base ./loading.jl:2983
β”‚     [11] maybe_cachefile_lock
β”‚        @ ./loading.jl:2980 [inlined]
β”‚     [12] _require(pkg::Base.PkgId, env::Nothing)
β”‚        @ Base ./loading.jl:1970
β”‚     [13] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
β”‚        @ Base ./loading.jl:1812
β”‚     [14] #invoke_in_world#3
β”‚        @ ./essentials.jl:926 [inlined]
β”‚     [15] invoke_in_world
β”‚        @ ./essentials.jl:923 [inlined]
β”‚     [16] _require_prelocked
β”‚        @ ./loading.jl:1803 [inlined]
β”‚     [17] _require_prelocked
β”‚        @ ./loading.jl:1802 [inlined]
β”‚     [18] run_extension_callbacks(extid::Base.ExtensionId)
β”‚        @ Base ./loading.jl:1295
β”‚     [19] run_extension_callbacks(pkgid::Base.PkgId)
β”‚        @ Base ./loading.jl:1330
β”‚     [20] run_package_callbacks(modkey::Base.PkgId)
β”‚        @ Base ./loading.jl:1164
β”‚     [21] __require_prelocked(uuidkey::Base.PkgId, env::String)
β”‚        @ Base ./loading.jl:1819
β”‚     [22] #invoke_in_world#3
β”‚        @ ./essentials.jl:926 [inlined]
β”‚     [23] invoke_in_world
β”‚        @ ./essentials.jl:923 [inlined]
β”‚     [24] _require_prelocked(uuidkey::Base.PkgId, env::String)
β”‚        @ Base ./loading.jl:1803
β”‚     [25] macro expansion
β”‚        @ ./loading.jl:1790 [inlined]
β”‚     [26] macro expansion
β”‚        @ ./lock.jl:267 [inlined]
β”‚     [27] __require(into::Module, mod::Symbol)
β”‚        @ Base ./loading.jl:1753
β”‚     [28] #invoke_in_world#3
β”‚        @ ./essentials.jl:926 [inlined]
β”‚     [29] invoke_in_world
β”‚        @ ./essentials.jl:923 [inlined]
β”‚     [30] require(into::Module, mod::Symbol)
β”‚        @ Base ./loading.jl:1746
β”‚     [31] eval
β”‚        @ ./boot.jl:385 [inlined]
β”‚     [32] eval_user_input(ast::Any, backend::REPL.REPLBackend, mod::Module)
β”‚        @ REPL ~/.julia/juliaup/julia-1.10.2+0.x64.apple.darwin14/share/julia/stdlib/v1.10/REPL/src/REPL.jl:150
β”‚     [33] repl_backend_loop(backend::REPL.REPLBackend, get_module::Function)
β”‚        @ REPL ~/.julia/juliaup/julia-1.10.2+0.x64.apple.darwin14/share/julia/stdlib/v1.10/REPL/src/REPL.jl:246
β”‚     [34] start_repl_backend(backend::REPL.REPLBackend, consumer::Any; get_module::Function)
β”‚        @ REPL ~/.julia/juliaup/julia-1.10.2+0.x64.apple.darwin14/share/julia/stdlib/v1.10/REPL/src/REPL.jl:231
β”‚     [35] run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool, backend::Any)
β”‚        @ REPL ~/.julia/juliaup/julia-1.10.2+0.x64.apple.darwin14/share/julia/stdlib/v1.10/REPL/src/REPL.jl:389
β”‚     [36] run_repl(repl::REPL.AbstractREPL, consumer::Any)
β”‚        @ REPL ~/.julia/juliaup/julia-1.10.2+0.x64.apple.darwin14/share/julia/stdlib/v1.10/REPL/src/REPL.jl:375
β”‚     [37] (::Base.var"#1013#1015"{Bool, Bool, Bool})(REPL::Module)
β”‚        @ Base ./client.jl:432
β”‚     [38] #invokelatest#2
β”‚        @ ./essentials.jl:892 [inlined]
β”‚     [39] invokelatest
β”‚        @ ./essentials.jl:889 [inlined]
β”‚     [40] run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool)
β”‚        @ Base ./client.jl:416
β”‚     [41] exec_options(opts::Base.JLOptions)
β”‚        @ Base ./client.jl:333
β”‚     [42] _start()
β”‚        @ Base ./client.jl:552
β”” @ Base loading.jl:1301

Is this an error on my end? I’m not quite able to parse the error message. All help is appreciated!

Per the documentation, this is available on x86 linux only.

1 Like

D’oh! That’s totally it.

When I originally saw this in the Documentation, I was thinking about whether my processor was x86_64. But I realize that it needs a x86_64 Linux distribution. I’ll try it on a Linux machine. Thanks!

1 Like