ユーザ用ツール

サイト用ツール


サイドバー

fortran:ifort

以前のリビジョンの文書です


ifort

  • スパコンで使うことが前提
  • kudpc を参照.

コンパイラオプション

http://accc.riken.jp/HPC/training/text.html

http://www.k.mei.titech.ac.jp/~stamura/NumericalComputation-Tips.html これくらいオプションをつけて実行すれば,だいたいエラーは検出されそう.

ifort -check all -warn declarations -CB -fpe0 -traceback

コンパイラオプションも参照のこと

デフォルトのスタックサイズが小さすぎる

デフォルトのスタックサイズが小さすぎて、-openmpをやるときはスタックサイズを増やしてあげないと、頻繁にセグ落ちする。

!$OMP parallel
write(*,*) KMP_GET_STACKSIZE_S()
!$OMP end parallel

とやると、各スレッドのスタックサイズを返す。これを増やす場合は、最初の!$OMPの前に、

CALL KMP_SET_STACKSIZE_S(size)

とやれば良い。sizeは整数型の変数。所望のスタックサイズ(byte)を書けばよい。

改行の抑制

ifortでは出力時に勝手に改行する仕様になっている。 改行を抑制するためには、Format文を使用すればよい。

適当なやり方。

    write(*,'(100f)') a(:)

きちんとしたやり方。以下2chより引用。

http://pc12.2ch.net/test/read.cgi/tech/1163319215/532

532 名前:デフォルトの名無しさん [sage]: 2009/03/27(金) 05:59:41  
亀だけど、Ifortなら<>がお勧め。
多次元配列の最初の数を入れることが多いです
例
program main
implicit none
integer,parameter :: num = 9
integer :: ii,jj
real :: arry(num,num)
do ii=1,num
do jj = 1,num
arry(ii,jj) = ii*jj
enddo
enddo

write(6,'(<num>F)') arry
end program 

MKL

kudpc に記載あり.

module load mkl

してから,コンパイル.お手軽.

ifort sample.f90 -mkl

pardiso の使い方

pardisoを用いた連立一時方程式の解き方.

スパコンの

/opt/app/intel/composer_xe_2013.5.192/mkl/examples/solverf/source/

に入っているサンプルデータを参考に,走らせたいプログラムを作成する.

中身はこんな感じ

配列の設定に注意が必要,詳しくは以下を参照 [http://www.pardiso-project.org/manual/manual.pdf]

コンパイラオプションは

-mkl

でお手軽♪

fortran/ifort.1414042314.txt.gz · 最終更新: 2017/10/03 12:55 (外部編集)