R言語 - Intel Math Kernel Library セットアップ

#はじめに
　本 Tips では、Intel Math Kernel Library を Oracle R Distribution にセットアップする手順をご紹介します。Oracle R Distribution(以下、ORD)は、オープン・ソース R 環境の無償版 Oracle ディストリビューションです。ORD は、ハードウェア固有の数学ライブラリの利用で高速なパフォーマンスを期待できます。今回は、Microsoft Windows 版の ORD セットアップについてご紹介します。

#手順について
　Microsoft Windows 版 ORD のセットアップ・マニュアルはこちらです。
[R Enterprise Installation and Administration Guide - Installing Oracle R Distribution on Microsoft Windows](http://docs.oracle.com/cd/E67822_01/OREAD/install_r.htm#OREAD237)

　今回は、Intel Math Kernel Library (以下、Intel MKL) もセットアップします。Intel MKL を利用することで、ハードウェア固有の数学ライブラリによって高速なパフォーマンスを期待できます。
[R Enterprise Installation and Administration Guide - Enabling MKL Support for Oracle R Distribution on a Windows Client](http://docs.oracle.com/cd/E67822_01/OREAD/install_r.htm#OREAD308)

#セットアップ実施
###Oracle R Distribution を入手します
　[Oracle R Distribution](https://oss.oracle.com/ORD/) ポータルサイトから、Micorosoft Windows 版を入手します。Zip ファイル [ORD-3.2.0-win.zip](https://oss.oracle.com/ORD/ORD-3.2.0-win.zip) をインストールしたいローカルマシンにダウンロードします。ダウンロードした Zip ファイルを Unzip して、ORD-Rversion-win.exe(実行可能ファイル) を展開します。

###Intel MKL を入手します
　マニュアル上は、[Intel MKL](http://software.intel.com/en-us/intel-mkl) の有償ライセンス版についての記載がありますが、今回は2015年8月31日付けで無償提供となった、[Community Licenses](https://software.intel.com/en-us/articles/free_mkl) を使用します。
　アカウント登録画面で必要事項を入力してから submit ボタンをクリックし、次の画面でアカウント情報を入力して submit ボタンをクリックして完了です。確認のための件名「IntelR Registration Confirmation」のメールが届いたら、「Please verify your e-mail address by clicking the link below or by copying the URL into your browser.」の下の URL をクリックします。起動したブラウザに「Your account is now activated」が表示されれば、アカウントの手続きが確認完了です。

![image](https://qiita-image-store.s3.amazonaws.com/0/106773/4d52e115-6bae-a328-d11f-a765fa484074.png)
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/0ce459e1-1eeb-760c-f233-c3719f0f651c.png)
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/3fc6e914-308d-2d8f-8741-7bc944efd03b.png)

　次に、Community Licensing for Intel Performance Libraries 2016 の画面が開いたら、「Select product」から「Community Licensing for Intel Performance Libraries for Windows」を選択し、「select file」から「Intel Math Kernel Library(Intel MKL) (941 MB)」を選択して、Download Now ボタンをクリックすると、ダウンロードが開始します。Community Licensing for Intel Performance Libraries 2016 の画面では、自分用の Serial number が表示されているので、メモしておきましょう。

###ORD をセットアップします
ORD-Rversion-win.exeをダブルクリックして、インストールを開始します。

######セットアップに使用する言語を選択して「OK」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/ecb64ae2-77cf-12c4-29b8-d61588e74164.png)

######セットアップウィザードの開始画面で「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/a7ba5765-bf26-c97e-20f5-16c85e1a5606.png)

######ライセンス情報の画面で「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/dc9eb81a-f7a1-a7a6-bf5a-8666262900e2.png)

######インストール先の指定画面で「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/133d671c-9a4a-0029-80f4-fbad90361483.png)

######コンポーネントの選択画面で「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/55511b0a-09b9-b146-5a67-a6fe5eb94504.png)

######セットアップオプション画面で「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/25898528-ad95-39ee-8a53-20a3396a36f0.png)

######プログラムグループの指定画面で「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/b8378f3f-66e8-5deb-3ca0-e32c2f6fecb4.png)

######追加タスクの選択画面で「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/fd057f7d-c946-934b-229d-ff2dc01ac0ec.png)

######セットアップ情報の画面で「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/44b4e408-58bd-0d1f-6d2c-e5999d2967c2.png)

######セットアップウィザードの完了画面で「完了」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/0452bb13-8472-9e54-b8f8-193f289b7b7f.png)

###Intel MKL をセットアップします
w_mkl_11.3.1.146.exeをダブルクリックして、インストールを開始します。
######展開ボタンをクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/909ee324-6f96-6756-e4c3-7c392bd1560e.png)

######スプラッシュ画面
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/89012577-441f-0bc9-98db-d5afab78c704.png)


######インストール開始の画面で「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/0d4a49af-f598-9caa-bdf3-9e82060861d8.png)

######必要条件の問題の画面で「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/f68bb3c4-ce7e-3079-2fcb-30f6a046ce6b.png)

######ソフトウェア使用許諾書の内容に同意します、を選択して「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/b42a501f-e8fa-199a-e204-ecea4956a9dd.png)

######シリアル番号を入力して「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/fcb4c9a0-93b3-22b0-4043-43e652895524.png)

######インテルソフトウェア製品の品質向上の参加するor参加しないを選択して「次へ」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/9a44fcd4-a9b5-ffff-b48e-17b288fe58fd.png)

######インストール・サマリー画面で「インストール」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/0e212ac8-a2c9-9989-7898-b0de8601f7b5.png)

#####インストール完了画面で「終了」をクリック
![image](https://qiita-image-store.s3.amazonaws.com/0/106773/eb1d49f3-6cb5-2f43-0255-780405a3264a.png)


###システム環境変数を変更します
######PATH システム環境変数
　PATH に libOrdBlasLoader.dll と mkl_rt.dll のパスを追加します。通常は、以下の場所に格納されています。

|ライブラリ名|格納場所|サンプル|
|:------------------:|:------------------:|:----------------
|libOrdBlasLoader.dll| R home directory|C:\Program Files\R\R-version\bin\x64|
|mkl_rt.dll|Intel MKL Composer XE directory|C:\Program Files (x86)\Intel\Composer XE 2013 SP|

######MKL_NUM_THREADS システム環境変数
　実行スレッド数をコントロールするのは、MKL_NUM_THREADSパラメータです。この Tips では、4 Core マシンを使用しているので、システム環境変数に MKL_NUM_THREADS を追加して、値を 3 にセットします。システム環境変数の変更内容を保存後、マシンを再起動します。

###R を起動し、セットアップ内容を確認します
　Intel MKL が使用さていることを確認するには、Sys.BlasLapack()関数を使います。```$vendor``` に ```Intel Math Kernel Library (Intel MKL)``` がセットされていればセットアップ完了です。

```R:R
Sys.BlasLapack()
$vendor
[1] "Intel Math Kernel Library (Intel MKL)"
$nthreads
[1] 3
```

ご参考までに、Intel MKL 設定前の状態は次の通りになります。

```R:R
Sys.BlasLapack()
$vendor
[1] "R internal BLAS and LAPACK"
$nthreads
[1] 1
```

#サポートマトリクス
[R Enterprise Installation and Administration Guide - Oracle R Enterprise Server Support Matrix](http://docs.oracle.com/cd/E67822_01/OREAD/intro.htm#CEGGJIEJ)
情報は 2016/2/11時点のものです。利用時は[リリースノート](http://docs.oracle.com/cd/E67822_01/ORERN/toc.htm)の確認をお薦めします。

| Oracle R Enterprise | Open Source R, Oracle R Distribution |Oracle Database |  
|------------|---------------------|-------------------|
| 1.5      | 3.2.x                 | 11.2.0.4, 12.1.0.1, 12.1.0.2|
| 1.4.1    | 3.0.1, 3.1.1          | 11.2.0.3, 11.2.0.4, 12.1.0.1|
| 1.4      | 3.0.1, 3.1.1          | 11.2.0.3, 11.2.0.4, 12.1.0.1|
| 1.3.1    | 2.15.1, 2.15.2, 2.15.3| 11.2.0.3, 11.2.0.4, 12.1.0.1|
| 1.3      | 2.15.1                | 11.2.0.3, 11.2.0.4, 12.1.0.1|
| 1.2      | 2.15.1                | 11.2.0.3, 11.2.0.4, 12.1.0.1|
| 1.1      | 2.13.2                | 11.2.0.3, 11.2.0.4, 12.1.0.1|
| 1        | 2.13.2                | 11.2.0.3, 11.2.0.4, 12.1.0.1|