After building which takes some time restart Julia.
If you get the Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll. error, that means the required dlls are not on the path. You need to add the location that it was installed to your path. On windows usually that is C:\Users\%USERNAME%\.julia\packages\MKL\36eeJ\deps\usr\bin . You can add it to your windows path by running the following command in Windows cmd:
If there are issues, I would love to know. We are trying to make sure it is a functional setup using it. At this point, the key is that you need to package compile it into the image, which works well.
The other issues (eg arpack and suitsparse incompatibility) are known, but the issue is the mkl itself, rather than that specific package. Ie building with mkl has the same problems, as far as I understand
Except from lack of documentation regarding how to run MKL.jl, my main problem with that was the issue regarding REPL delay because of lack of precompilation information compared to official releases after more than 6 months now: Improve REPL latency · Issue #1 · JuliaLinearAlgebra/MKL.jl · GitHub
I added a comment to the issue but from no one responding I assumed it is discontinued.
He is out of town now, but maybe @arnavsood can point us in the right direction on the installation /package compilation steps. The loss of arpack and suitesparse functionality will take more time, but there is progress.
I am not sure. I don’t know how to use this repository or fix its issues. If you guys know please submit a pull request to update the repository.
I believe this repository should also provide prebuilt releases for the convenience of users (especially because JuliaPro doesn’t provide MKL anymore).
The delay in the REPL isn’t that much - it just means that it takes a second or two longer to start when first running Julia.
Just to explain what I think MKL.jl does:
add MKL downloads the Intel binaries, modifies one of the files in your Julia install to tell it to use the MKL, and then rebuilds your sysimg. After doing this you are always using the MKL (even without the using statement). Uninstalling the package won’t remove the MKL (except maybe the Intel binaries - bad things might happen since Julia still looks for them).
using MKL just seems to set some threading options. I’m not sure this is entirely necessary (I never used to bother).
The only thing that needs to happen to get a fast REPL start-up is for an extra file to be included during the sysimg rebuild. (The problem is that file isn’t included in the standard Julia install.)
As far as I understand it, if you use mkl.jl and package compile it into your system image, it works great for almost all of base and is a solid experience.
The current issue is that other packages which assume that openblas is installed need to be patched to support using mkl for any dense calculations.
In particular, https://docs.julialang.org/en/v1/stdlib/SparseArrays/index.html uses suitesparse as matrix factorization lfor linear solves (I think) and arpack.jl currently requires openblas (necessary for eigs).People are trying to work through the binary builder issues to make usage with mkl seamless,but I would guess later in July
Yes, this what should happen; the new sysimg will only take effect once Julia is restarted.
That means the required dlls are not on the Windows path. You need to add the location that it was installed to your path - for me that is C:\Users\dawbarton\.julia\packages\MKL\36eeJ\deps\usr\bin. After that it should all work (at least it does for me!).