この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
fortran:ifort [2014/10/23 14:31] saito |
fortran:ifort [2017/10/03 12:55] (現在) |
||
---|---|---|---|
ライン 68: | ライン 68: | ||
<code bash> | <code bash> | ||
ifort sample.f90 -mkl | ifort sample.f90 -mkl | ||
+ | </code> | ||
+ | ====== CSRへの変換 ====== | ||
+ | pardisoはCSRフォーマットを用いるが,coordinateフォーマットから変換するサブルーチンが用意されている. | ||
+ | |||
+ | https://software.intel.com/en-us/node/468628 | ||
+ | |||
+ | フォーマットについてはこちらから. | ||
+ | |||
+ | https://software.intel.com/en-us/node/471374 | ||
+ | |||
+ | Fortranの場合,job(1:8)に与える数値は以下の通りで(だいたい)OK. | ||
+ | |job(1)=1|the matrix in the coordinate format is converted to the CSR format.| | ||
+ | |job(2)=1|one-based indexing for the matrix in CSR format is used.| | ||
+ | |job(3)=1|one-based indexing for the matrix in coordinate format is used.| | ||
+ | |job(4)|特に設定不要| | ||
+ | |job(5)=nnz| sets number of the non-zero elements of the matrix A if job(1)=1.| | ||
+ | |job(6)=0| all arrays acsr, ja, ia are filled in for the output storage.| | ||
+ | |||
+ | <code fortran> | ||
+ | |||
</code> | </code> | ||
====== pardiso の使い方====== | ====== pardiso の使い方====== | ||
ライン 77: | ライン 97: | ||
</code> | </code> | ||
に入っているサンプルデータを参考に,走らせたいプログラムを作成する. | に入っているサンプルデータを参考に,走らせたいプログラムを作成する. | ||
- | + | include文が大事. | |
- | 中身はこんな感じ | + | 自分のプログラムに |
+ | <code fortran> | ||
+ | include 'mkl_pardiso.f77' | ||
+ | </code> | ||
+ | か | ||
+ | <code fortran> | ||
+ | include 'mkl_pardiso.f90' | ||
+ | </code> | ||
+ | を入れる. | ||
配列の設定に注意が必要,詳しくは以下を参照 | 配列の設定に注意が必要,詳しくは以下を参照 |