メモリいっぱい使うとき
なお、-shared-intel にすると -fast が使えない(-fast が -static を含むため。-fast の実態は複数のコンパイルオプションへのエイリアス。ifort -help opt を参照)。そこで最適化は
$ ifort foo.f90 -xHost -Ofast -ipo -mcmodel=medium -openmp -shared-intel
にする。要は -fast から -static を抜いたかたち。本番計算はこれでやってる。
デバッグ(ランタイムエラーを拾う)用
$ ifort foo.f90 -CB -traceback -g
なんだけど、実行が死ぬほど遅いから、実際には
$ ifort foo.f90 -CB -traceback -g -xHost -Ofast -ipo -mcmodel=medium -openmp -shared-intel
と全部入りにする。ただ、これやるとコンパイルがだいぶ遅くなるので場合によっては
$ ifort foo.f90 -CB -traceback -g -mcmodel=medium -openmp -shared-intel
だけにする(-O2の意味)。
UPDATE 2013-10-11
-shared-intel は、昔は -i-dynamic という名前だったようだ。ifort 11 まで、なのかな?それから、-mcmodel=medium とイコールにしても、 -mcmodel medium と半角スペースにしてもどちらでも通るようだ。公式にはイコールになってる ので自分はイコールにしてるけども。
[/UPDATE]
No comments:
Post a Comment