Julia with Intel® Math Kernel Library for Improved Performance

Overview

This guide is inteneded to help users of Julia language to get better performance by using Intel® MKL for their high performance compute intensive applications that rely on mathematical routines.

Download Julia source code

Download Open source Julia as a zip file or use your github accound to download Julia source.

Prerequisites

Intel MKL can be obtained from the following options

•  A. Download a FREE evaluation version of the Intel MKL product
•  B. Download the FREE non-commercial* version of the Intel MKL product.


Intel MKL can also be obtained by downloading free evaluation versions or non-commercial versions of the following products.

•  Intel® Parallel Studio XE

If you already have a commercial license of MKL and compilers, we recommend you to use the latest versions.

Configuration

Set up the Intel MKL envrionment, for Intel64 architecture with 8 bytes integer support (ILP64)

$source /opt/intel/mkl/bin/mklvars.sh intel64 ilp64

and for ia32 architecture

$source /opt/intel/mkl/bin/mklvars.sh ia32

Edit Make.inc file located in julia folder and change USE_MKL = 0  variable to USE_MKL = 1

Also, change the MKLLIB variable to point to the appropriate library, by default it is set to intel64 architecture.

MKLLIB = $(MKLROOT)/lib/intel64

Alternately, you can also pass USE_MKL=1 option to make.

Building Julia with Intel MKL

Once you have set the Intel MKL environment and modified the Make.inc file to use MKL, building Julia with Intel MKL support is straightforward and proceed to building and installing Julia using the following command

$make install

To rebuild a pre-built Julia source installed with Intel MKL support, delete the OpenBLAS, ARPACK, and SuiteSparse dependencies from deps folder of and run

$make cleanall install

We would like to hear your feedback on using julia with MKL support on installation, performance or any suggestions.

Para obter informações mais completas sobre otimizações do compilador, consulte nosso aviso de otimização.