概要

    Intel Math Kernel Library (Intel MKL) は、工学、科学、金融系アプリケーション向けに高度に最適化され、広範囲にスレッド化された数学関数を含むライブラリーです。Fortran および C プログラミング言語インターフェイスを提供します。Intelコンパイラだけでなく、GNUコンパイラ、PGIコンパイラでも使用可能です。
     

    Intel MKLの主な機能は以下のとおりです。

    • BLAS (レベル 1、2、3) および LAPACK 線形代数ルーチン。ベクトル演算、ベクトル-行列演算、行列-行列演算を提供します。
    • ScaLAPACK 分散処理線形代数ルーチン、BLACS (Basic Linear Algebra Communications Subprograms) および PBLAS (Parallel Basic Linear Algebra Subprograms)。
    • Intel MKL PARDISO (並列直接法スパースソルバー PARDISO に基づく直接法スパースソルバー)、反復法スパースソルバー、スパース BLAS (レベル 1、2、3) ルーチン、クラスター上で利用可能なIntel MKL PARDISO ソルバーの分散型バージョン。
    • 混合基数に対応する (変換の長さが 2 の累乗に限定されない) 1 次元、2 次元、3 次元の高速フーリエ変換 (FFT) 関数と、クラスター上で利用可能なこれらの関数の分散型バージョン。
    • ベクトルマス (VM) ルーチン。ベクトルの数学演算用に最適化されています。
    • ベクトル統計 (VS) ルーチン。さまざまな確率分布、畳み込み/相関ルーチン、統計関数用の高性能かつベクトル化された乱数ジェネレーター (RNG) を提供します。
    • データ・フィッティング・ライブラリー。関数のスプラインベースの近似、関数の微分と積分、検索機能を提供します。
    • 拡張固有値ソルバー。Feast Eigenvalue Solver をベースにした固有値ソルバーの共有メモリー (SMP) バージョンです。
    • C 言語インターフェイスのディープ・ニューラル・ネットワーク (DNN) プリミティブ関数。

     
    詳細は公式WEB公式ドキュメントをご参照ください。
     

インストールディレクトリ

    インストールディレクトリは、環境変数MKLROOTに設定しております。Intelコンパイラのバージョンアップデートに合わせてアップデートしますので、ご注意ください。

    echo $MKLROOT
    /octfs/apl/Intel/psxece2018u3/compilers_and_libraries_2018.3.222/linux/mkl

     

    旧バージョン(15.0.1、17.0.5など)も使用可能です。17.0.5を利用する場合のコマンド例は以下のとおりです。
    利用するバージョンに合わせ、太字の部分を変更してください。

    source /octfs/apl/Intel/psxece2017u5/mkl/bin/mklvars.sh intel64
    echo $MKLROOT
    /octfs/apl/intel/compilers_and_libraries_2017.5.239/linux/mkl

     

使い方

    リンクの指定方法については、使用するコンパイラや用途によって異なりますので、Intelの提供するLink Line Advisorを使って、確認することをお勧めします。
    Intel MKL Link Line Advisor

    以下は、Intel MKLのバージョンが2018、Intelコンパイラを使用、汎用CPUノード群で単一コア実行をする場合の選択例です。

    Select Intel product Intel Parallel Studio XE 2018
    Select OS Linux
    Select usage model of IntelR Xeon Phi Coprocessor None
    Select compiler intel FORTRAN
    Select architecture Intel(R) 64
    Select dynamic or static linking Static
    Select interface layer 32-bit integer
    Select threading layer Sequential
    Select OpenMP library 選択なし
    Select cluster library 選択なし
    Select MPI library 選択なし
    Select the Fortran 95 interfaces 選択なし
    Link with IntelR MKL libraries explicitly 選択なし

    必要な項目が揃うと、「Use this link line」および「Compiler options」にリンク指定が表示されますので、コンパイル時に指定してください。上記の選択例の場合は、次のようなコンパイルオプション/リンクとなります。

    ifort test.f90 -I${MKLROOT}/include -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/libmkl_sequential.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl

     

参考資料

    より詳細な利用方法についてはIntelの公式ドキュメントを参照して下さい。以下よりリンクしております。
    Intel MKL ドキュメント