MKL bundled Julia by Julia Computing

Correct. Also, if the BLAS library were pluggable, instead of built in, then one could also argue that it’s not part of the GPL derived work, so you could ship with an MKL library and another BLAS (like OpenBLAS) and just use MKL by default. This is what Microsoft’s R distribution does in order to legally use MKL. It’s a bit legally iffy imo since MKL is the default, but I’m sure they have excellent lawyers who have looked at it.

For annoying library binary incompatibility reasons, Julia cannot currently just swap out OpenBLAS with MKL. I suspect the best way to fix this is to make compatible shims around both MKL and OpenBLAS so that they are actually binary compatible.

Another route to fixing this situation would be removing the GPL libraries from the base Julia distribution and making them add-on packages.

All of this is possible, it’s just quite a lot of work which doesn’t seem to be important enough to anyone who is willing or able to pay for or do the work themselves.

18 Likes