# MKL bundled Julia by Julia Computing

**URL:** <https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585>\
**Category:** General Usage\
**Tags:** question\
**Created:** [December 12, 2018, 4:27am UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585 "2018-12-12T04:27:28Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [December 12, 2018, 4:27am UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/1 "2018-12-12T04:27:28Z")

</div>

I was wondering if it is possible for Julia Computing to offer a MKL bundled Julia. I feel like JuliaPro free version is a little bit too large for me and it takes long time to install, and I can set up Atom and Juno by myself. On the other hand, I don’t want to link Julia to MKL manually.

I prefer something like Microsoft R Open, which offers MKL bundled R but does not include an IDE.

[https://mran.microsoft.com/download](https://mran.microsoft.com/download)

---

<div class="post-metadata">

**Author:** ![Mason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mason/32/2423_2.png) [@Mason](https://discourse.julialang.org/u/Mason)\
**Post date:** [December 12, 2018, 5:06am UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/2 "2018-12-12T05:06:44Z")

</div>

See [MKL: what are the issues these days?](https://discourse.julialang.org/t/mkl-what-are-the-issues-these-days/18191)

---

<div class="post-metadata">

**Author:** ![Tero\_Frondelius](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tero_frondelius/32/7629_2.png) [@Tero\_Frondelius](https://discourse.julialang.org/u/Tero_Frondelius)\
**Post date:** [December 12, 2018, 5:36am UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/3 "2018-12-12T05:36:45Z")

</div>

I am pretty sure you will get this if you are willing to pay the work. Open source is not free software, people need to get living somehow.

---

<div class="post-metadata">

**Author:** ![Juan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juan/32/7657_2.png) [@Juan](https://discourse.julialang.org/u/Juan)\
**Post date:** [December 12, 2018, 11:04am UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/4 "2018-12-12T11:04:17Z")

</div>

Or at least if somebody shares a working script to perform the compilation in Windows.

Anyway, I guess MKL wouldn’t have any effect on packages that have been internally coded with BLAS/Lapack instructions, they would need to be rewritten.

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [December 12, 2018, 1:38pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/5 "2018-12-12T13:38:08Z")

</div>

> [@Juan](#):
>
> Anyway, I guess MKL wouldn’t have any effect on packages that have been internally coded with BLAS/Lapack instructions, they would need to be rewritten.

AFAIK, basically no package calls directly into BLAS/Lapack.

---

<div class="post-metadata">

**Author:** ![dlfivefifty](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlfivefifty/32/1959_2.png) [@dlfivefifty](https://discourse.julialang.org/u/dlfivefifty)\
**Post date:** [December 12, 2018, 2:00pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/6 "2018-12-12T14:00:41Z")

</div>

Some packages use `ccall` to BLAS routines not exposed in Base. But with Julia built from source with MKL these correctly use the MKL versions.

---

<div class="post-metadata">

**Author:** ![Juan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juan/32/7657_2.png) [@Juan](https://discourse.julialang.org/u/Juan)\
**Post date:** [December 12, 2018, 4:10pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/7 "2018-12-12T16:10:37Z")

</div>

Then if I compile Julia with MKL all dependencies will be automatically resolved to use MKL when needed?

---

<div class="post-metadata">

**Author:** ![dlfivefifty](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlfivefifty/32/1959_2.png) [@dlfivefifty](https://discourse.julialang.org/u/dlfivefifty)\
**Post date:** [December 12, 2018, 4:17pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/8 "2018-12-12T16:17:59Z")

</div>

Yes. Packages use `BLAS.libblas` or `BLAS.liblapack` to determine the library to use, and we for MKL built Julia they return:

```julia
julia> BLAS.libblas
"libmkl_rt"

julia> BLAS.liblapack
"libmkl_rt"

```

---

<div class="post-metadata">

**Author:** ![Juan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juan/32/7657_2.png) [@Juan](https://discourse.julialang.org/u/Juan)\
**Post date:** [December 12, 2018, 4:25pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/9 "2018-12-12T16:25:30Z")

</div>

OK, that would force Julia to use it. But will it be completly compatible?  
Do both libraries offer the same options?

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [December 12, 2018, 4:27pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/10 "2018-12-12T16:27:29Z")

</div>

> [@Yifan\_Liu](#):
>
> I prefer something like Microsoft R Open, which offers MKL bundled R

Does anyone have any idea how this can be legal? R is GPL if they’re shipping R linked with MKL (even dynamically) then that would seem to violate the terms of R’s license.

---

<div class="post-metadata">

**Author:** ![dlfivefifty](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlfivefifty/32/1959_2.png) [@dlfivefifty](https://discourse.julialang.org/u/dlfivefifty)\
**Post date:** [December 12, 2018, 4:31pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/11 "2018-12-12T16:31:38Z")

</div>

Yes. That’s the point of BLAS.

Though, while they share the same options, they don’t share the same bugs.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [December 12, 2018, 4:34pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/12 "2018-12-12T16:34:12Z")

</div>

Indeed, according to the [FAQ](https://mran.revolutionanalytics.com/faq), Microsoft R Open is GPL while MKL which it ships with and links against is [highly non-open](https://mran.revolutionanalytics.com/assets/text/mkl-eula.txt), which appears to violate the license of R. I do not understand how this is legal—it seems like a flagrant violation of R’s GPL license to me.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [December 12, 2018, 4:37pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/13 "2018-12-12T16:37:35Z")

</div>

IANAL, but they [call it](https://mran.revolutionanalytics.com/faq)

> a downstream distribution of R with added components

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [December 12, 2018, 4:40pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/14 "2018-12-12T16:40:56Z")

</div>

Doesn’t really matter what they call it, if its links against MKL by default with no action on the part of the user then it’s very hard to argue that it is not a derived work. That is the position that the FSF has always taken, which has legal weight since the FSF wrote the GPL.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [December 12, 2018, 4:54pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/15 "2018-12-12T16:54:59Z")

</div>

This is interesting: [Home](https://mran.revolutionanalytics.com/#src-builds)

Sorry: this link does not lead to the FAQ. The FAQ says:

**[Can I build from source and include Intel MKL on Linux & Windows?](https://mran.revolutionanalytics.com/#src-builds)**

You will need the Intel MKL developer kit to build from source and include the Intel MKL libraries on Linux & Windows. While the binaries include Intel MKL on Linux & Windows, the Microsoft R Open sources are configured by default to build with standard BLAS and LAPACK libraries. If you have the Intel MKL developer kit, [follow these instructions](https://github.com/RevolutionAnalytics/RRO/blob/master/README.md) to build with it. The [R Installation and Administration Guide](http://cran.r-project.org/doc/manuals/r-release/R-admin.html#Linear-algebra) also provides instructions on building R with various BLAS libraries including MKL, ATLAS and OpenBLAS.

So, does MRO ship with MKL or not?

---

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [December 12, 2018, 5:25pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/16 "2018-12-12T17:25:11Z")

</div>

Yes. I have installed Microsoft open r on both Windows and Linux machines, during the installation it will ask if you want MKL included. After the installation, r will be using mkl with multiple cores, and the information of MRO and MKL will be shown when r is started.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [December 12, 2018, 6:07pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/17 "2018-12-12T18:07:13Z")

</div>

Perhaps worth asking the FSF about this then.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [December 12, 2018, 6:39pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/18 "2018-12-12T18:39:37Z")

</div>

Frankly, I don’t want to stir up trouble with Microsoft or the R community. This does seem highly legally questionable, however.

---

<div class="post-metadata">

**Author:** ![Yifan\_Liu](https://avatars.discourse-cdn.com/v4/letter/y/4da419/32.png) [@Yifan\_Liu](https://discourse.julialang.org/u/Yifan_Liu)\
**Post date:** [December 12, 2018, 7:55pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/19 "2018-12-12T19:55:51Z")

</div>

I am not sure how Microsoft manages to do it legally, but I kind of remember Microsoft acquired Revolutions Analytics to get a share of the statistical computing market.

Revolutions Analytics used to have Revolution R, which is similar to MRO.

[https://blog.revolutionanalytics.com/2016/01/microsoft-r-open.html](https://blog.revolutionanalytics.com/2016/01/microsoft-r-open.html)

I guess Julia Computing may want to take a look at how they deal with the license issue.

---

<div class="post-metadata">

**Author:** ![dlfivefifty](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlfivefifty/32/1959_2.png) [@dlfivefifty](https://discourse.julialang.org/u/dlfivefifty)\
**Post date:** [December 12, 2018, 9:10pm UTC](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585/20 "2018-12-12T21:10:05Z")

</div>

> [@StefanKarpinski](#):
>
> This does seem highly legally questionable, however.

“Legal” is based on precedent,so probably MS feels they have the right lawyers to establish the right precedent, thereby making it legal.

[Next page](https://discourse.julialang.org/t/mkl-bundled-julia-by-julia-computing/18585.md?page=2)
