トップページ⇒linux
985コメント403KB

intel compiler for Linux

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001login:Penguin01/11/29 17:53ID:5k7yf0ai

intel 社の Web ページ
URL:<http://developer.intel.com/software/products/eval/>;
の、"Non-Commercial Unsupported Software(非商用、サポート無し)" から、
RedHat系Linux 6.2 または 7.1 に対応した IA-32 や IA-64向きの
最適化C++,Fortran9x用のコンパイラ(version 5.0.1) が無料で
ダウンロードできるようになっています。
(詳しいライセンス条件は、ダウンロード時に表示される文書を
参照してください。)

intel 自身が作ってますので、インテル系のCPUの資源を活用できる
実行ファイルが生成されるます。(AMD の Athlon も Pentium III と
みなしてコンパイルオプションを選べばMMX機能などを使うことが可能です。)

以下は、「無料永続版」を入手した後で、それを実際に使えるようにする
ための設定方法の記述です。
C++ と fortran9x を両方ともインストールする例を書いていますが、
どちらかだけしか必要ない場合は、片方を省略することができます。

例は RedHat6.2 系統向けになっていますが、7.x 向けの場合でも大体同様です。
(Web ページからダウンロードしてくるファイルが違うだけです。)

ダウンロードする際に入力したメールアドレスにインストール時に必要となる
ライセンスキー情報が送られてきます。
0809login:Penguin03/12/10 22:12ID:p/JFC5ch
icc8が出たけど、Premier Supportからは取れないな。
Non-Commerical Licenseだと icc Version 8は取れないのかな?
0810login:Penguin03/12/10 23:19ID:GiTuTJ3u
>>809
メジャーバージョンアップだから
普通にintelのサイトから8.0のサポート無し版を落として
プレミアに製品の追加登録するんじゃないの?

と思ったけど、新ライセンス送付のあて先にプレミアに登録したアドレスを
指定すると、自動的にプレミアサポートに製品情報が追加されてるぽ

よくわからん文章ですまん
0811login:Penguin03/12/11 01:40ID:5Yg2lmfh
>>810
うーん、www.intel.com -> software -> Intel C Compilerとたどっていって、
非商用サポート無しを登録した後に、premirerサポート見ても追加されないんですよねぇ。

なんか手違いしているのか、あるいは反映に時間かかるのかもしれないので、
二、三日様子をみてみます。
0812809,81103/12/11 02:17ID:5Yg2lmfh
intelからのお知らせメールに記載の URLからダウンロードすると、
普通に version 8になってますた。メールを良く読まなかったワタクシの落ち度です。

これからなんか試してみます。
0813809,81103/12/11 08:39ID:5Yg2lmfh
うーん、今更ながら Intel VTune Performance Analyzerを入れようとトライしてみたんですが、
手元にある Redhat Linux 9では入らず。どっかに古い Linuxの CD無いかな(つД`)

現在 isoイメージを入手出来て、VTuneを動かすのに最適な Linuxって何なんでしょうねぇ。
SuSEも見に行ってみましたが適当なイメージが見つからず、
RedHatも古いイメージは見つからず(つД`)
0814login:Penguin03/12/11 10:43ID:NFnufR73
>>813
赤帽の古いのなら
ftp://ftp.sfc.wide.ad.jp/pub/Linux/redhat/linux/
から色々取れますよん。
0815login:Penguin03/12/11 14:36ID:LT6uuRQJ
>>812
ダウンロード出来ねぇ。
ホンコン鯖にアクセスしたら、一度ダウンロードが始まったが、
半分位までいったところで突然ソースファイルが見つからないと叱られた。
こみ合ってるんだろうねぇ...

ところで、intelはwinな鯖を使ってるのだろうか...
何やかんやとあそこのサイトにアクセスしてるとトラブルが起こる。
0816login:Penguin03/12/11 19:48ID:2kSMVJY9
>813
XLsoftからの案内だとコンパイラも8.0からRedhat9に対応したと
書かれているから、VTuneも近いうちに新版がでるかも。
あとfortranはimslを含んだprofessional版が近日発売と書いてあったな。

ちなみにiccってgccよりもどの辺が優れているの?
0817login:Penguin03/12/11 20:46ID:ic2n9UX1
>>816
すべて
0818login:Penguin03/12/12 12:12ID:A4ah+nvE
>817
少なくとも価格とか入手の容易さでは負けているよね。
0819809,81103/12/12 15:16ID:vkMOhnyz
>>816
Intelコンパイラが Redhat 9に対応って書いてありましたねぇ。

VTuneはバージョン低いスギだしw
 
