User Tools

Site Tools


Sidebar

intel_software:performance_libraries:math_kernel_library_link_line_advisor

概要

実際にMKLを利用するためには、ビルドするときに適切なオプションをつけてMKLにリンクを貼らないといけません。 このときにどのようなオプションをつければよいのか簡単に教えてくれるのが、Intel公式のMKL Link Line Advisorです。

https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor

各項目に答えていけば、必要なコンパイルオプションを教えてくれます。

各項目の解説

Select Intel® product

使用しているMKLのバージョンを選びます。

Select OS

使用しているOSを選びます。

Select compiler

使用しているコンパイラを選びます

Select architecture

使用しているOSのアーキテクチャを選びます。

  • intel(R) 64 … 64 bitの場合
  • IA-32 … 32 bitの場合

最近のものはほぼ 64bit です。

Select dynamic or static linking

MKLをプログラムに組み込む(static)か、実行のたびに外部から呼び出す(dynamic)か選びます。

dynamicの利点

  • プログラムの容量が軽くなる
  • ライブラリを更新してもプログラムをコンパイルしなおす必要がない

dynamicの欠点

  • 外部からライブラリを呼び出す分、実行速度が低下する
  • プログラムを実行するコンピュータにもライブラリが入っていないといけない

数値計算では普通はstaticを選びます。 詳しくは以下のページを参照。

https://scicomp.stackexchange.com/questions/1673/what-does-static-dynamic-and-single-dynamic-linking-mean

Select interface layer

自分の作ったプログラムの整数型が何bitかを選びます。

  • 32-bit integer … プログラム内で使用している整数型がすべて32ビット(4バイト)以下の場合はこちらを選びます。プログラムで特別なことをしていなければ、ほとんどの場合こちらです。
  • 64-bit integer … 64ビット整数を使っている場合はこちらを選びます。例えばC/C++での long long 型は64ビット以上で定義されています。int64_t 型はコンパイラによらず64ビットで定義されます

Select threading layer

MKLの並列化の方法を選びます。自分のプログラムを並列化している場合はそれに合わせます。

  • OpenMP threading … OpenMPによる並列化をします
  • Sequential … 並列化しません
  • TBB threading … Intel Threading Building Blocksによる並列化をします(あんまり普及していない)

Select OpenMP library

前の項目でOpenMPを使用するとした場合、どのOpenMPライブラリを使うか指定します。

  • Intel(R) (libiomp5) … Intel製のOpenMPです
  • GNU (libgomp) … GNUのOpenMPです

よくわからなければ libiomp5 を使用してください。

Select cluster library

MPI並列が実装されたMKLを使いたい場合、どのライブラリを使用するか選択します(コンピュータにMPIが入っていない場合は使用できません)。 自分のプログラムで使用しているライブラリを選択してください。

  • Parallel Direct Sparse Solver for Clusters … クラスタ向けの並列直接法疎行列ソルバーのライブラリです。
  • CDFT … クラスター向けの離散フーリエ変換ライブラリです。
  • ScaLAPACK … LAPACKのMPI並列化版ライブラリです。
  • BLACS … BLASのMPI並列化版ライブラリです。

Select MPI library

使用しているMPI実装の種類を選んでください。

Select the Fortran 95 interfaces

自分のプログラムでBLAS95やLAPACK95のインターフェースを使用している場合はチェックを入れてください。

intel_software/performance_libraries/math_kernel_library_link_line_advisor.txt · Last modified: 2021/06/27 22:04 (external edit)