[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:15440] Re: IntelのC++/fortranコンパイラー



塚本@堺市 です。

t_ogata> 利用されている方も多いかと思いますが、IntelのC++/fortranコン
t_ogata> パイラーがかなりbugfixされてきました。fortranユーザーとして
t_ogata> Non-Commercial Unsupportedで利用していますが質問など受け付け
t_ogata> ているようです。real*8ベースの四則演算が主なプログラムの場合、
t_ogata> g77 -O2に比較して 1.5倍から2倍を越える高速になります。おそらく
t_ogata> C++の最適化もかなり良いとおもわれますので興味ある方は一度ため
t_ogata> してみられると良いと思います。

ご紹介ありがとうございます。どれだけ速くなるのか、さっそく試してみまし
た。

私が常用しているreal*8ベースの四則演算の力業のプログラム(分子動力学計
算)を使って Pentium III 1.26GHzのマシンでテストしました。

----------------------------------------------------------------------------
 Pentium III 1.26GHz           g77             0.86s/step
                               Intel           0.46s/step  ←これ!
                               ---------------------------------------------
 SX3  (NEC Super Comp. )                       0.14s/step
 SX4  (NEC Super Comp. )                       0.17s/step  ← 〜 920 M Flops 
----------------------------------------------------------------------------

ちなみに、何年か前に SX4 で 50000 step の計算をした時のプログラム実行
情報によると、

      ******  Program Information  ******
  Real Time (sec)       :      17630.831697    ←  実際はこれだけ待たされた
  User Time (sec)       :       8657.638804    ←  ここに注目
  Sys  Time (sec)       :        112.801537    
  Vector Time (sec)     :       7892.194956    
  Inst. Count           :      215458164583.
  V. Inst. Count        :       85594128800.
  V. Element Count      :    14996256442574.
  FLOP Count            :     7967185115365.
  MOPS                  :       1747.141550
  MFLOPS                :        920.249192    ← ここに注目
  VLEN                  :        175.201929
  V. Op. Ratio (%)      :         99.141458    ← ベクトル化率99%
  Memory Size (MB)      :          5.275648  
  MIPS                  :         24.886481
  Cache (sec)           :         25.357362
  Bank (sec)            :          1.005298

となっています。

まさか、Pentium III 1.26 GHz 1個で 300M Flops を越えるとは思わなかった
です。

t_ogata> (7)コンパイルの例
t_ogata> % ifc -O2 -tpp7 -xW -Vaxlib -save -w p.f
t_ogata> -tpp7はPentium4に対する最適化、Pentium3 -> tpp6
t_ogata> -xWはベクトル化
t_ogata> -Vaxlibはunix系のライブラリ
t_ogata> -saveはデフォルトがAOUTMATICのようですので古いソースの場合には良いかと
t_ogata> -wはワーニングの抑制

私の場合、Makefile を

FFLAGS        = -O2 -tpp6 -w 
CC            = icc
FC            = ifc
LD            = ifc
LDFLAGS       = -Vaxlib

としたのですが、

-xW (ベクトル化)というのは Pentium 4 で有効になるのだと思いますが、ど
れくらい効果があるのでしょうか?

  # plamo の話題から外れてしまいすみません…
-------------------------------------------------------------------------
Tamio Tsukamoto
E-mail  : tamio@mb.infoweb.ne.jp
Web Page: http://village.infoweb.ne.jp/~tamio
PGP Key fingerprint = 2F 62 8B E9 F7 2D B0 39  6C AA 3F 1B 9B 8B 7C 87

Follow-Ups
[plamo:15441] Re: IntelのC++/fortranコンパイラー, Tetsuya Ohnishi
[plamo:15442] Re: IntelのC++/fortranコンパイラー, Takehiko Ogata
References
[plamo:15404] IntelのC++/fortranコンパイラー, Takehiko Ogata

[検索ページ] [メール一覧]
Plamo ML 公開システム