Redhat9を Kernel 2.4.18に下げたらパニックしてダメだったので、
VTune側でRedhat9に対応して頂きたい所存(切実
0820login:Penguin03/12/13 00:32ID:6ENh9c3+
で,ifc8ってどうよ?
ifc7に比べて遅いんだけど.
0821809,81103/12/13 01:29ID:LS7LpJ74
himenoベンチ@Pentium4 2.6C でこんな感じ。
どうも再現性がないが、たまーにいい数字が出る。

ifc8 XS: 418.5000, S: 450.7581, M: 439.8625
ifc7 XS: 444.6562, S: 439.9207, M: 432.5538

ifc7での XSの数字がよいように見えるが
何回やってると 410くらいの数字がちらほら出るので一定してない。
明確にどっちがいいとも言えないなぁ。
0822login:Penguin03/12/13 11:37ID:6ENh9c3+
>>821
2.6Cの割に数値が低いね.win版?
0823login:Penguin03/12/13 14:44ID:Ro2jdgnU
>>822
いや、ソースを拾ってきて icc for Linux on Redhatでコンパイル。

ランキングとの比較で遅い気がして測りなおしたら icc版で 900程度出てますた。
ifc7, ifc8でも明確に差があったんで、週明けにでも書きます。
0824login:Penguin03/12/14 04:51ID:jCkO6Mox
GCC用のパッケージ内の Makefileやconfigurer、.specファイルを
ICC用に一括置換するスクリプト組もうと思うんですが、

オプションの違いが不安なので、その辺り教えて頂けると嬉しいのですが…。

# もしかして既出?
0825809,81103/12/14 18:47ID:w4UzkkZP
嘘ばっかで申し訳ない。821は「 姫野ベンチマーク 98」ですた。
iccで 900程度出たのも 姫野ベンチ98(;´д⊂ 懲りずに、今度こそ himenoBMTxpでの計測結果。

http://w3cic.riken.go.jp/HPC/HimenoBMT/program1.htm から取ってきたソースを、
オプション -O3 -tpp7 -xiMKW -Vaxlib でコンパイルしました。
測定環境は Pentium4 2.6C。単位は MFLOPS

ifc7 & Fortran77: 617
ifc8 & Fortran77: 548
gcc & Fortran77: 429

icc7(static): 602
icc8(static): 337

ifc8も icc8も性能低すぎるような。
そして、姫野ベンチのランキングに乗ってるマシンは何であんなに速いんだろ?
カーネルのチューニングとかも必要なのだろうか
0826懲りずに姫野ベンチ80903/12/14 19:45ID:w4UzkkZP
-prof_useと -prof_useの使用で、幾分スコアが上がった。

ifc7 & Fortran77: 617 -> 705 MFLOPS
icc7(static): 602 -> 638 MFLOPS

http://w3cic.riken.go.jp/HPC/HimenoBMT/himenoBMTresSMALL1.pdfの、
チート無しで icc, ifc使ってるあたりで参考になりそうなのだと、
25位の Pentium4 2GHzで 750……。
小手先の改良じゃまだ追いつけないな。
何か足りないか設定変なのか(;´д⊂
0827login:Penguin03/12/14 22:02ID:lf80yPW7
>826
私も姫野benchをwindows xpでバイナリとiflでコンパイルした物を両方
動かしてみましたが、バイナリでは600を超えるのにiflで造った方は350前後
しか出ませんでした。(ifl7.1,8.0/P4-3GHz)
やはり何か工夫が必要なのでしょうかね。
体感的にはこの数字ほどiflが遅いようには思えないのですが。
0828login:Penguin03/12/15 08:07ID:cbcpH3vl
>>825

-tpp7を-tpp6でやってごらん!
0829三つの女の子03/12/23 11:14ID:QCWtAyCy
ifort (ifc8) でlapack 3.0のコンパイルの仕方を教えてください。
特に make.inc の書き直し方。
MKLとどっちがよいでしょうか?
0830login:Penguin04/01/01 01:21ID:po+KK1Hr
atlasをがんばって生成するより、libgoto使ったほうが効果てきめん。
ただ、IA-64用のlibgotoはZHEGVでエラーが出る。よろしく後藤さん!!
0831login:Penguin04/01/04 14:52ID:HKxDF7PC
ifcはUnsupported版あるけど、MKLは30day evaluationのみなのね。なんだか生殺し。
LAPACKもなかなか構築できんし。>>829 さん有用な情報が入手できたら教えて下さい
0832login:Penguin04/01/04 21:59ID:60Guqh70
>>831
atlasじゃだめなの?atlasはlapack+blasですよ。
0833login:Penguin04/01/06 17:54ID:nP+rFpvw
> We are pleased to notify you of the release of the VTune(TM) Performance Analyzer 2.0 for Linux*.
> a newly supported IA-32 Linux* distribution has been added, SuSE* Linux* 8.2.
> Refer to the Release Notes for more details.

SuSe 8.2をサポート!
これなら まぁまぁ新しいのでインストールに耐えるような
083483104/01/07 22:47ID:TrdAH3pz
>>832
勿論atlasは使用可で、速度を求める時は良い選択肢ですが、もっとしょーもない
所で悶々としてます。

g77でビルドしたモノを使う時はg2cが必要になりますよね(←この認識正しい?)
するてえと、例えばlapack(g77)をifcから使う時 -lg2c とかついて、fortranライブラリを
fortranから使うのにg2cってのもなんだかなぁ。。。てな気分になるんですよ。
(atlasなら仕方がないってな気分になれますが)

やれrow-majorだcolumn-majorだとか言語間相違の話が面倒でfortranに移住した
(気は進まんが)んで、やるからにはfortranの世界で閉じたいなって気持で >>831 を書きました。

// しょーもない動機でスマソ。 同じ様な考えの方いらっしゃいます?
0835login:Penguin04/01/12 01:10ID:Tb0eKosV
コンパイラの出来はINTEL最高、MKLも良いし、チューニングツールも極めて
よいものだ。だが、32ビットアドレスはもういい加減にせま過ぎる、
かといってイタニウムのシステムはコストパフォーマンスがWS並に悪い。
ではAMD64かといえば、こちらはコンパイラが高かったりまだボロい。
AMD64用のGCCもF77も大きな配列を(MALLOCなどでダイナミックに取る
のではないかぎり)まだまともに扱えないバグがコンパイラにもリンケージ
エディターにもある。なんといってもF90が無料で手にはいらない。。。
0836login:Penguin04/01/12 01:30ID:LZPkgde+
>>835
>コンパイラが高かったりまだボロい
ボロいのソースとかはある?それともまだ枯れてないっていう一般的な話?
# 断じて煽りではないです。念の為
0837login:Penguin04/01/12 04:47ID:++QQKFNL
AMDはソフトウェアが「無い」と思っていたんですけど、実はいくつか出てるんですね。
MKL/IPPなどまで揃ってる Intelに対して、AMDの、

・AMD CodeAnalyst? Performance Analyzer
・AMD Core Math Library

あたりってどーなんですかね。
0838login:Penguin04/01/12 13:22ID:+GCBR8oG
>>837
ちょい話はずれるが、それよりも鉄板なコンパイラが欲しいよね。
ライブラリはnetlibからなんとかできなくもないし
0839login:Penguin04/01/12 15:36ID:++QQKFNL
>>838
んだねー、渇望されている通り、コンパイラがしょぼい。
gcc3.3.1はちゃんと動くバイナリを吐くけど、性能があんまり劇的にいい訳でも無いし。

そういえば、Athlon64で -m64でもパフォーマンス上がらないので
疑問に思い物理レジスタの数を調べてみたら、

Pentium4: 128本
Athlon:   70
Pentium3:  60

くらいあるらしく、そりゃユーザから見えるレジスタが増えたところで
パフォーマンスにはあんま関係ないよな、と思った今日この頃。
昨今の CPUは滅茶苦茶に手強い_| ̄|○
0840login:Penguin04/01/14 01:50ID:bxmMbzPt
GCCだと、AMD64用の場合、大きな配列が取れない。
AUTOの配列の場合、1個あたり2GBを超える配列は取れない。
STATICの配列の場合、1個で4GBを超える配列は取れない。
STATIC配列では一個が大きくなくても、合計で4GBを超える配列は取れない。

大きなメモリ−を割り当てる唯一の方法は、MALLOCとかCALLOCなどで
動的に配列を割り当てること。Cならこれでメモリサイズの制約から
逃げるしかない。
しかしこの方法はFORTRANのみでソースを書きたい場合には
そもそも使えない。FORTRANを呼ぶCのメインルーチンの中で配列を
CでアロケートしてからFORTRANを呼ぶしかない。
0841login:Penguin04/01/14 01:59ID:+Zlg5/9m
>>840
PGIやAbsoftのF90だったら大丈夫・・・なんだよねぇ?買う価値ありかなぁ?
0842三つの女の子04/01/14 13:54ID:j0lilwyF
>>831

LAPACK と LAPACK95 のコンパイルに関しては以下のページが
参考になります。ただし、ifc (ver.7.0/7.1)でないとだめです。
ifort(ver.8.0)はまだ不安定なので build できません。

http://atlas.riken.jp/~shinkai/cactus/LinuxPCcluster.html

pgi, absoft は安定してますが、コンパイラ自体の開発速度が遅いです。
intelは開発速度が速いのとcompaqの部隊が入ったのでcompaq fortranの
know-howが投入されている面はよいのですが、ver.8.0はまだ感心しません
(自動並列化機能はまだまだ)。

IA64では itanium が良いか opteron が良いかご存じの方ご教示ください。

0843三つの女の子04/01/14 13:57ID:j0lilwyF
>>840
fortran90/95 なら allocatable 文が使えますので変数の
ダイナミックアロケーションが可能です(C言語での
MALLOCとかCALLOCなどと同じ)。
コンパイラは ifc が使用可能。
084483104/01/14 18:40ID:+Zlg5/9m
>>842
おおー、いいページだ。早速やってみます。どうもありがとう!
0845三つの女の子04/01/14 22:41ID:zTMOLIO4
2チャンにしては良いページでしょう。
うまく行かなかったらまた書き込んでください。
本当は自分のHPで板を作りたかったのですが、素性が分かってしまいますので…。

ifc7.1では static でリンクしないと駄目です(駄目ではないのですが -lg2c しなくても良いと言うことで)。
0846login:Penguin04/01/15 19:28ID:ArKMzJlc
<a href=840 target=_blank>> 840
<a href=843 target=_blank>> 843
配列って整数でindex付けをするので2GB or 4GBになってしまうのでしょうか?

integer*8 で配列がアクセスできるようになっているのって、あんまり聞いたことがない。
0847login:Penguin04/01/21 14:45ID:nsDVVSKG
これからマシンを組むのですが、
ifortはfedoraで動きますか?
0848login:Penguin04/01/21 14:54ID:nsDVVSKG
>>847
スマソ、>>790に出てました。
0849login:Penguin04/01/22 10:06ID:Bci0KX1J
新規インストールのfedoraにver8.0.039は入らなかった。
rpmを展開するところでコケる。
で、試しにver7.1の最新版1.038を入れてみたら入った。
コンパイルも無問題。実行速度はまだVer7.1が速いから
結果としてウマ〜でした。
しかし何でVer8の方が遅いのかなぁ...
0850login:Penguin04/01/23 19:13ID:IR9RC7C4
RH9なマシンにver8を入れておいて、その後fedoraにうp。
Pen4 2.4C+kernel2.6.1smpで、ifort の -parallel オプションを
指定すると10〜20%速くなる。まだifc7.1より少し遅いけど
自動並列化ってスゴイのね。Hyper-Threadではなくて
ホンモノsmpマシンなら期待できるのかな。

しかし time コマンドが smp に対応してないから user > real
とかになってしまう。他のコマンドってあります?
0851login:Penguin04/01/24 16:31ID:Q/PIQoM0
smpに対応したtimeコマンドって何?
0852login:Penguin04/01/25 11:52ID:CmZotflg
>>850
ifc7で-parallel付けるとどうよ?
ifc8で-parallelの性能が良くなったってこと?
0853login:Penguin04/01/25 17:55ID:qimvXVp1
AMD64 用のオブジェクトを吐くようにはしてはもらえないかなあ、無理だろうな。
0854login:Penguin04/01/25 23:20ID:FZIMeuhp
>>853
そら囲い込みのためにやってるのに、無理っしょw > AMD64

姫野ベンチに -parallelだとコア吐いてしぬ。
「こんな速くなるよ!」といういいサンプルないかな
0855login:Penguin04/01/26 07:58ID:LWHgRXy6
>845 嶋ベンチはどう?
0856login:Penguin04/01/26 15:39ID:TQuitOiw
>>851
プロセッサごとの user time を表示するヤツとか。

>>852
ifc7 -parallel だと、プロセスはフォークするけど実行は1cpuのみで、
topでみても cpu は合計でも最大 100% の user 時間
ifc8 -parallel だとちゃんと2cpuで実行する。topでみると cpu の state は
合わせて 170% とかになってる。
0857login:Penguin04/01/27 12:54ID:ManW0tcR
himenoBMTでifort -parallel付けてもコアを吐くことは無いけれど,
2CPUで計算している様子は無い.
0858login:Penguin04/01/28 00:42ID:TrMecqbS
Ver.8の自動並列化って良いね。
ifort で -parallel つけてLAPACKを作ってifc7+MKL6.0 と比較してみた。
計算は複素対称行列の対角化がメイン。で、結果はハイパースレッド、スゴッ。
ホンモノsmpマシンでも試したい、けど、おぷてろんじゃダメだろな...

==> testV7 <==
Time : 112.56 0.09 112.65 ← プログラム内の etime で計測

real 1m52.719s ← time コマンドの結果
user 1m54.605s
sys 0m0.105s

==> testV8 <==
Time : 88.08 0.40 88.48

real 1m30.275s
user 2m41.601s
sys 0m0.642s
0859login:Penguin04/01/29 01:30ID:PQwhYO8S
複素対称ですか? エルミート対称ではなくて? なんだか大変そうだな。
0860login:Penguin04/01/29 11:44ID:6+2++KnT
複素数の対称行列って意味だけど??
モノは普通のバンド計算のハミルトニアン。

で、-parallel をつけても並列実行できないケースもありますね。
コンパイラが理解できるようにソースをイジらないとダメかな。
0861login:Penguin04/01/29 22:48ID:5ZgL/2mo
ifcって並列化のためにソースに埋め込むコンパイラ指示子ってあったっけ?
ないならOpenMPのほうてっとり早いような。
自動並列と共存できるし。
0862login:Penguin04/01/31 01:39ID:jAz+y1nc
複素の対称行列の場合には、どうやって対格化するんですか?
エルミート対称の場合はハウスホルダー法+帯2分法が使えますが。。。
そうじゃないと、ヘッセンベルグ行列と格闘しなくちゃいけなくなる。
0863login:Penguin04/02/02 12:22ID:FGkL9Y8/
普通のハミルトニアンだらハーミッチャンね。

プレミアにある最新パッチを当てたけど
速度はほとんど変わらなかった。
早く -xP オプションを試してみたい...
0864login:Penguin04/02/03 09:26ID:r050Aky7
複素数の対称行列(対称位置の要素の値が等しい)
「1 I とか 「I 1+I
I 1」 1+I 2」
複素数のエルミ-ト行列 (対称位置の要素は複素共役になっている.対角は実)
「1 -I
I 1」
0865login:Penguin04/02/04 12:49ID:v2Gz3VMd
ifcのバージョンによって計算結果が違うということを
発見した人いない?
0866login:Penguin04/02/04 18:30ID:Uh+JCxfw
ifortでGAMESSをcompするときに-nothreadsをつけないと
P4のsmp環境で変な値になって計算が終了してしまう。
0867login:Penguin04/02/04 21:08ID:v2Gz3VMd
>>866
それは良くある。シリアル計算で経験した人居ない?
特にifc7.0と7.1の差とかで。
0868login:Penguin04/02/04 23:41ID:x9P5bcIJ
>866、867
俺もifc7.0はSMP環境で自作コードでよくコケた覚えあり。
ifc7.1や8.0では今のところ問題は出ていないです。

バージョンの差で思い出したが
Linux版よりWin版の方が速いことが多い。
0869login:Penguin04/02/05 23:54ID:6NWo9Dvq
>>868
コンパイラの性能のせいだな。
0870login:Penguin04/02/11 16:59ID:SOp8ep6l
ifortですが
real(8) A(16384,16384)
でエラーになってしまいます。
配列のサイズを 2147483647 バイト以上に
とることはできないのでしょうか?
0871login:Penguin04/02/11 17:58ID:/3PgTqY3
>>870 はい。kernel-2.4の制限です。2.6にして、64bitCPUを使えってことだ
0872login:Penguin04/02/12 03:20ID:e8ytX48l
Ifc or ifortの自動並列化が上手く行かないので
OpenMPでプログラム書いているんだけど,イマイチしっくりこない.
Segmentation faultでコケる.
大体,シリアルのコードで-openmpのオプションを入れるだけで
Segmentation faultってのが悲しい...
一般的な原因って何?
0873login:Penguin04/02/12 05:59ID:/VNVhUc8
>>872
コンパイルオプションに"-MT" つけてる?
とりあえずコンパイルオプション熟読
・コンパイルの際に並列化前のプロファイルを用いている
とりあえずコンパイルの際にそのプロファイルを利用しないようにする
# 以下ついでに
・"parallel"の位置が変
妙なところにつけると、逐次処理する必要があるコードまで間違って並列化される
・初期化済みの変数に"private"を指定している
初期化された変数を並列化されたそれぞれのスレッドに個別に割り当てるには"first private"
・並列化の対象とするループの中身がおかしい
"private"にする必要がある場合は、必ず記述する。
ループ内で使用する変数をチェック。各スレッドが同じ共有変数に書き込んでいない?
並列化領域内で呼び出している関数をチェック。静的変数、etc

ホットスポットなら、関数の展開、変数のメモリ上の配置の考慮は重要
ループ内での条件分岐もできるだけ避ける。
for(i=0;i<last;i++)...をfor(i=last-1; i>=0; i--)...とかやると実行コード自体は短くなっても、
実際の処理速度は低下する可能性あり
ポインタのオナニー的乱用も最適化の障害となりうる
生兵法は怪我のもと!
自動並列化が手っ取り早いという人もいるけど、比較的単純なループしか自動並列化されない模様。
経験的にOpenMPなどを使って手動で並列化したほうが数倍の性能がでるし、気分的にもスッキリ。
また、コンパイラによる構文解析が不十分で、バグることもある。

# openmp文を指定してないなら必要ないと思うけど。とりあえず
# 大学の教員や学生だとこの辺、結構疎かったりするし
0874login:Penguin04/02/12 15:37ID:Evk0eIh9
>>871
やはりイタニュームにしなければダメなんでしょうか。
オプテロン+ifortで2Gの壁を越えられるのかな。
087587204/02/13 19:52ID:jUuueHLP
>>873
先生と呼んでいいですか?

配列で,動的割付けにしたら自動並列化(-parallel)の計算が出来た.
が,激オソ.ifc7もifc8も
Openmp化に挑戦するも,ホットスポットが複雑で並列化できていない.
firstprivateは勉強になりました>>873
087687504/02/16 20:45ID:NS7IhB+L
単純なループ(例えば1次元配列の1重ループ)なんかでも並列化されると,非常に遅くなる.
このあたりifcは並列化の判定って的確に行われていない気がする.
0877login:Penguin04/02/16 23:06ID:+xYbDhBU
>875
遅くなるでしょそりゃ。
単純なループなら、ifcでベクトル化効くでしょ、1CPUで。
それを、並列化すると、CPUやメモリが競合する。その辺のオーバヘッドを
吸収できるぐらいループが非常に長くないと並列化しても遅いよ。
単純なループだとメモリバンド幅が速度を決めてるから、2CPUで計算すると
1CPUあたりのメモリバンド幅はむしろ小さい。そして、そのオーバーヘッドが
あるからね。Xeon Dualじゃ2つのCPUがフルに動いたらメモリバンド幅は足らない。
世の中のPCクラスタがDualが多いのはコストの問題。本当はほとんどの人がXeonじゃなくて
Pen4の1CPUで組みたいはず。
と言うわけで、多くの場合並列化して速くなるのはメモリバンド幅がボトルネックに
ならないアルゴリズムかもしくは金に糸目をつけない高メモリバンド幅のベクトル機
です。
0878login:Penguin04/02/16 23:32ID:MjKToWaK
>単純なループなら、ifcでベクトル化効くでしょ、1CPUで

31段パイプラインのプレスコットでHTを切って使うのが最強ですか?
0879login:Penguin04/02/17 01:15ID:2WX86e6p
>>878
検証中だけどなんかぷれすこっと最強っぽ
088087604/02/17 02:08ID:M3p9TlaG
>>877
Intelのコンパイラは自動並列化の時に,並列化した方が速いか否かの
判定をやってないんじゃないかということです.
‘並列化できるところはすべて並列化’これじゃ自動並列化の意味はないよ.
088187704/02/17 07:10ID:DFESNBGH
>880
それはそうでしょ。
自動並列といってもコンパイラが、自分のシステム(CPUやメモリ)の速度を
考慮しながら並列化するほどインテリジェンスじゃないです。
088287704/02/17 07:27ID:DFESNBGH
補足
>‘並列化できるところはすべて並列化’
たぶんこれに近いことしてると思うよ。すべては言い過ぎかもしれないけど。
その辺の微妙なとことろはコンパイラのバージョンによりけりだから
いまいち好きじゃない。だから、自動並列化の意味はないよって意見に賛成です。
個人的には、MPIでプロセス並列のみにして計算部分は単純にするほうが速いと思う。
共有メモリでOpenMP、分散メモリでMPIのハイブリッド並列しても全部MPIより返って
遅くなることの方が多いし。OpenMPや自動並列の実装は、各社まだまだです。

088387604/02/18 00:59ID:SlIfMtFY
>>882
自動並列化のコンパイラ,ちゃんとしているところはちゃんとしていると思う.
NEC,IBM,自社専用のコンパイラだが.
PGIはどうなんだろう.x86系のコンパイラでがんばっている.
088487704/02/18 03:15ID:c50dLcC0
>883
私はスパコン系では、IBM以外のコンパイラをほとんど使用していますが、
まだまだなものが多いです。NECも。(マイナーバージョンアップで並列されないループ
ができてしまい、10倍近く遅くなった経験あり。
高々、マイナーバージョンアップで。。。。解決策は次のバージョンアップを待つしかなかった。)
ちなみに、NECの自動並列はOpenMPベースじゃないらしい。

自動並列やめて、OpenMPやMPIをガリガリ書こうよ。
その方が速い。ガリガリ並列を書く人を最近はほとんど見かけない。
0885login:Penguin04/02/19 00:31ID:zGWyY5IT
Noconaが64bit対応だそうですね。
ttp://japan.cnet.com/news/ent/story/0,2000047623,20064378,00.htm

私は計算屋のタマゴ以前な者で、今の認識(このスレで勉強させてもらいました)は
Intel(x86) → コンパイラ最高・メモリ空間小さいのが残念
AMD → 64bitCPUお手頃・コンパイラがイマイチなのが残念
てな感じなのでこのニュースは朗報と受け止めていますが、このスレの先生方は
どう感じてらっしゃるでしょうか?

ひょっとして数値計算に限ってはItaniumやPowerPCなんかのお大尽WSは用済みになる?
088687604/02/19 23:07ID:f+dLyAwK
>>884
NEC,SXシリーズの自動並列化コンパイラは評判が良いのだが・・・

>>885
私にとっちゃ,2005年の新しいCPUなんてまだ先の話.
今,何が良いのかが問題.
Pen4+Linux+ifcとOpteron+Linux+PGI
どっちのコストパフォーマンスが良いか?
私は前者.メモリの上限が実状2GBまでという問題も,
PCクラスタなので克服できる.
XeonはDualなので使いやすいが,FSB533でメモリバンド幅が狭いことが難点.
計算には向かないと思う.
088787704/02/20 01:15ID:1CBoErdx
>866
NEC SXの自動並列は844に書いたように良くないですよ。
ただ、自動並列の中では一番まともかもしれない。
私は、自動並列はその件があって以来、ほとんど使いません。
OpenMPやMPIで書いてます。がんばれば、自動並列よりも高速です(それが楽しいわけだが

私も前者ですね。安定性を取ります。そして、PC本体以上のお金をネットワークに
注ぎ込む。Infinibandかmyrinet、金が余りすぎていたらQsNetかな。
いずれにせよ、大規模クラスタはPC本体よりネットワークに金がかかる。
ギガビットイーサじゃ16台以上のクラスタでお話になりません。
0888login:Penguin04/02/20 17:31ID:II/TPAcB
IA-32e≒AMD64なのを知って、K8WとOpteronを衝動買いしてしまった。
ifcでコンパイルしたコードが高速に動きますように、な〜むぅ〜。
-O3 -xW -tpp7 でオッケーかしらん。
088987704/02/20 21:10ID:1CBoErdx
>888
暇があったら、-fast(-staticと-ipo)も付けてみてください。
さらに暇があったら、GCCでの結果も希望。
さらに金があったらPGIコンパイラでの結果を希望。
0890login:Penguin04/02/21 04:06ID:38g5+MVb
64bitOS上ではOpteronやItanium2が速いのはわかるけど、
32bitOSではどんな結果になるんだろ
ttp://www.spec.org/cpu2000/results/res2004q1/
089187604/02/21 14:30ID:8HsAQALQ
Prescott 3.2GhzとPen4 3.4(L2-512)で簡単な計算で比較したところ,
キャッシュミスしてしまうような計算だと2割ほど3.4Ghzの方が速く,
逆に,キャッシュミスしないような配列を取ると2割,Prescottの方が速い.

キャッシュミス版
Pen4 3.4Ghz  222.965Mflops
Prescott 3.2Ghz 181.81Mflops

キャッシュミス無し
Pen4 3.4Ghz 847.457Mflops
Prescott 3.2Ghz 1047.120Mflops
089287604/02/21 19:55ID:8HsAQALQ
おまけ.
himenoベンチ,small版でテスト.

Pen4 3.4Ghz 801.47 Mflops
Prescott 3.2Ghz 1494.31 Mflops

こんなに差が出るものなのか?
コンパイラはifc7で,オプションは,
-O3 -tpp7 -axW -Vaxlib -w -static
です.
089387704/02/21 23:08ID:jfxu6FCf
>891
おお!素晴らしい。姫野ベンチの比較ありがとうございます。
PC Wa○chに載ってる比較よりも、姫野ベンチの方がとっても参考になります。

Prescottはキャッシュが大きいのでキャッシュミス無しは速い。
逆に言うとキャッシュが大きくレイテンシが大きいので
キャッシュミスした時のペナルティも大きい。
予想通りですね。

089487704/02/21 23:11ID:jfxu6FCf
>892
himenoベンチは、キャッシュ容量が大きい方が有利なので
傾向は正しいけど、1.86倍も高速なのは驚きですね。クロックも低いのに。
プレスコット最適化オプション-xWNはどうですか?
また、姫野ベンチは-tpp6の方が速いです。
時間があったらトライしてみてください。
089587604/02/22 12:45ID:iR88Nu4w
>>894
確かにPrescottの-xNを使ってみたいところでしたが,残念ながら
2003年8月版のifc7.1でSSE3の対応していませんでした.
とりあえず,-tpp6で行った結果です.今回は,3.2XEも追加します.
オプションいずれも,-O3 -tpp6 -axW -xW -Vaxlib -static

[email protected] 992.42 Mflops
[email protected] 1464.85 Mflops
[email protected] 1046.39 Mflops

となりました.Himenoベンチは単精度計算なので,確かに-tpp6の方が速くなるのですが,
Prescottではほとんど変わらないのが興味深いです.
また[email protected]が遅すぎる感がします.L3-cacheとはいえ,2MBの本領が発揮されていない気がします.
089687704/02/22 13:05ID:E0CmsZKJ
>895様
早速のご報告ありがとうございます。
しかも、3.2XEまで付けてくださいまして。お金持ちなのですね。

3.2XEはあまり良くないですね。3.4GHzと比較してわずか50MFLOPSしか変わらない。
これで、5万以上の価格差があると考えてしまいます。L-3はレイテンシがかなり遅いんでしょうね、
Prescottの大容量L-2が1.4倍ものスコアを出しているのがそれを物語ってる気がします。
0897login:Penguin04/02/22 22:06ID:RIN1wHYB
ひさしぶりに intel からメールがきた。
icc8.0 を Debian/sid に入れた。

rpm がへんだ、という理由で、
install.sh が止まる。

rpm の deb はちゃんと入っているので、install.sh を変更。

- rpm -q rpm &> /dev/null
+ dpkg -s rpm &> /dev/null

- GLIBC="$(rpm -qa 2> /dev/null | grep '^glibc-[[:digit:]]' | cut -d'-' -f2)"
+ GLIBC="$(dpkg -l 2> /dev/null | grep '^glibc-[[:digit:]]' | cut -d'-' -f2)"

-DEFAULTOPTIONS='-U --replacefiles'
+DEFAULTOPTIONS='-Uvh --replacepkgs --replacefiles --nodeps'


gcc の "方言" が原因でコンパイルが止まることは、
もうほとんどないようだ。

xmame を
-xK -O3 -rcd -ipo -ipo_obj で
コンパイルしてみた。
とても速い。びっくり。
089887704/03/02 19:42ID:ZpErCZad
[email protected]版の検証の続報です.

himenobmtxp_s.fを悪名高きifc8で検証しました.
コンパイルオプション-NPを付加してみました.

-O3 -tpp7 -axWNP -Vaxlib -static
MFLOPS: 1478.510 time(s): 50.11000

となるのに対して,-tpp6にすると
-O3 -tpp6 -axWNP -Vaxlib -static
MFLOPS: 601.8895 time(s): 61.56000

と,とんでもない結果となる.(3回行ったが傾向は同じ)
恐るべし・・・
089987704/03/03 01:13ID:kXEuxeA0
>898
どうでもいいけど 877は私です。

-NP オプションの結果ありがとうございます。
すごいですね、この結果!

姫野ベンチにおいては
Prescott以前では、-ttp6の方が速かったのに、
Prescottでは、-tpp7の方が速い。

Pentium4オプションの-tpp7で速い、Prescottは真のPentium4ですね。

コンパイルオプションをもう少し頑張れば、1.5GFLOPS超えますね。
既にOperonがかなわない領域です。

ホントに恐るべしです!
-NPによるSSE3効果と、CPUが-tpp7を真に理解できている効果ですね。
0900login:Penguin04/03/05 05:12ID:Nw2Qktp7
うーむ、そのご Prescott & ifc/icc 8 -tpp7の報告が続かないのが怖いw
0901login:Penguin04/03/05 12:41ID:kgNxzR7r
ちょいと流れからはズレて恐縮ですが、、、
数値計算な皆様はどんなライブラリを使ってらっしゃるのでしょうか?
私は MKL+FFTW(既存のものとの互換用)+netlib みたいな体制ですが、
Absoft附属のIMSLみたく、suiteになっているのがちょっぴり羨しい今日この頃
# NAG高杉
0902login:Penguin04/03/05 20:35ID:xegoVzMG
>>900
続かないといわれても、姫野ベンチの報告はもうでてるわけだし。
各人のコードの結果を出してもあんまり参考にならないでしょ?
ちなみにわたすのコードもやっぱりPrescott+ifc8でずば抜けて速いでつ。
0903login:Penguin04/03/05 23:09ID:FPCPfxts
>902
おれんとこのコードではNorthWood比で5%くらいしか速くならなかった。
姫野ベンチだけの瞬間最大風速かと思ってたよ。

ちなみにPrescottでもifc7の方が速かった。
090487604/03/06 00:07ID:Z82muOUR
>>903

コードによって変わるのは当たり前のことだと思う.
要は自分のコードが速くなってくれるかどうかが一番重要なのよ.
ただ先人の評判を受けて,コードを見直すというのもまた賢いかも...
0905login:Penguin04/03/06 15:52ID:5qmKzvec
>>902
姫野ベンチ以外にもベンチは沢山あるし、
実用アプリケーションだって山ほどあるでしょ?

無いとは思うが、ifcが姫野ベンチチューニングした可能性だってあるわけだし(w

そういう意味で他の人の評価は知りたい
0906login:Penguin04/03/06 16:29ID:ElyP7wq7
おお、速いね。Lサイズもプリーズ。
SSE3の水平加算が効いてるのかな?
090787604/03/06 21:59ID:Z82muOUR
>>905
それは無いよ.
でもバイナリバージョンのが何でコンパイルされているか知ってる人いない?
absoftのものだとずっと思っているんだけど.勝手な想像で.
0908login:Penguin04/03/06 22:46ID:bRkosRDc
>>907
バイナリバージョンって姫野ベンチWINDOWS版の?
いまstringsしてみたけどCompaq Visual Fortranぽい
090990704/03/06 23:48ID:Z82muOUR
>>908
ムム.
言われてみれば,確かにソースファイルの方にも
Visual Fortran用のオプションがあったが・・・
Visual Fortranで試したんだけど,バイナリ版の値と違うことがあって違うと思ってしまった.
レス数が900を超えています。1000を超えると表示できなくなるよ。