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:
On Windows itโs fairly easy to change to the MKL by hand (or at least it was last time I tried). Iโll see if I can find my old instructions when I get back to my windows machine on Monday.
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).
What issues? It seems ]add MKL and then using MKL works fine on Windows? I didnโt rebuild my sysimage for it but youโd do it just like how youโd do it for any other package.
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, Sparse Arrays ยท The Julia Language 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!).