intel compiler for Linux

このエントリーをはてなブックマークに追加
1login:Penguin

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 ページからダウンロードしてくるファイルが違うだけです。)

ダウンロードする際に入力したメールアドレスにインストール時に必要となる
ライセンスキー情報が送られてきます。
22:01/11/29 17:56 ID:u2JQMD7w
2get
3login:Penguin:01/11/29 17:56 ID:5k7yf0ai
---------------------------------- 説明開始------------------------------

例えばダウンロードして来たファイルが次のような名前であったとします。
(RedHat6.2 向けの例です)
# ls
cc010817rh62.tar
fc010821rh62.tar


STEP-1)
tarファイルを展開します。
( cc-work, fc-work は 実際には任意の作業用ディレクトリ名です。)

# mkdir cc-work
# (cd cc-work; tar xvf ../cc010817rh62.tar; )
# mkdir fc-work
# (cd fc-work; tar xvf ../fc010821rh62.tar; )

=========
STEP-2a)
ディレクトリ cc-work の下でスクリプト install を実行する。
# ( cd cc-work; ./install )
RPM shows no Intel packages as installed.
Which of the following would you like to install?
1. Intel(R) C++ Compiler for the Itanium(TM)-based applications, Version 5.0.1, Build 20010705
2. Intel(R) C++ Compiler for 32-bit applications, Version 5.0.1 Build 010730D0
3. Linux Application Debugger, Version 5.0.1, Build 20010720.
x. Exit.
指示に従って項目 2 のコンパイラを入れる。
たずねてくるディレクトリパスなどはデフォルトを選んでください。変えることもでき
ますが、その場合はあとの説明はそれに伴って多少変わります。
4login:Penguin:01/11/29 17:57 ID:5k7yf0ai

=========
STEP-2b)

同様にして ディレクトリ fc-work の下でスクリプト install を実行する。
# ( cd fc-work; ./install )
指示に従って項目 2、3の コンパイラ と デバッガ を入れる。
たずねてくるディレクトリパスなどはデフォルトを選ぶ。

ここまでが前準備です。

=======

STEP-3)
システムファイル /etc/ld.so.conf に次の一行を追加する。
――――――
/opt/intel/compiler50/ia32/lib
――――――
そして、ダイナミックリンクライブラリのキャッシュを再構築するために
/sbin/ldconfig を実行しておきます。このときにwarning が出ても、無視
してください。

STEP-4)
ダウンロード時に 書き込んだ連絡用Email アドレス宛に送られて来た
ライセンス設定情報をファイル l_for.lic , l_cpp.lic にいれて作り,
それをディレクトリ /opt/intel/licenses/ にコピーします。

注:ライセンスファイルの感じはたとえば l_for.lic だったら、

------------------ はじまり
License id: XXXXXXXXXXXXXXXXXX-X

FEATURE l_for intelpto 5.01 permanent uncounted HOSTID=ANY ck=XXX \
SN=NCORNC SIGN=XXXXXXXXXXXX
------------------ おわり

といったぐあいです。 (ライセンスのキーの番号は実際とは変えてあります。)
5login:Penguin:01/11/29 17:57 ID:5k7yf0ai

STEP-5)
次のようにして,シンボリックリンクを張ります。
(cd /usr; ln -s /opt/intel/compiler50 intel)


STEP-6)
コンパイラやデバッガを使いたいユーザーは各自のホームディレクトリの初期設定用
シェルスクリプトに次のような設定を入れておきます。
次の例は bash をシェルとして使う場合の $HOME/.bash_profile ファイルの場合です。

---------------
PATH=$PATH:/opt/intel/compiler50/ia32/bin
export PATH
LM_LICENSE_FILE=/opt/intel/licenses/l_cpp.lic:/opt/intel/licenses/l_for.lic
export LM_LICENSE_FILE
---------------

======
以上で、設定は終りです。
設定がうまくいっているかを試すために、一旦ログアウトしてからログインし、
(あるいはログアウトせずに
. $HOME/.bash_profile
を実行して環境変数をセットさせてもよい。)

テスト用に適当に作ったソースファイル a.c , a.f をコンパイルしたり
などしてみましょう。

# icc a.c
# ifc a.f

コンパイラの使いかたなどは次のようにすれば見ることができます。

# icc -help
# ifc -help

----------------------------------- 説明終り ------------------------------
6login:Penguin:01/11/29 17:59 ID:5k7yf0ai
御清聴ありがとう。それではHappyHacking!
7login:Penguin:01/11/29 18:34 ID:PuKXBXW9
宣伝?
8 :01/12/04 03:10 ID:fMxgF1K0
フォートラン90が無料で使えて嬉しいユーザーはいないのかな?
インテルやAMDのCPUの最適化コンパイラ(C++、Fortran)として
メーカー自身として相当に出来がよいコードが出ると思うのだけど。
もちろん金持ちなら、有料サポート版をダウンロードして100ドル
払って使えばよいんだけど。
9            :01/12/06 02:04 ID:tn79Zt8S
すまんフォートランもC++も100ドルではなくて
もっと高いらしい。無料版はお得だ。
10            :01/12/14 02:45 ID:Up+Fx3Ox
インテルのCPUを使っているユーザーなんてゴミみたいなもので、
誰も関心なんかないんだよ。
11login:Penguin:01/12/14 02:48 ID:XZsmMjBh
下手な煽りだな(藁
12   :02/01/12 16:22 ID:9PdOKLGW
age
13login:Penguin:02/01/12 17:14 ID:WmNIzC2/
これでKDEとか片っ端からコンパイルし直したら
動作早くなるの?
14login:Penguin:02/01/13 00:40 ID:xXzex+Lk
pgccよりはやい?
15login:Penguin:02/01/13 01:07 ID:w26vCzhJ
コンパイラオプション見ると、MMX命令を吐くとかSSE命令を吐くとか
細かく指定できるね。

だれかベンチマークとか取った人いないかな
16login:Penguin:02/01/13 02:00 ID:GjoeUszr
Pen3 600MHz で nbench すると↓な感じ。
コンパイルオプションは
icc: -O3 -tpp6 -axK -xK -static
gcc: -static -O3 -march=pentiumpro

C compiler : icc (unknown version)
libc : unknown version
MEMORY INDEX : 3.132
INTEGER INDEX : 2.163
FLOATING-POINT INDEX: 4.942

compiler : gcc version 2.95.4 20011006 (Debian prerelease)
libc : unknown version
MEMORY INDEX : 2.123
INTEGER INDEX : 1.902
FLOATING-POINT INDEX: 4.386
17login:Penguin:02/01/13 02:05 ID:GjoeUszr
おっと nbench のサイトを書き忘れた。
http://www.tux.org/~mayer/linux/results2.1.html
18login:Penguin:02/01/13 03:39 ID:xXzex+Lk
Pen3 700MHzで nbenchとやらをしてみる。
linux-2.4.17,glibc-2.2.4

gcc:
INTEGER INDEX : 12.402
FLOATING-POINT INDEX: 11.659
==
C compiler : gcc version 2.95.3 20010315 (release)
MEMORY INDEX : 3.166
INTEGER INDEX : 3.043
FLOATING-POINT INDEX: 6.466

pgcc:
INTEGER INDEX : 12.387
FLOATING-POINT INDEX: 11.159
==
C compiler : gcc-2.95.4 (unknown version)
MEMORY INDEX : 3.272
INTEGER INDEX : 2.962
FLOATING-POINT INDEX: 6.189

icc:
INTEGER INDEX : 14.146
FLOATING-POINT INDEX: 12.318
==
C compiler : icc (unknown version)
MEMORY INDEX : 4.260
INTEGER INDEX : 3.066
FLOATING-POINT INDEX: 6.832

==の上側はORIGINAL BYTEMARK RESULTSで下側はLINUX DATA BELOW


コンパイルオプションは
gcc,pgcc:
-s -static -O3 -fomit-frame-pointer -Wall -march=i686 -fforce-addr -fforce-mem -malign-loops=2 -malign-functions=2 -malign-jumps=2 -funroll-loops

icc:
-static -O3 -tpp6 -axKMi
19login:Penguin:02/01/13 04:10 ID:E8w4+80x
暗号関係のコードは、iccやはりかなり早くなるんだけど、俺が試した限りでは
iccでコンパイルしたOpenSSH(+OpenSSL)は落ちまくりで使いものにならな
かった。
20login:Penguin:02/01/13 04:17 ID:ZL7ol7tm
21login:Penguin:02/01/13 16:15 ID:lTcEUkeD
貴重な情報だ。
休み明けに試してみるよ。
f90がただだなんてうれしい。
22login:Penguin:02/01/13 16:47 ID:ZL7ol7tm
SunのForteよりはgcc用のコードのコンパイルしやすいね。
動かない事が結構あるのはForteと同じ。
23デフォルトの名無しさん:02/01/13 18:41 ID:8S0ngHZJ
>>22
いっている意味が分からない。
24login:Penguin:02/01/13 18:59 ID:E8w4+80x
ごめんな。
2523:02/01/13 19:03 ID:8S0ngHZJ
あ、わかった。gcc拡張を利用したコードを、ってことだな?
26login:Penguin:02/01/13 20:24 ID:E8w4+80x
>>25
そそ。あとお馬鹿なconfigureやMakefileをだます手間とか。
27login:Penguin:02/01/13 20:33 ID:E8w4+80x
誰かiccでmozillaコンパイルして漏れにクレage
28login:Penguin:02/01/13 20:56 ID:C6zTZ+z/
バイナリgetしたままrpmにするの忘れてました。
29               :02/01/13 21:53 ID:B/8pwAaq
Vine2.1.5でもRH6.2相当として動いた。
Debianでも動いた。
30login:Penguin:02/01/13 22:46 ID:Yar5iLcv
>>27
誰かiccでLAPACKコンパイルして漏れにクレsage

っていうか自分でやってみるヨ!!できたらレポするね!!
pen4使いならこういうのも
ttp://www.hpc.co.jp/IA-Dev/IADEV-ATLAS.htm
あるんだが…
31login:Penguin:02/01/14 03:20 ID:02BADL4c
どうだった?>30
3230:02/01/14 03:36 ID:MfJpktDa
>>31
取り敢えず手元にあったblaslapack(出どころ不明品)をifcで -O3 -tpp6 ぐらいで make
してみてこれまた手元にあったプログラムでDSYEVで100x100実対称行列
対角化してみたら激オソ。つか止まらん。
ちなみに同じ事をtitpackっていうのでもためしてみたが、-O3より-Oの方が
速かった。たぶんソースとニラメッコかつコンパイルオプション手探り
の可能性あり。
ただし行列の掛け算見たいな単純なDOループのを-O3 -tpp6 でやってみると
2倍高速化。

取り敢えず途中経過まで。
3332:02/01/14 03:59 ID:MfJpktDa
>>32
スマソ。これじゃ何言ってるか解らんな。
linux-2.4.16 ,glibc-2.2.4, RH7JベースでPen!!!800のSMP.
>2倍高速化
というのは g77 -O5 -mpentiumpro -march=pentiumpro -funroll-loops
との比。
今からlapackのソース見る気にならないのでまた次回
blasからじわじわ攻めていきます。
34login:Penguin:02/01/19 00:04 ID:9x31aMrp
blas,lapackとも無料でintelから
出てるね。math kernel library
(mkl)として。pgfortranのlapack
より2倍はやい(p4 rambusで)。
3533:02/01/19 00:55 ID:umOrHyJq
>>34
Σ(゚д゚lll)ガーン

そ、そなんですか…参考になります。
忙しくて全く手つけて無かったからダメージは小さいのですが(藁
36 :02/01/19 04:15 ID:EPNncPjO
Pentium4やXeonの為の最適化では、インテル社製のコンパイラに勝る
ものはいまのところないと思う。AMDとの差別化のために力入れている
ようであります。AMDはこういった面での総合的なサポートが無いのが
残念だ。GNUに金でも出して、AMDのCPU向けの最適化を入れてもらうとか、
64ビットCPU向けのコードも出せるようにすればいいのにね。
37login:Penguin:02/01/19 08:35 ID:CcBGA9H/
どーもな、Fortran のほうはたまに Pentium IV 最適化
すると internal error で落ちる。Pentium III にすれば
コンパイルはとおる。
ATLASはgccで十分っていうかソースがアセンブラみたいな感じやからな。
38login:Penguin:02/01/19 08:39 ID:CcBGA9H/
>>30
Lapack コンパイルしましたが。
なんかな、コンパイラの責任かどうかしらんが、
止まらないルーチンがある。今調査中。
複素数対角化だったっけルーチン名は失念。
g77 (gcc-2.95.3) だと一応結果は出たけど。
おりゃ不安定だと思ってるが。
39login:Penguin:02/01/19 09:06 ID:CcBGA9H/
>>38
ATLASをIntel Fotranから使うにはひと工夫必要。
というのもg77のオブジェクトと Intel Fortran のオブジェクト
は同時にリンクできないからだ。ってIntelの西都に
書いてあるんだけどね。
詳しくはttp://130.54.33.30/~maho/Computer/quantum_chemistry/Gaussian98_linux_ifc.html
対角化はそんなには速くならん気がするが。

4034:02/01/19 09:20 ID:9x31aMrp
lapackの問題はmklをintelのサイトからとってきて

LIBS= -L/opt/intel/mkl/lib/32 -lmkl_lapack -lmkl_p4 -L/usr/lib/ -lpthread

で解決したよ。mklのdocには書いてないけど、
/usr/lib/libpthread
をリンクしないと正常に動かない。
41login:Penguin:02/01/19 11:13 ID:/efnsvv4
>>40
試してみる前ですまぬがこれってintel fortranの
オブジェとリンクはできますよね。
マジ感謝してます。ありがとう!!!!!
mkl とってこないとだめかぁ。
がんばりまっす。
(私FreeBSD の方が好きだからできればFreeBSDでも
出してくれないかなぁ...)
42login:Penguin:02/01/19 11:20 ID:/efnsvv4
今ダウンしてる。ほんまに感謝してます。
しかしながらatlasの方が速いと聞くとちょっと
やっぱりなんちゅうかそちらの方を使いたくなりました。
しかし安定度が低い。
43login:Penguin:02/01/19 11:46 ID:/efnsvv4
>>34
今MKLでコンパイルやってます。
44login:Penguin:02/01/19 12:21 ID:0xxlGOpp
pen4,rambusではatlasよりもifc+mklの方が
早かったけど。今のところ、800x800の
複素エルミート行列の対角化の速さは

pgfortran+pgfortlanのliblapack,libblas<
g77+redhat7.1についてきた/usr/lib/のblas,lapack<
ifc+mkl

でした。g77とifcの差は微妙。atlasの効果は
あまりなかったのは、/usr/libに入ってた
lapack,blasが十分最適化されていたからと
思われ。
45login:Penguin:02/01/19 13:02 ID:/efnsvv4
>>44
これはすばらしい。
こっちは万単位の対角化ですわ。だからシビアなんですよね。
直接ではないけど。
とりあえず、atlasは結構バグっぽいんで使いたくない。
最近真面目にベンチは取っていないが g77 コンパイラフラグを
いろいろがんばればよいみたいなのを知って。gcc-3.0.xは
最適化は最近はどうなったかご存じですか?そもそもLapackとかでも
対角化はあまり最適化が効かないみたいですね。笑うのがg77で
最適化を全部取ってしまうと一桁以上計算時間がかかる。
pen4+rambusですか。すごいっすね。こっちはPenIIIなんすよ。
なんかデスクトップにあるようなしょうもないやつのほうがpenIVで、
今ならこっちが速かったりして :-)

アライメントの問題どうしてます?(すれちがいですまそ)

46login:Penguin:02/01/19 13:22 ID:9j0IMkFv
最適化のoptionはあまりまじめにいじって
ないんだけど、ifcだと
-O3 -tpp7
というようにcpuごとに最適化するのがありました。
pp7はpen4でpenIIIはpp6だったかな?
compaqの-tune ev67のようなものですね。

直接対角化でないというと、lanczosですか?

ところでアラインメントの問題とは?
47login:Penguin:02/01/19 13:51 ID:/efnsvv4
>>46
Davidson の対角化です。
僕も一応その程度ですが最適化のオプションはいじっています。
なぜかアドレスエラーが頻発するのであんまり高度にはしていません。
アラインメントは
ttp://quanta.synchem.kyoto-u.ac.jp/~maho/FreeBSD/FreeBSD_compiler.html
ですわ。前から指摘されたらしいが僕も偶然気がついた。
Linuxにもあって、fortranでもcommand line の
スタックはそのままアラインされるんで、問題はあると思う。
fortranやintel fortranだとどうなるんだろう?

そうそう先程atlasがバグっぽいといったがウソです。
すいません。MKLを使っても全く同じエラーが出た。
今最適化をすべてオフにして挑戦中。
48login:Penguin:02/01/19 13:52 ID:/efnsvv4
腹減ったのでめし食ってきます。
49login:Penguin:02/01/19 14:12 ID:/efnsvv4
カレー食ってきた。カレーくさいぞ。うおおおおお。
50login:Penguin:02/01/19 14:53 ID:umOrHyJq
pen3 で mkl使って実対称行列400x400対角化をやってみたけどg77とあまりかわらないよな…
pen4買えってことかな。このIntelの商売上手(とか言ってみる

ifcでモンテカルロ(Ising)やってみたらこっちはg77にくらべて1.5倍以上は出てる。
5144:02/01/19 15:30 ID:9hT/dXby
>>44 にも書いたけど、g77とredhat7.1に
ついてきたblas,lapackを使った結果は、
ifc+mklとほとんど一緒でした。プログラムに
よっては逆転するでしょう。
ここで自分の経験をまとめさせてください。

速い順に
ifc+mkl
≒g77+純正のlapack,blas
>pgfortran+pgfortranのlapack,blas
≒富士通のコンパイラ

ちなみにg77でもifcでも、自分でコンパイルした
lapack,blasは最適化をしたつもりでも
なかなかスピードが出ない。対角化などをしない
ときでも、内積や行列の積を含むときは必ず
/usr/lib/libblas.aかmklを使うべし。

g77ががんばってるからintelもただにしなければ
いけないんでしょうね。おかげでf90がただで
手に入るようになったわけでうれしいです。
52login:Penguin:02/01/19 15:48 ID:9hT/dXby
>>47
alignmentのリンク先、みました。2年位前に、
alpha 21264 + CFLAで行列計算をさせていたとき、
行列の大きさを大きめにとると、とたんに計算が
速くなったことがあり、不思議だなと
思ってたけど、このためかもしれませんね。
どうもありがとう。

しかしファイル名を1文字から8文字用意して
ベンチを取ってから走らせなきゃいけないのかあ。
5350:02/01/19 15:51 ID:umOrHyJq
失礼。pen3の場合今のところmklよりg77のほうが1.5倍速いです。

私も
>おかげでf90がただで手に入るようになったわけで
と言いたかったのですが…。
取り敢えず今まで通りvf90使っておきますか。

選択肢が増えたわけだからそれぞれの癖さえ掴めばいいのですかね。
54login:Penguin:02/01/19 17:03 ID:/efnsvv4
>>
基本的に4bytesのアラインだからやねんな。
mallocで取られるcとはちがい、fortranの場合は
大きな配列をスタティックにとってというはなしになるから
結構致命的になると思う。sbrkなんか使うなよなぁ。
訳解らん。
>>53
RH7.1 のgccってそんなに高速なんだ。知らなかった。
HPCのページを見てると不当にg77の評価が低くて、
かなりむかついた。それ以来あそこのデータは信用したくない。
というか、チューニングなんてマニアがごりごりやったやつと
何も考えずに組んだやつだったらそりゃちがうだろう。
どうせチップとか作ってるわけじゃないのにえらそうに。
なんだか嫌なやつらだ。
ま、ベンチとってくれてありがとう、とは思うけど。
55login:Penguin:02/01/19 17:06 ID:/efnsvv4
さらにg77も出てそんなに経っても無いのに。
あ、僕があおられているだけか。

ところでRHのBLASはコンパイルはそのままで
手は加わってないんだよね?なぜATLASより遅いんだろう?
あんまり知らないですが。知ってたら教えてください。

やっぱPenIVなんやろうな。
56login:Penguin:02/01/19 17:21 ID:umOrHyJq
>>54
Vine-2.0に(おまけで)付いてた富士通のフォートランはそのころのg77より
ずっと速かった覚えがあるけど、>>51 ではg77が速いって言ってるから、
多分g77の性能が上がったんだと思う。
あとそのころでもgccと富士通のCコンパイラとは互角の性能出てた。

もちろん計算の種類にもよるだろけど。
57login:Penguin:02/01/19 20:42 ID:T0M+fgYB
g77はgccのバージョンを
あげると急に速くなること
あるね。

p4のmklはSSE2に対応してる。
これとほぼ同じベンチを
red hat7.1についてくるblasが
たたき出す。自分でコンパイルした
blasはへたれ。>>55 さんは
自分でコンパイルしたのですか。
それとred hatは7.1っすか。

ppc2002でのカキコは疲れるな。
58login:Penguin:02/01/19 22:16 ID:CcBGA9H/
ふーむ、RH7.1付属のBlasはどーやってコンパイルしたか
分かるのでしょうか? 僕は FreeBSD or make を
そのままするんでよくわからないんです。
フラグは? レファレンスインプリメンテーションのコンパイル?
ううううーむ。ちょっと信じられない。
分かる範囲でよろしければ教えていただくとうれしいです。
59login:Penguin:02/01/19 22:33 ID:CcBGA9H/
やっぱ自分で調べた。
# rpm -ivh lapack-3.0-12.src.rpm
# cd /usr/src/redhat/SPECS/
# rpm -ba lapack.spec
でビルドするんやね。
コンパイルフラグは
-O2 -march=i386 -mcpu=i686 これだけか。
多くのパッチが当たっているがそんなに重要そうではない
感じがする。mkl と比較してそんなにスピードが出るのか。
不思議じゃ。研究が一段落したらifcでもやってみるわ。
lapackのパッチは参考にする。
60login:Penguin:02/01/19 22:41 ID:CcBGA9H/
g77は
/usr/bin/g77 -v
g77 version 2.96 20000731 (Red Hat Linux 7.1 2.96-98) (from FSF-g77 version 0.5.26 20000731 (Red Hat Linux 7.1 2.96-98))
Driving: /usr/bin/g77 -v -c -xf77-version /dev/null -xnone
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
GNU F77 version 2.96 20000731 (Red Hat Linux 7.1 2.96-98) (i386-redhat-linux) compiled by GNU C version 2.96 20000731 (Red Hat Linux 7.1 2.96-98).
GNU Fortran Front End version 0.5.26 20000731 (Red Hat Linux 7.1 2.96-98)
__G77_LIBF77_VERSION__: 0.5.26 20000731 (prerelease)
@(#)LIBF77 VERSION 19991115
__G77_LIBI77_VERSION__: 0.5.26 20000731 (prerelease)
@(#) LIBI77 VERSION pjw,dmg-mods 19991115
__G77_LIBU77_VERSION__: 0.5.26 20000731 (prerelease)
@(#) LIBU77 VERSION 19980709

こんな感じ。
61login:Penguin:02/01/19 22:51 ID:1EgeSYjk
>>59
blasに秘密がある気がするんだが。
62login:Penguin:02/01/19 23:02 ID:CcBGA9H/
どういう秘密?
バイナリでしか提供されていないわけないよね。
ソースを調べると、

# grep -i BLAS lapack-20010525.patch
diff -uNr LAPACK.orig/BLAS/TESTING/cblat2.f LAPACK/BLAS/TESTING/cblat2.f
--- LAPACK.orig/BLAS/TESTING/cblat2.f Thu Nov 4 14:23:26 1999
+++ LAPACK/BLAS/TESTING/cblat2.f Fri May 25 15:57:46 2001

こんなかんじだよ?ATLAS の Whaley はなぜこんなにがんばれる?
うおーなぜだー!死ぬ程しりたい。
ちょっと風呂入って来る。

63login:Penguin:02/01/19 23:11 ID:umOrHyJq
>>62
>>61 はただ lapack が blas を呼んでいる程度の意味だと思うが。
64login:Penguin:02/01/19 23:14 ID:X8kahLTF
ここはATLASスレですか?
65login:Penguin:02/01/19 23:19 ID:umOrHyJq
いや、lapackスレ。
ちなみに >>30 >>32 は漏れ。ちょっと責任感じてみたり…。
最初の目的は有名どころのコードをmakeしてみてicc ifc の癖掴もうと思ってたんだが…
66login:Penguin:02/01/19 23:26 ID:CcBGA9H/
まだ風呂にははいっておらぬ。
すまぬ。Intel Compiler スレだ。
しかしながら、icc, ifc は最適化に優れていると聞くが
どの程度なのかはコードの実行スピードを見ない限り分からないではないか。
とりあえず、BLAS, LAPACK は、数値計算ライブラリとして重要な
位置を占めておる。それらの最適化はそれこそ我々の飯の種なのだ。
ということで、ちとマニアックな話+ifc に関係ない話をするかも
しれないが、やはりifcの性能は気になっておるんだ。
まぁ結論はなかなか出ないと思うがきいてやっておくれ。
67login:Penguin:02/01/19 23:33 ID:CcBGA9H/
さっきの srpm からのビルドのログを見ると

+ cp -f /usr/src/redhat/SOURCES/Makefile.blas BLAS/SRC/Makefile
+ cp -f /usr/src/redhat/SOURCES/Makefile.lapack SRC/Makefile
...
f77 -O2 -march=i386 -mcpu=i686 -c -o dgbmv.o dgbmv.f
f77 -O2 -march=i386 -mcpu=i686 -c -o dgemm.o dgemm.f
f77 -O2 -march=i386 -mcpu=i686 -c -o dgemv.o dgemv.f
...書き込み中: /usr/src/redhat/SRPMS/lapack-3.0-12.src.rpm
書き込み中: /usr/src/redhat/RPMS/i386/lapack-3.0-12.i386.rpm
書き込み中: /usr/src/redhat/RPMS/i386/blas-3.0-12.i386.rpm
書き込み中: /usr/src/redhat/RPMS/i386/blas-man-3.0-12.i386.rpm
書き込み中: /usr/src/redhat/RPMS/i386/lapack-man-3.0-12.i386.rpm

てな感じです。
たぶんblasはそのままだと思う。
6834=40=44=57=61:02/01/19 23:51 ID:pz4lxlEr
自分のプログラム(行列の積、Gram-Schmidtの直交化、対角化など)
では、redhatについてくる/usr/lib/libblas,liblapackを使ったのと、
自分でblas,lapackをコンパイルしたので、前者のほうがかなり
パフォーマンスがいい。それでもって、ifc+mklだと
/usr/lib/libblas,/usr/lib/liblapackを使ったのとおなじくらい。
ifc+mklはblas、lapackを最適化してるらしいので
ttp://www.intel.com/software/products/mkl/mkl51w/mklspecs.htm
redhatの/usr/lib/のblas,lapackもいい線いってると思ったんです。
前にも書いたけど、pen4 +rambus 512MB+redhat 7.1。
6968:02/01/20 00:01 ID:tTEZ7bJ8
>>67
そうですか。私のblas、lapackのmakeの
仕方が悪い(-march=i386 -mcpu=i686というオプションを
つけてないと思います)のかもしれませんね。
lapackを自分でmakeしたときnetlibの
汎用のを使いましたが、もっとintel系のlinuxに
適したものなのかな?
とりあえず、g77,pgfortran,ifcでやってみて一番
速いのを流すという方針がいいんですかね。
7065:02/01/20 00:16 ID:248hne5/
>>69
そですね。各コンパイラでコンパイルオプション適当に振って、
一番できのいいのを探して、それを使うのが結果として時間の
節約かも知れませんね。

ところで少し気になることは、ifcで、blasやlapackのように相当作り込まれ
たコードをコンパイルしてもそれほど効果無いようなのですが、自前の
ヘボコードなどをコンパイルすると2倍程高速化しているような気がします。

僕の場合はまず自分の腕を上げることのほうが先のようです…トホホ

71login:Penguin:02/01/20 00:25 ID:5whqLm3T
風呂からあがってきました。
>>70
研究者の方ですか? そうやったら別にいいのでは。可読性のほうが
重要ですよ。二倍程度の高速化やったらコンパイラに任せた
ほうがいいかも知れませんよ。頭の体操にはいいかもしれませんが。
>>69
いろいろ流し直すのって面倒じゃないですか。だから噂程度で
ifc 万歳とか思ってたんですが、g77もがんばるわけですねぇ。
ううーむ。
7269:02/01/20 08:43 ID:K/B4TT8A
自分の計算は数カ月単位の
シミュレーションなんで、
結果がでてくる時間がオプション、
コンパイラで大分違うんです。
前にalpha 21264 で、手製の
lapack-blasをcxmlに変えたら
劇的に加速したこともあり、
以来、色々と試すことにしてます。
73login:Penguin:02/01/20 11:39 ID:5whqLm3T
>>69
アラインメントは?
2ヵ月と4ヵ月では全然違いますよね。
7469:02/01/20 13:32 ID:0V/4SmC4
>>73
4月と2月で違うのって、
nelibのlapackですか。
もっと古いかも。そんなに
違うと思ってなかったんで、
無理に最新にしてなかった。
機能までアラインメントも気にして
なかったし。まだまだ、
やること、ありそうです。
75login:Penguin:02/01/20 15:33 ID:5whqLm3T
>>74
すんません。数ヵ月単位のジョブと言うと2ヵ月が4
ヵ月というのが全然違うということです。
アラインメントは重要です。PentiumIVならもっと
違うかも知れません。Intel の compiler ならそういうのを
しれっとやりそうですが。
7674:02/01/20 15:45 ID:Zx6TOajk
>>75
ちゃんと2ヶ月、4ヶ月とかいてありましたね。
PDAから見てたもので、読み方が荒かったです。
もうしわけありません。

昨日、この板でアラインメンとを知って、
びっくりしてるところです。そういえば
思い当たるふしもあったので。それと、
今までのベンチマークは
time ./a_g77.out
time ./a_pgf77.out
time ./a_ifc_lapack.out
time ./a_cfla_O5.out
というようにコンパイラ、コンパイルオプション
ごとに、実行ファイル名を変えていたのですが、
これはまずいですね。月曜日から、いろいろと
することがありそうです。
7776:02/01/20 16:12 ID:Zx6TOajk
自宅からsshして試してみたところ、
g77,ifcはファイル名を変えても実行速度が
あまり変わりませんでしたが、pgfortran
は16%ほど、速いファイル名とそうでない
ファイル名と分類できてしまいました。
g77はf90に対応してないので、f90は
仕方なくpgf90でやってましたが、
これからはifc,pgf90の両方で試し、
かつ、ファイル名をいろいろと変えて
走らせることにします。
幸い、自分の今の計算は長い計算を
一回というのでなく、反復計算が
多いので、このファイル名を変えるというのが
実現可能です。
78login:Penguin:02/01/20 16:23 ID:5whqLm3T
>>77
なんだか混乱させるようで悪いですけど。問題は
ファイル名だけではないのです。スタックのアラインメントの
問題だから、シェルの種類やもしかしたらコンディションで
変化するかも知れないのです。詳しくは僕も分かりませんが、
シェルが子プロセスを走らせるときのアラインメントが違えば
ファイル名だけで対処することはできません。
LinuxとFreeBSDだと微妙にアラインメントのブレは違うのですが、
これまた大きな問題です。Cの場合は適当にスタックを
変化させるように最初にいれておけば問題は無いですが、
Fortranの場合はどうしたらいいもんか?
いろいろがんばってみましたが、FreeBSDはカーネルパッチ
があって、なんとかコミットされたらと思いましたが
コミットされる前にページ毎消えちゃいました。

はぁー。
79login:Penguin:02/01/20 16:31 ID:5whqLm3T
>>77
とりあえずこのスレの僕の書き込みでURL示してるのがあるので
ちょっと見てみてください。
80login:Penguin:02/01/20 17:31 ID:C3Sbw68k
>>47のリンク先ですね。
実行するごとに微妙(0.2 秒)
くらい、実行時間が変わるのは
環境のためでしたか。
一つ分からないのですが、
ファイル名を1文字、2文字、、、、と
8通り作ると、pgfortでは実行
時間が15秒と18秒のものに
きれいに分かれるんです。
もちろん、コンマ1、2秒の
誤差はありますが。
g77, ifcでは10秒なので、
pgfortの最適化があまいのは
明らかなのですが。ちなみに
実行時間の測定は2回ずつ
行ないました。
81login:Penguin:02/01/20 21:00 ID:5whqLm3T
i386 gcc には 最近から
-mpreferred-stack-boundary
ってオプションがあるんですが、gcc-2.95.3 では効かなかったんですよ。
最近のRHは効いているのかも知れません。ちょっと真面目にチェックする
必要ありですね。
82login:Penguin:02/01/22 01:09 ID:bDfE+epr
アラインメントなんて知らなかった。
明日ifcで試してみよう。
(((( ;゚Д゚)))ガクガクブルブル
83login:Penguin:02/01/22 20:53 ID:wJXZKWBH
>>82
たぶんこれはIFCでは直ってるはず。
というかアセンブラのソース見るわ。
なんだかあおってすまん。
84  :02/01/29 23:03 ID:PECJA2Mi
商品版(高い!)と無料DL版との違いはどこにあるの?
85login:Penguin:02/02/03 18:11 ID:lkEkFcBp
商品版なんてあったのか。
知らなかった。
86login:Penguin:02/02/04 21:30 ID:B2i7yVMD
バグ多くないか?IFCは -tpp7 をつけると
すぐ Internal error が起こる。cast がうまくいかんことないか?
integer*8 で I=iargc() が変な値が返ってくる。
call exitで出られないことはないか(c の wrapperを書きました)。
あーGNUに統合しやがれ!
87   :02/02/08 17:20 ID:sam3w5OZ
>>86
CPUは何を使っているの?
88login:Penguin:02/02/08 19:01 ID:MfBFWerp
Pentium III で IV の最適化をしてはまってました。
iargcはInteger*4を仮定するのです。
89   :02/02/10 13:05 ID:f9cX/woZ
Athlon Thunderbirdで、PentiumIV用のコードを実行させようとすると、
結果がめちゃくちゃ。まああたりまえだけどね。
90   :02/02/13 23:45 ID:8/27EbsI
ただ、ただなのは、まだテスト中の製品だったりするからだったから
じゃないのかが不安だ。将来は無料版はなくなるのではないか?
91login:Penguin:02/02/14 08:21 ID:qBCCIPAv
g77とか違うコンパイラやマシンで結果が一致するか調べたら
ええんとちゃうか。出来ればGNUに統合されて欲しい。

92   :02/02/16 01:17 ID:P37gR3ZU
インテルが商品であるICCとかIFCのソースを公開するかなぁ?
93名無しさん@Emacs:02/02/17 07:24 ID:PId1GyBh
コンパイラをGPLにしたとして
それで失う利益よりもPentiumの売上が増える効果のほうが大きければ、
ビジネスとして正しい選択技でしょ。
94名無しさん@XEmacs:02/02/18 01:58 ID:iYWvirB6
>>93
Intelに正座して聞かせたい
95login:Penguin:02/02/18 12:42 ID:X/HQdXYC
>>93
そのうち g++,g77 が icc, ifc より高速になるYO!
96login:Penguin:02/02/19 10:30 ID:ygRZQp1y
ifc では2G以上のファイルをかけないな。
確認した。gaussian でかけているのはCのサポート関数の
おかげ。
Program FileO
Real*8 X(16*1024*1024)
do i=1, 16*1024*1024
X(i)=1.0D0
end do
open(1,File='fileout.data',status='unknown',
1 form='unformatted')
write(6,*)'Open OK--->fileout.data'
do i=1,1024
if(mod(i,10).eq.0) write(6,*)i
write(1)X
end do
end
Input/Output Error 161: Write operation failed

In Procedure: main program
At Line: 11

Statement: Unformatted WRITE
Unit: 1
Connected To: fileout.data
Form: Unformatted
Access: Sequential
Records Read : 0
Records Written: 15

End of diagnostics

ちなみにgccだとgcc-3.1(experimental,2002-2-2)
は少なくともそうはならない(FreeBSDで確認)。
97login:Penguin:02/02/19 13:18 ID:wHR25Yfq
>>95
正直、それは無理じゃね?
98login:Penguin:02/03/08 09:38 ID:0oVxicVH
age
99login:Penguin:02/03/16 20:17 ID:jeTKf9Ot
Intel Fortran 6.0 beta が出るらしいな。
いつになるかわからんけど。
100login:Penguin:02/03/17 16:27 ID:Y0L5kwur
>>99
4月はじめには正式版出荷。
101login:Penguin:02/04/01 23:00 ID:MIY3lWi0
>>100
というわけで4/1にはりこんでみたがまだだった(当然か)。
102login:Penguin:02/04/01 23:56 ID:4KjWNtlY
gccってしょぼくねぇ?
最適化とかにはあんまこだわってないのか?
103名無しさん@お腹いっぱい。:02/04/02 00:41 ID:BCv0vzPu
こだわっているのは、CPUサポートと言語サポートなんじゃないの?
104login:Penguin:02/04/02 01:21 ID:uU1FqcA5
>>102
ふつーに「カナディアンクロスコンパイル」できるのって、gccくらい
でわ?
# XってプラットホームでYで動くZ用クロスコンパイラ作ることね
# <カナディアンクロス
# Linuxで、MinGW/gccコンパイルして、Winのダイアログをコンパイル
# できたときは、ちょっと感動した。(カナディアンじゃないけど)

どこぞで、「おかげでプロセッサに特化した最適化は遅れがち」って
書いてあったぞ。まぁ、だからegcsとかも出てきたり。
でも、「とりあえず、gccは動くだろ」って安心感は、デカイよな。
HP-UXをたまに使うから、つくづく思う。
そーいや、「WindowsでLinuxカーネルコンパイル」とかも理屈上は
できるハズだな。だれか挑戦しない?
105login:Penguin:02/04/02 14:46 ID:j7gY85GQ
「カナディアンクロスコンパイル」って
プロレス技みたいだな。なぜカナダ?
106login:Penguin:02/04/02 22:10 ID:qqpoU7Yo
GCCはたいていの環境で動いているからGCCよりレベルの低いコンパイラは無く
なる方向になる。とするとGCCが最低レベルのコンパイラになるよな。
# GCCにはコンパイル速度のほうをもっと頑張ってほしい。インライン関数と
# かテンプレートとかたくさん使うと使うとやってられない。
107名無しさん@お腹いっぱい。:02/04/02 23:23 ID:BCv0vzPu
>>106
全てのコンパイラを全順序に押し込むわけ?
108login:Penguin:02/04/03 00:51 ID:aLlZ/CTX
GNU Autoconf/Automake/Libtoolより
「『カナディアンクロス』の名前は、3つの異なる種類のシステムが
つかわれているような、最も複雑なケースに由来しています。その
ような問題が顕在かしてきた当時、カナダには3つの国民政党があった
ので、このように呼ばれることになりました。」
だそーだ。cygnus用語かな?
109login:Penguin:02/04/03 05:21 ID:2DUVTyBB
>>106
ifcで-O2 -tpp7とかやってみ。g77の数倍は時間かかるぞ。
110login:Penguin:02/04/03 23:15 ID:FRqVmuPz
uni 板で mozilla を FreeBSD+icc でコンパイルしようとして
失敗しとるヤシがいる。
# http://pc.2ch.net/test/read.cgi/unix/1012057979/l50

Liunx+icc で mozilla をコンパイルした人いる?
111login:Penguin:02/04/04 00:16 ID:b5ogLD4j
XFree86をコンパイルしようとしたけど
なぜかプリプロセッサがビミョーにちがうのか、エラーになってしまう
(昔のことだから、メッセージ残ってないしスマソ)

あとオプション変える必要あったりな。
-fPICは-kpicに、-Wl,rpathは知らんのでリンクだけはgccで...
でも前述のエラーとかでできなかった(へたれ)
112login:Penguin:02/04/04 01:45 ID:b8zl9fsb
漏れはsnesを…インラインガセンブリ…
113login:Penguin:02/04/19 01:13 ID:c5m+sLvD
☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) <  早くしてよね > 6.0
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |

114login:Penguin:02/04/25 13:03 ID:s0tjalkG
Intel Fortran Compiler 6.0でてるぜ!
でてるぜ!
check it out!!!
115 :02/04/25 16:54 ID:hRAttTY0
なぜか、Non-Commercial Unsupported Software 版
(サポートなしの無料版)は、Fortran も
C++ も、バージョン6.0はダウンロードできないよ。ダウンロード
するリンク自体がいくらさがして発見できない。
(Web でユーザー登録とかをしてみてもだめ)
116login:Penguin:02/04/25 17:20 ID:s0tjalkG
いまできてるよ! Form がおかしいときあるよね。
web で登録した後、メールは来た? そこにURLかいてあるよ。
http://developer.intel.com/software/products/compilers/downloads/l_fc_p_6.0.140.htm
117login:Penguin:02/04/26 11:09 ID:ybIjNGS+
118login:Penguin:02/04/26 11:52 ID:pSUh8qyn
XEONお持ちの方自動並列化のレポートキボンヌ
1196.0のインストール法:02/04/26 12:38 ID:ybIjNGS+
既に、インテルのウェブサイトにいって、サポート無しの無量版をメールによ
るライセンスファイルを入手し、バイナリもダウンロードし,入手してあると
する。(カーネルのバージョンなどによっては、だめな場合がありうるので対
応を確認しよう。)以下はインテルのC++とF90を両方入れる場合の説明に
なっている。
その1) 作業場所(以下の説明で$WORKとしよう)を用意して、そこに
l_cc_p_6.0.139.tar l_fc_p_6.0.140.tar を入れる。
展開するための場所を$WORKのしたに作る。
# mkdir l_cc_p_6.0 ; mkdir l_fc_p_6.0
tar アーカイブ を,それぞれの下で展開する。
# (cd l_cc_p_6.0; tar xvf ../l_cc_p_6.0.139.tar )
# (cd l_fc_p_6.0; tar xvf ../l_fc_p_6.0.140.tar )
それぞれの下でインストールスクリプトを実行する。
# (cd l_cc_p_6.0; ./install )
# (cd l_fc_p_6.0; ./install )
それぞれのインストールスクリプトでの応対を適切にする。
IAー32かどうかの撰択、コンパイラとデバッガのどちらを入れるか。
(どちらを先に入れても問題ない。どうせあとでもどってくる。)
いろいろと答えていくが、/opt/intel 以下が標準インストール場所
らしいので、特にそれでも問題なければ、それをそのまま撰ぶ。
rpm のインストールオプションも同様。
コンパイラとデバッガを各々入れたらOK。
(途中でKTERMの画面の標示の白黒反転が狂うのが欝。)
その2) ディレクトリー /opt/intel/licenses/ に、メールに添附されてきた
ライセンスファイルをコピーする。(xxxxxxxx,yyyyyyyy は数字)
# cp l_cpp_xxxxxxxx.lic /opt/intel/licenses
# cp l_for_yyyyyyyy.lic /opt/intel/licenses
その3) $HOME/.bashrc にコマンドサーチパスを追加するためにつぎの行を加える。
---------------
PATH=$PATH:/opt/intel/compiler60/ia32/bin ; export PATH
---------------
上の設定をすぐにいかしたいときは
# source ~/.bashrc
としておく。
INTEL FORTRAN を使う場合には、シェアードライブラリーを実行時にリンクするために、
----------------
LD_RUN_PATH=/opt/intel/compiler60/ia32/lib ; export LD_RUN_PATH
----------------
も付け加えておく。上の設定をすぐにいかしたいときは
# source ~/.bashrc
としておく。あるいは、/etc/ld.so.conf に一行
/opt/intel/compiler60/ia32/lib
を追加し、 設定をすぐに生かしたいなら
# /sbin/ldconfig
を実行しておく。
その4) コンパイラがうごくかどうかは、
# icc a.c; ./a.out
# ifc a.f; ./a.out
などにより確かめること。
# icc -help
# ifc -help
などにより、簡単な使い方が分かる。
以上終り)

120login:Penguin:02/04/26 14:45 ID:9G9h10f6
隊長!Debian potatoにはインストールできません
121login:Penguin:02/04/27 13:16 ID:l7/+TGKw
>>116,117,119
どうも情報、ありがとうございます。てなわけで
取りに行こうとしたんですが、

https://shale.intel.com/registrationcenter/register.asp

が落ちているのか、つながりませんのでライセンスファイルを
もらえなくて欲求不満です。

それと、みなさん、pgplotってライブラリ、使ってます?
なんかifcだとうまくコンパイルできないんですが。
122login:Penguin:02/05/09 00:58 ID:mt4hx9Cg
>>210
超亀レスだが、alienパッケージを入れたあとに普通にinstallスクリプトで
インストールってことが5.0では出来たんだけど、6,0では出来なくなっている?
123login:Penguin:02/05/09 18:28 ID:usKCh3+Y
で、結局6.0は5.0と比べてどーなのよ?
速くなっているの?
124login:Penguin:02/05/10 00:38 ID:S+u2Lx1o
俺Linuxで数値計算するから勢い込んで導入! って思ったらそんなに速く
ないみたいね、ここ読んだ限りでは。NDA 問題ないから速いかと思ったのに。
そのうち気が向いたらにしよっと。
125login:Penguin:02/05/10 06:52 ID:AeDox/td
>>124
君がどんな計算しているのかちょっとわからないけど、
僕の環境ではPentiumIII@1GでAlpha 21264@500MHzとだいたい
同じパフォーマンスだったよ。Pentium4@2Gならもっと高速です。
僕らはpentium4は持ってませんが。また使ってみてください。
数値計算はチューニングが必須です。
126login:Penguin:02/05/10 07:59 ID:p++nUXag
>>122
5.0なら問題ないんですけど、6.0の場合はpotatoのRPMのバージョンが
古すぎるのでalienすらできないですね。
d-uに困ってた人居ましたけど、woodyへdist-upgrade必須ではないかと。

>>125
うちの計算もそんな感じです。ほとんどFFTでできてるようなプログラムです。
あと6.0の目玉機能は自動並列化だと思ってたんですが、試す環境にないのが
非常に残念。
127login:Penguin:02/05/10 09:30 ID:up11SU+x
intel自身が作っている計算ライブラリーも使えば、高度な
パフォーマンスが得られる場合があるだろう。ダウンロード
してみたらどう?
128124:02/05/10 09:32 ID:S+u2Lx1o
>>125 サンクス。俺はFPU intensiveな対角化とか分子動力学とか。
今までgccでintelも使ってたけど、alphaには全く太刀打ちできなかった。
けどその話聞くと結構速いみたいね。またintel純正のコンパイラーで
がんばってみるか。
129login:Penguin:02/05/13 11:23 ID:9l4vLaBH
>>127
これはMKLのことですか。BlasとLapackを配布していますが、
PentiumIIIではMKLが少し高速です。しかし、Pentium4では
atlasが高速でした。Lapackはよく知りません。
>>128
メモリのバンド幅はあげたほうがいいでしょう。
130plamoユーザ:02/05/13 11:45 ID:c5nvN02Z
intelのコンパイラって、rpmでないとインストール出来ないんでしょうか?
slackwareとかplamoのような非rpmなディストリビューションで動かしている
方いらっしゃいますか?

131login:Penguin:02/05/13 12:33 ID:YDaaODKg
>>130
SlackやPlamoにrpmコマンドを入れればよかろうが。
ゴルァ!
132plamoユーザ:02/05/13 13:18 ID:c5nvN02Z
>>131
そりゃそーなんだけどね。rpm-2.5.1をいれたら「これじゃ旧い」って
怒られるし、rpm-4.0を入れようとしたらライブラリが足らんって言われて
コンパイル通らんし。で、他に方法無いんかなと思って。
地道にやります。失礼しました。
133login:Penguin:02/05/13 13:28 ID:9l4vLaBH
僕はFreeBSDな人なんですが、rpm2cpioとかいうのを
使って展開していますね。
134plamoユーザ:02/05/13 18:05 ID:c5nvN02Z
>>133
お蔭様で、あっさり動きました。快適です。
有難うございました。
135 :02/05/14 01:52 ID:IZxJRGuk
Pentium4のマシンを買うならば、絶対にメモリーの種類が
RDRAMのものを買うべし、買うべし。
136正直alphaの大メモリ機は高スギ:02/05/14 04:21 ID:XDFbjSgq
ややスレ違いですが、
xeonマシンだとメモリ8Gとか16G積んでる奴ありますよね。
32bitマシンだと2Gだか4Gだかにメモリの壁があるとどこかで聞いた
覚えがあるのですが、このメモリは単一の計算でめいっぱい使いきれる
のでしょうか?
普通に巨大計算できるのか、並列化しないとできないのかご存知の方
いらっしゃいません?

ちなみにifc6.0用のdebianパッケージがここに置いてありました。
http://www.gfd-dennou.org/arch/cc-env/ifc/
137login:Penguin:02/05/14 05:13 ID:XO5C21R+
>>136
Pentium Pro以降のCPUにはPAEというアドレス変換機構がついて
いるので、64GBまでは扱えます。ただし、チップセットの制限に
引きずられますが。あと、変換のオーバヘッドがあるので、
パフォーマンスも悪化します。
Linuxでもこの機能はサポートされてます。

たぶん単一の計算でめいっぱい確保できるでしょう。
138login:Penguin:02/05/14 05:47 ID:XDFbjSgq
パフォーマンスの低下がどの程度か気になりますが、大規模計算は
できるのですね。参考になりました。
139login:Penguin:02/05/14 06:10 ID:XO5C21R+
しかし、この手の使い方なら実績あるSolaris8とかが良いかと思われ
140login:Penguin:02/05/15 05:38 ID:gSF91Ka8
>>137,138
大規模計算をやっている人ならばFortranな人が多いと思います。
sizeof(integer)=8 でないと困るように思いますが、ifcはPentium4
SSE2で64bit integer扱えるはずですが、-tpp7でも
でもそういうコードは吐かなかったです。僕が間違えた可能性は
高いですが。
AMDのx64や、Intel も IA-64 以外にもPentiumの64bit
拡張を考えているようですね。
ではでは。
141login:Penguin:02/05/16 05:17 ID:GYM8ysqy
5.0まではAMDのAthlonThunderbirdでFortranコンパイラがちゃんと
作動しましたが、どうやら6.0からは、Athlon上のLinuxでは
コンパイラが動きません。セグメントエラーなどが起きる。
142login:Penguin:02/05/16 06:41 ID:5yZwyBjV
マジデスカ?
143login:Penguin:02/05/19 22:26 ID:TA85Te6I
>>141
おかしいなと思っていたら、本日マシンはお亡くなりになって
しまいました。M.B.か、CPUがいかれていて、BIOS画面すら起動
しなくなってしまった。
144login:Penguin:02/05/23 01:52 ID:MUEwqJ2X
icc 6.0試してみました。Pentium4上でgccとの最も大きな違いはmath関数
にあるようです。expやsin,cosはgccの10倍以上の速度でした。

しかし、ベクトル化はコンパイラの条件が厳しくてほとんどされないし、
されても加速は2倍行かないですね。やっぱり、ベクトル型スパコンとは
違うんだと思いました。


145 :02/05/24 02:38 ID:8A5lq9k5
Pentium4用にはどんなコンパイルオプションを使えばもっとも速い
コードがでますかね。
146login:Penguin:02/05/25 19:50 ID:7ZkaIBTb
>>144
にわかには信じられん。exp, sin, cos は数値演算プロセッサに渡している
だけだと考えられる。gcc側はへんなライブラリをかませているのか?
147 :02/05/26 02:34 ID:7Wq7WMOb
組み込み関数としてインライン展開されたり、MMX命令の類をつかって
いたりするのかもね。パイプライン化に最適なコードを出しているのが
効くのかも。インテルのMATHライブラリーはすごく最適化していると
思う。
148login:Penguin:02/05/26 06:59 ID:yJVR8li1
>>147
なるほど!
149login:Penguin:02/05/26 10:25 ID:yJVR8li1
>>146
やっぱりよーわからん。多分インライン展開はgccでもやっとると思うが。
あー頭イテ。
150login:Penguin:02/05/26 10:28 ID:4fUXbWUZ
>>146
コプロの命令は死ぬ程おそいんだYO
151名無しさん@お腹いっぱい。:02/05/26 11:49 ID:ALTTjrt3
つーか、誰か-Sで調べてくれよ。
152login:Penguin:02/05/26 14:04 ID:kDtJ2VZ7
>>119
> (途中でKTERMの画面の標示の白黒反転が狂うのが欝。)
Vineのftpに解決法が載っていたような。moreがどうとか…
rxvtとかではならんらしいです。
153名無しさん@お腹いっぱい。:02/05/26 19:53 ID:ALTTjrt3
激しくスレ違いだけど、>>119の報告に応えると言うことで、

file:///usr/share/doc/xterm/xterm.faq.html#xterm_hiliteより、

Reverse video is not reset

When running less or other programs that do highlighting, you see the
highlighting not turned off properly.

This may be due to incompatible terminal descriptions for xterm. With XFree86
3.2, I modified the terminal description for XFree86 xterm to use the VT220
(aka ISO 6429) controls that allow an application to turn off highlighting (or
bold, underline) without modifying the other attributes. The X Consortium xterm
does not recognize these controls.

If, for example, you are running an older xterm and rlogin to a system where
the newer xterm has been installed, you will have this problem, because both
programs default to $TERM set to xterm. The solution for mixed systems is to
install the newer terminal description as as a different name (e.g.,
xterm-color) and set the termName resource accordingly in the app-defaults file
for the system which has the newer xterm.

続きに、「What $TERM should I use?」つーのがあって、
xtermの場合、xterm-xfree86ってのを使えってさ。
154login:Penguin:02/05/27 17:17 ID:W/KwZtKC
>>151
やってみたところで結果が理解できない自分を発見しますた
155login:Penguin:02/05/27 22:12 ID:UHJ+0bj9
とりあえずちびっとだけやってみた。

#include <stdio.h>
#include <math.h>

main()
{
printf("%d\n",sin(3.14));
}
gcc-2.95.3だったら(FreeBSDだけど)、
main:
pushl %ebp
movl %esp,%ebp
subl $8,%esp
addl $-4,%esp
addl $-8,%esp
pushl .LC2+4
pushl .LC2
call sin
subl $8,%esp
fstpl (%esp)
pushl $.LC1
call printf
leave
ret
こんなコードを出しよる。
icc だと、
main:
.B1.1: # Preds .B1.0
pushl %ebp #5.1
movl %esp, %ebp #5.1
subl $3, %esp #5.1
andl $-8, %esp #5.1
addl $4, %esp #5.1
subl $16, %esp #5.1
fldl _2il0floatpacket.1 #6.17
fsin #6.17
movl $__STRING.0, (%esp) #6.17
fstpl 4(%esp) #6.17
call printf #6.17
# LOE ebx esi edi
.B1.2: # Preds .B1.1
xorl %eax, %eax #7.1
addl $16, %esp #7.1
movl %ebp, %esp #7.1
popl %ebp #7.1
ret #7.1
.align 4,0x90
そのままコプロをよびだすようなコードやね。
gcc はライブラリをはさむな。実際ライブラリのソースを
見るともうちょっと処理をしている。10倍はわからんが、
差はでるやろうな。
156login:Penguin:02/05/27 22:13 ID:UHJ+0bj9
しかし、printf("%d\n",sin(3.14));
って笑うコードだな。すまん。間違えた。
157login:Penguin:02/05/28 00:02 ID:I7J1z0a7
なんか、おもしろそうなことやってるね。

>>155
うちの環境は、Linux + glibc2.1 + gcc2.95.2。
/usr/include/math.hを追っていくと、/usr/include/bits/mathinline.hってのがある。
んで、どーも/usr/include/feature.hが-Oオプションを監視していて、
つけてると、リンク時にインライン展開してくれるみたいなんだなー。
で、-ffast-mathすると、nmの出力からsinが消える。

~/test$ gcc -O m.c -lm
~/test$ nm -a a.out |grep sin
08048420 T __sin
08048420 W sin
~/test$ gcc -O2 -ffast-math m.c -lm
~/test$ nm -a a.out |grep sin

憶測だけど、--fast-mathを指定しないと、全ての関数をとりあえず
wrapしてしまって、インラインアセンブラコードまでは展開されないって
可能性はないかな?

例の数倍の差が出たって人、-ffast-math使って追試きぼーん。
158名無しさん@お腹いっぱい。:02/05/28 01:10 ID:fjbf3+Jg
iccってdebugger付いてるの? -g付けても、inline展開かね?
159144:02/05/28 02:05 ID:MAw0QlwZ
#icc -O3 -xW -tpp7 test.c
#time a.out
2.600u 0.030s 0:02.63 100.0% 0+0k 0+0io 145pf+0w
#gcc -O3 -ffast-math test.c
#time a.out
9.650u 0.020s 0:09.68 99.8% 0+0k 0+0io 86pf+0w
#gcc -O3 test.c -lm
#time a.out
11.210u 0.020s 0:11.25 99.8% 0+0k 0+0io 97pf+0w
#gcc --version
2.95.2

10倍は気のせいだったのか、再現できませんでした。すいません。
-ffast-mathなしで4.3倍、-ffast-mathからは3.7倍です。
test.cではsinを10^8回計算してます。

>>158
debuggerはldbです。
160login:Penguin:02/05/28 02:19 ID:bUBmd7+C
>>159=144
結果さんきう。
まだ3,7倍かぁ。

> test.cではsinを10^8回計算してます。
じゃ、-funroll-loopsと-frerun-cse-after-loopもきぼーんぬ

ところで、-m686とか使っても変化なし?って
> #gcc --version
>2.95.2
かぁ。これってpentiumへの最適化もされないよね、たしか?


161login:Penguin:02/05/28 02:23 ID:bUBmd7+C
>>159
できれば、テストしたソースもきぼーんぬ。
162login:Penguin:02/05/28 08:44 ID:t5QZ3SAT
うげー、Linux(RH7.2)とFreeBSD では挙動が違うよー。
-ffast-math すると確かにLinuxでは
main:
fldl .LC33
pushl %ebp
movl %esp,%ebp
subl $8,%esp
addl $-4,%esp
#APP
fsin
#NO_APP
subl $8,%esp
fstpl (%esp)
pushl $.LC34
call printf
movl %ebp,%esp
popl %ebp
ret
となって実際にfsinを直接呼ぶね。
FreeBSDで同様の事(-ffast-math)をしても、call sin は取れなかった。
うげーーー。
#APP ってなんだろ。
#NO_APP
163 :02/05/28 08:59 ID:w0d6+dv2
ほう、FreeBSDでiccとかifcがつかえるのですか。
どうやってインストールすればよいのか、詳細希望します。
できれば最新の4.5Rで。
164名無しさん@お腹いっぱい。:02/05/28 10:16 ID:fjbf3+Jg
>>162
> #APP ってなんだろ。
> #NO_APP

Assembler PreProcessor.

asm文使うと挿入されます。
#NO_APP
asm文のコード
#APP
逆だから、optimize optionやdebug optionや付けるlibraryで、
fsinの実体が変わったりするのかね。
165login:Penguin:02/05/28 14:55 ID:aPvGsWSr
>>163
ちっとむつかしい。あんまりおすすめしない。
icc はlinux_base-7を入れなければならないが、
FreeBSD ネイティブバイナリを生成する。すばらしい!!
C++はコンパイルできないみたい?
ifc はまだsend-prしたばかり。FreeBSDネイティブバイナリ
作成はむつかしいと思う。
4.5-Rだと入らない。icc は 5.0 なので、もう手に入らない。
ports を cvsup すれば入る。
わからなかったら 4.6-Release まで待つべし。
そこまで解説する情熱がもてない。すまん。
>>162
ありがとうございました。
さっきfreebsd-users で
話してたのですが、FreeBSD(4.6-RC, gcc-2.95.3 buildin)
でも
-O -ffast-math -mfancy-math-387
ってやれば、fsin を出していることがわかりました。
166login:Penguin:02/05/28 22:52 ID:lr8zx0zz
167144:02/05/29 08:15 ID:aVv8ARHZ
>>161
#include <math.h>
#define N 1000*1000
main()
{
int i, j;
double *a = (double*)malloc (sizeof(double) * N);
double *c = (double*)malloc (sizeof(double) * N);
for (i = 0; i < N; i++)
a[i] = 1.0 * i;
for (j = 0; j < 100; j++)
for (i = 0; i < N; i++)
c[i] = sin(a[i]);
}

-mpentiumpro -funroll-loops -frerun-cse-after-loop効果なしです。
~
168login:Penguin:02/05/29 11:33 ID:D7OquwsK
>>167
多分、インテルコンパイラは、外側のループ無くなってるな...
169login:Penguin:02/05/29 11:36 ID:D7OquwsK
それとも、キャッシュがヒットするようにうまいことやってるのだろうか...
170login:Penguin:02/05/29 14:30 ID:gGpH3Xsz
167のプログラムで、sinでなくてexpだと、gcc -O3に対して約14倍、gcc -O3 -ffast-math
に対して約9倍となりました。ただし、expだとoverflowするので、a[i]=1.0/(i+1)としています。
gccのexpはあまり最適化されていないようです。

>>168
>>169
繰り返し数に対しても配列の大きさに対しても、計算時間は線形に増加します。
また、ループの中外を入れ替えても結果は変わりません。
171login:Penguin:02/05/30 11:27 ID:Q1DeRRtz
>>170
ほんとかなと思ってためしてみました。
malloc をよばないようにして。
#include <math.h>
#define N 1000*1000
main()
{
double a[N];
double c[N];
int i, j;

for (i = 0; i < N; i++)
a[i] = 1.0 * i;
for (j = 0; j < 100; j++)
for (i = 0; i < N; i++)
c[i] = sin(a[i]);
}
当方Celeron800ですが、
icc -O3 -tpp6 -xiMK -S test1.c
でこんぱいるすると、fsinが一つも入っていないぞ!
つーか、コードを見ると最後の二重ループはまわってさえいない。

gcc -mpentiumpro -O3 -ffast-math -mfancy-math-387 test1.c
でのコードは素直だ。ちゃんと fsin を使っているし、普通に
アセンブラに出力されている。
つーわけで、参考にならん。
まぁそりゃそうだ。というのもこのコードを最適化すると出力が
全くないから
#include<stdio.h>
main(){}
と等価だもんな...
172login:Penguin:02/05/30 11:32 ID:Q1DeRRtz
つーわけで、コードを変えてみた。
#include <stdio.h>
#include <math.h>
#define N 1000*1000
main()
{
double a[N];
double ans;
int i, j;

for (i = 0; i < N; i++)
a[i] = 1.0 * i;
for (j = 0; j < 100; j++)
for (i = 0; i < N; i++)
ans = +sin(a[i]);
printf ("%lf\n",ans);
}

% icc -O3 -tpp6 -xiMK test1.c
% time ./a.out
-0.977352
14.926u 0.007s 0:15.41 96.8% 5+10175k 0+0io 0pf+0w
% gcc -mpentiumpro -O3 -ffast-math -mfancy-math-387 test1.c
% time ./a.out
-0.977352
15.089u 0.007s 0:15.15 99.5% 5+10193k 0+0io 0pf+0w
%
というわけで、誤差範囲。
もっと本質的なコードが必要だな...
173login:Penguin:02/05/30 11:42 ID:Q1DeRRtz
おもしろい結果が出た。
% gcc -mpentiumpro -O3 -ffast-math -mfancy-math-387 test1.c
% time ./a.out
-0.977352
15.095u 0.007s 0:15.15 99.6% 5+10187k 0+0io 0pf+0w
% gcc -funroll-loops -mpentiumpro -O3 -ffast-math -mfancy-math-387 test1.c
% time ./a.out
-0.977352
2.355u 0.023s 0:02.39 99.1% 5+10184k 0+0io 0pf+0w
ま、こだわってもしゃあないな...
アセンブラのソースを見ると、二つ目のループは
unroll されてない。つーことは律速は 1コ目のループか。
でも、icc に勝ったぜ!
(またミスった。ans を初期化していないや。すまん)
174login:Penguin:02/05/30 11:47 ID:Q1DeRRtz
172, 173 と
あまり意味無いことを書きました。ごめんなさい。
朝飯ぬいたので血糖値が低いみたいです。
#include <stdio.h>
#include <math.h>
#define N 1000*1000
main()
{
double a[N];
double ans;
int i, j;
ans=0.0;

for (i = 0; i < N; i++)
a[i] = 1.0 * i;
for (j = 0; j < 100; j++)
for (i = 0; i < N; i++)
ans = ans + sin(a[i]);
printf ("%lf\n",ans);
}
で試した。
% icc -O3 -tpp6 -xiMK test1.c
% time ./a.out
23.288398
15.070u 0.015s 0:15.95 94.5% 5+10209k 0+0io 0pf+0w
% gcc -funroll-loops -mpentiumpro -O3 -ffast-math -mfancy-math-387 test1.c
% time ./a.out
23.288398
14.811u 0.000s 0:14.98 98.8% 5+10197k 0+0io 0pf+0w
% gcc -mpentiumpro -O3 -ffast-math -mfancy-math-387 test1.c
% time ./a.out
23.288398
15.067u 0.000s 0:15.16 99.3% 5+10180k 0+0io 0pf+0w
175login:Penguin:02/05/30 11:53 ID:Q1DeRRtz
上のgccは2.95.3(FreeBSD)です。
まあそんなに変わらないでしょう。
icc は 二重ループをunrollしなかった。gcc は -funroll-loops
を付けると二重ループも一部unrollする。
やはりもう少し本質的な例が必要だと思う。
176login:Penguin:02/05/30 12:04 ID:Q1DeRRtz
>>170
なぜ線形に変化しているかと言うと、icc では 君のプログラムの場合
一つ目のループしかまわらないようなコードを出力し、
そして二つ目の(二重ループ)は消えるのだ。ということで
一つ目のループはまじめに実行するから線形に変化するのである。
僕が試した場合はexpでも同じ結果だった。つまりexpは計算されていない。
僕がprintfをはさんだのはそういう理由による。
また、僕のans = +sin(a[i]); はダメだ。かしこいオプティマイザ
だと最後の値だけ計算して終りだろう。
177login:Penguin:02/05/30 14:18 ID:EoS08NAY
>>175
> やはりもう少し本質的な例が必要だと思う。

総合的な評価と、個々の部分の振る舞いの究明をわけて考える必要があるが、
後者の方が計算時間餓鬼には有益だと思うから、今の流れでいいんと違う?
178login:Penguin:02/05/31 09:33 ID:a8/cq5U3
>なぜ線形に変化しているかと言うと、icc では 君のプログラムの場合
>一つ目のループしかまわらないようなコードを出力し、
>そして二つ目の(二重ループ)は消えるのだ。

私も、気になっていたから、ループ数と時間の関係を調べたけど、
内ループ数にも外ループ数にも計算時間は比例したけど?あと、
2つ目のループが回らないのなら、sinとexpで時間が変わるか?
言ってる事の意味が良くわかりません。

iccのmathが速いのは、SIMDバージョンのsin,exp等のためです。
従って、-axW -xWでかつP4上でないとgccと大きな差はでません。
179login:Penguin:02/05/31 17:04 ID:25Um11/K
>>178
うーーーむ。なんと言ったらいいのかなぁ。
アセンブラの出力は読んだかな?
気になったから君のコードをコピペして、コンパイルして、
アセンブラの出力を読んでみたんだよ。
そうしたら iccの場合、fsin って行が消えてたよ。
つまり計算していないんだな。gccはまともに計算してたヨ。

あとね、君のコードだとね、賢いコンパイラの場合、最悪空の
コードをはくわけ。これではコンパイラの性能を見ているとは言えないよね。
だから君のベンチでは結論出ないわけ。だから僕はやり直したんだよ。

僕は-tpp6な環境なので実行はできんです。それといまちょっと
システム入れ替え中なんで試せないんだ。ごめんね。
よかったら -tpp7の場合 のソースの
出力良かったら見せてね(icc -xW -tpp7 -S test.cで test.s が出来る)。

SIMDの出力も見たいし。
10倍かぁ...それは魅力あるよ。
昔ね、integer*8 のコードを書いてtpp7オプションでコンパイル
してもどうしてもSSE2のコードが出なかったんだ。君の結果が
手がかりになるかもしれない。良かったら教えてちょうだい。
180login:Penguin:02/05/31 17:19 ID:Ki/fe8PF
> やはりもう少し本質的な例が必要だと思う。
gccでもiccでもループが省略されていないことを確認しての比較だから
十分本質的だと思うけど?

>そして二つ目の(二重ループ)は消えるのだ。
配列がスタックのローカル変数ならループ省略の最適化も可能です。
あなたが、わざわざループが消えるように書き換えたということになります。
181login:Penguin:02/05/31 17:46 ID:25Um11/K
>>177
そんな気がしてきた。
182login:Penguin:02/05/31 17:51 ID:25Um11/K
>>180
アセンブラの出力を比較するってのはダメ?
183login:Penguin:02/06/01 01:37 ID:d+BKIyIY
174のコードでも、167のコードでも-xWでないiccでgccと
ほとんど変わらず、-xWのiccで3〜5倍というところです。
結論は、やはりSIMD版のexp,sin等は数倍速いということ
でしょう。なお、tpp7とtpp6はほとんど違いがありませんでした。
アセンブラは私には解読不能ですので、見たことがありません。
184login:Penguin:02/06/01 02:42 ID:LtyCCzWp
>>180
>アセンブラの出力を比較するってのはダメ?
ELF直読み?できるのか...すげぇ。

185login:Penguin:02/06/01 06:53 ID:4apHK27I
>>183
テストしてくれてありがとう!!
やっぱりSIMDが有効ってことか。
ま、アセンブラって
icc -xW -tpp7 -S test.c
で、test.s ができるしさ。
一度見てみて。ほんま、違いが一目瞭然というか。
そんな難しくないで。

>>184
ちゃうって...
icc -xW -tpp7 -S test.c

test.sってアセンブラの出力が出来るねん。
どんなインストラクションが出されてるかわかるねん。
gccでも一緒。-S で出る。

今な、FreeBSD 5-current に移行しようとしてて、失敗
しとる。幾つかのコンパイルが通らんかった。もうあきらめる。

gcc-3.1ってSSEとかに対応しているらしいし、5-current の
デフォルトのコンパイラがgcc-3.1やねんな...これも価値アリやろ。
でも時間かかりそうやし、ま、別口で試すわ。
186名無しさん@お腹いっぱい。:02/06/01 10:03 ID:YzmT9tKS
>>185
> test.sってアセンブラの出力が出来るねん。

それは「アセンブラ」の「入力」である「アセンブリ言語」のファイル、
って揚げ足取りをしていると思われ
187login:Penguin:02/06/01 13:51 ID:Qx7cQIyD
>>186
objdumpをつかえばアセンブラの出力も難なく比較できる。
188login:Penguin:02/06/01 17:48 ID:4apHK27I
>>186
確かにそうだな。しもた。ま、でも解るでしょ? いや
わかって下さいー。今夜にはチェックしますわ。
>>187
おお、ありがとうございます!! 知らなかった。
189login:Penguin:02/06/01 23:33 ID:4apHK27I
たしかに -xW オプションで SIMD 命令を出力して、
劇的に速くなった。
23.288398
12.872u 0.023s 0:12.93 99.6% 5+10151k 0+0io 0pf+0w
23.288398
12.593u 0.007s 0:12.63 99.6% 5+10172k 0+0io 0pf+0w
23.288398
3.383u 0.023s 0:03.41 99.7% 20+10135k 0+0io 0pf+0w

上からgcc, icc, icc(with -xW)
すごすぎです。
icc(-xW) のsinの計算、FPU 使ってないんだな。
call vmldSin2
か。何のためにFPUついてるんだろ。

190login:Penguin:02/06/03 00:58 ID:LXg220aY
もしかして、64bitの精度が得られたらいい、という前提で
相当はしょった計算をしてるのかもしれない。
fsinの消費クロックって高そうだし。
まぁでもSSE2ならば64bitの浮動小数点演算
二つ同時なので二倍速くなると考えるのがマシなんだけどな。
さらに高速ってことから考えるとfsinはビタ一動いてないか。
それならfsinを使わないライブラリをインラインで埋め込む
方がパフォーマンス的にはpentiumIIIでも得になるはず。
わざとライブラリに飛ばしているってやっぱ覗かれたくないのかな?

ちっ、こんなこと深く考えるよりアルゴリズムを練ったほうが楽しいな。
191login:Penguin:02/06/05 21:08 ID:DrdXg7fC
あげー
192login:Penguin:02/06/06 01:07 ID:W2BBcMds
-wp_ipo オプションはどうですか。
193 :02/06/10 09:52 ID:CLFuMcCW
Pentium4と同じバスを持ったセレロンで、Pentium4用のコンパイラは
正しいコードをはくだろうか? キャッシュがPentium4の半分しか
ないのに、それを反映しないコードを出していたら、性能が出せない
ことになりかねないが、そこは大丈夫かな。
194名無しさん@Emacs:02/06/10 21:00 ID:kJeoZmX6
CPU : Pentium III,800MHz

問題: 姫野ベンチ
http://w3cic.riken.go.jp/HPC/HimenoBMT/
Fortran77、サイズS

結果:
FC Options MFLOPS
--
ifc -O0 58.5
ifc -O2 127.7
ifc -O3 127.3
ifc -O3 -tpp6 121.9
ifc -O3 -tpp6 -xi 123.5
ifc -O3 -tpp6 -xiM 124.4
ifc -O3 -tpp6 -xiMK 158.7
g77 -O0 42.2
g77 -O2 85.3
g77 -O3 85.2
g77 -O3 -funroll-loops 82.7
g77 -O3 -funroll-loops -ffast-math 83.0
g77 -O3 -march=i686 85.3
g77 -O3 -march=i686 -funroll-loops 86.4
g77 -O3 -march=i686 -funroll-loops -ffast-math 86.3
195名無しさん@Emacs:02/06/10 21:05 ID:kJeoZmX6
Cバージョン

結果:
CC Options MFLOPS
--
icc -O0 63.2
icc -O2 154.1
icc -O3 154.2
icc -O3 -tpp6 154.0
icc -O3 -tpp6 -xi 153.9
icc -O3 -tpp6 -xiM 151.6
icc -O3 -tpp6 -xiMK 152.2
gcc -O0 43.8
gcc -O2 141.4
gcc -O3 142.5
gcc -O3 -funroll-loops 147.2
gcc -O3 -funroll-loops -ffast-math 147.1
gcc -O3 -march=i686 139.0
gcc -O3 -march=i686 -funroll-loops 143.4
gcc -O3 -march=i686 -funroll-loops -ffast-math 143.5

Cだとgccとあまり変らん……
196login:Penguin:02/06/11 00:21 ID:/rWc+478
出来ればgccのバージョンも教えていただけませんか?
197login:Penguin:02/06/11 01:21 ID:hFHia3qT
P4 2.2GHz C, SMALL, static gcc 2.96
gcc -DSMALL -O3 -funroll-loops 391
icc -DSMALL -O3 -tpp6 -xiMK 604
icc -DSMALL -O3 -tpp7 -xiMKW 493

という結果になりました。P4命令ありにすると遅くなります。
単精度浮動小数点の計算では、P4命令は有効でないようです。
ただし、P4はP3命令の実行が速いと思われます。

floatからdoubleにすると、P4最適化の方が5%ほど速くなりました。
doubleの計算はP4命令ありにしないとベクトル化されないことが
効いてきます。

結局、
数学関数多用 - P4最適化
単精度 - P3最適化
倍精度 - P4最適化
というガイドラインができるかもしれませんが、20%も結果が変わるんでは、
P3最適化とP4最適化、常に両方試して見る価値がありそうです。
198195:02/06/11 03:41 ID:J030uHjr
>>196 すんません,gcc version 2.96です.
>>197 P4欲しい…
199login:Penguin:02/06/11 04:11 ID:2NczXlos
gcc 3.1 だと、ものによってはかなり速くなるよ。
200login:Penguin:02/06/11 07:59 ID:/rWc+478
>>197
両方試さねばならないというのはきついですよね。
なんか上手い方法ないでしょうか...
SSE2が遅いというのは意外です。doubleで二個同時演算まで
ですよね。
>>199
gcc-3.1ってMMX,SSE,3DNow!最適化もあるんですよね。
http://gcc.gnu.org/gcc-3.1/changes.html
の、
New Targets and Target Specific Improvements
を見るといろいろ書いてあります。
SSE2は次のメジャーリリースからだそうです。
201名無しさん@Emacs:02/06/11 13:34 ID:wCcZynJr
評価版使いたいんですが、昨晩webで登録したのにメール
来ません。結構時間かかるものなのでしょうか?
まさか手作業でやってるとは思えないのですが。
202login:Penguin:02/06/12 01:12 ID:VazL4LZH
>>201
メールアドレス間違えてないですか?瞬時に来ましたよ。
203くっそー:02/06/12 22:12 ID:zpuPhe3W
俺もメールこないよ。2回やったけどどっちのアドレスにも
メールがこない・・・
どうなっとんジャーーーーいんてるさんよーーーー
204くっそー:02/06/12 22:50 ID:zpuPhe3W
どうやら、30日評価版でしかメール送ってこないみたい
ノンサポートのフリーバージョンはメールがこないみたいですね
要は買えということでしょうか。
205login:Penguin:02/06/13 02:29 ID:0GiZBNFg
んなこたぁない
206くっそー:02/06/13 02:43 ID:/xEHZNiO
あるよ。100番台のレスでもそう書いてあった
207login:Penguin:02/06/13 06:22 ID:2LgBVGRx
>>204
僕もこんなメッセージが。フリーバージョンを入手したつもり
だったのですが。
(icc 6)
NOTICE: Your license to CComp expires tonight at midnight.

License file(s) used were (in this order):
1. /usr/local/intel/licenses/l_cpp_25250653.lic

Please visit http://premier.intel.com to obtain license renewal information.

iccbin: Command line error: no files specified; for help type "iccbin -help"
208login:Penguin:02/06/13 06:29 ID:8B+0OnYN
俺の所に来たメール全文。

Dear XXXXXX,

Thank you for evaluating Intel(R) C++ Compiler for Linux*. For future reference, your serial number for this product evaluation is XXXX-XXXXXXXX.

1. If you haven't done so already, download and save the product from <URL>.
2. Untar the product in the directory of your choice. After doing so, you will see
the installation script "install" in that directory.
3. Ensure you have root permission and execute the installation script "./install".
The installation script will prompt you for the top-level directory for installation.
The default installation path is "/opt/intel".
4. Install the attached license file by copying it to the following location:
<installation path>/licenses
i.e. "/opt/intel/licenses"
5. If you haven't registered for Intel(R) Premier Support, you can do this at any time by
visiting <http://www.intel.com/software/products/registrationcenter/index.htm>.
Note that you will be prompted for the serial number (shown above) and the date of
purchase (enter today's date).

If you have any questions, please send them to [email protected].

で、l_cpp_XXXXXXXX.licってファイルが添付されてる。
209名無しさん@Emacs:02/06/13 14:27 ID:YSZ6uR7a
メールアドレスやマシンを変えて何回かやりましたが
依然としてメールきません。直でメールしてみようか
な、英語書くの苦手ですが。
210login:Penguin:02/06/13 17:33 ID:m5d8ZDQ2
きました
211login:Penguin:02/06/13 17:39 ID:l/3jF7oD
近代的巨大企業イソテルとしても、やはり半導体不況なので
使えない中年はリストラ候補室へ送還されるわけです。
若い社員にパソコンが使えなくて馬鹿にされた中年が、
一日中書類を書いてシュレッダーへGo!という仕事をやっていたり、
一本指タッチでユーザから来たメールにOEで返事を書くという仕事
をやっていたりするわけです。
そんな中年の都合でメールの返信にはラグがあるのです。
212login:Penguin:02/06/13 20:55 ID:/xEHZNiO
とりあえず、30日版とフリーでは送信主のアドレスが
違ってたからサーバーの設定ミスか込んでたかどっちかでしょうな
213login:Penguin:02/06/14 07:58 ID:VA/sHuIR
>>209
expire されたということだったので、再申込してみましたが、
僕の環境でもメールが来ませんでした。
214名無しさん@Emacs:02/06/14 14:49 ID:38CVxCjW
リストラ中年でもなんでもいいですからお返事欲しいです。
LAPACKやBLASまで無料ということで楽しみにしてるんですが。
215login:Penguin:02/06/14 15:49 ID:4CsOaoRm
>>214
ん? その辺の話ってどこに出てるの?
216名無しさん@Emacs:02/06/14 19:22 ID:38CVxCjW
>>215
LAPACKのことでしたら、インテル数値計算ライブラリに
含まれてるそうです。
http://www.intel.co.jp/jp/developer/software/products/mkl/mklfeatures_new.htm
これも、お返事来ないのですが、、
217login:Penguin:02/06/15 01:04 ID:jVtzzXww
SuSE8.0にifc6.0をインストールしてたけれど、
setenv FORT7 output.dat
てなかんじでファイルの自動オープンができない。なぜか、そんなファイルはないと怒られる。
こんな経験がある人います?
218 :02/06/15 13:24 ID:CnbGLDKn
217>>
シェルは何をお使いで?
BSHELLあるいはBASHなら
#FORT7=output.dat; export FORT7
だろうけど。ところで、FORT7っていう名前が、
機番7のファイル名のマクロ名になるの?
219login:Penguin:02/06/15 16:00 ID:jVtzzXww
>>218
tcshです。
docによると、Linux版の場合FORTnでn番をオープンすると書いてあるんだけど。
ためしにFreeBSDのLinuxエミュレーションで動かしたifcはきちんと開けるんで、端末の設定が悪いのかな?
220 :02/06/16 00:39 ID:Kudjb0GB
FORTnで指定されているファイルのパーミッションが適切かどうか
調べるべし。またまだファイルがなくて作るはずであるときには、
ファイルを作るべきディレクトリーのパーミッションが適切か
どうかも関係するだろう。
221login:Penguin:02/06/16 13:56 ID:KsvPx+Rr
ldconfigすると、
ldconfig: File /opt/intel/compiler60/ia32/lib/libcprts.so is too small, not checked.
ldconfig: File /opt/intel/compiler60/ia32/lib/libcxa.so is too small, not checked.
ldconfig: File /opt/intel/compiler60/ia32/lib/libunwind.so is too small, not checked.
って出るんですけど問題は無いんですか?
222 :02/06/16 18:28 ID:Kudjb0GB
問題なし。

インストールがすんだら、メールに
入っていたライセンスファイルを切り取ってコピーして、
/etc/ld.so.conf にライブラリのパスを書き加えて ldconf し、
/etc/profile に コンパイラのバイナリコマンドへのパスを加え、
/etc/man.config にオンラインマニュアルのパスを追加すれば
できあがり。
223login:Penguin:02/06/17 17:16 ID:FMDFl0W+
今朝 Intel C Compiler の登録をやってみたらすぐメールが来た。
224login:Penguin:02/06/17 19:18 ID:d4w8sZKk
>>223
たぶん、リストラさやたおやじが増員されたと思われ。
225login:Penguin:02/06/17 22:49 ID:SbfYKQK5
>>224
つまらなすぎ。
226名無しさん@Emacs:02/06/17 22:52 ID:lh1rtOj0
もう一度やってみるか
227login:Penguin:02/06/21 18:35 ID:ES86Qcyi
f90のモジュールの定義を探しにいって見つからないとifcコンパイラが
叫ぶのだが、どうやってそのありかを教えてやればよいのだろうか?

228名無しさん@カラアゲうまうま:02/06/21 23:21 ID:Rojv+xOM
>>227
エラーメッセージをかってに俺訳しないでください。
229-tpp7:02/06/24 09:17 ID:s4Hr+GO8
Linux version 2.2.19 (root@c-server) (gcc version 2.95.2 20000220 (Debian GNU/Linux)) #4 SMP
CPU0: AMD Athlon(TM) XP 1800+ stepping 02

な環境において、 cc010817rh62.tar から入れた icc(フリー版) で
-tpp7 オプション付けたいのですが、

icc: Command line warning: overriding '-tpp6' with '-tpp7'

となります。ほかにも
RedHat 7.1(Linux 2.4.10) on PentiumIII-S のシステムがありますが同様です。

ユーザガイドには Redhat 7.1 と SSE2 を必要とするとありますが、
実行時ならともかくも、コンパイル時にも PentiumIV でないと -tpp7
で最適化されたコードは吐けないのでしょうか?
230login:Penguin:02/06/24 12:15 ID:rHq3ABnU
>>229
うちではCeleron(SSE1)でPentiumIVのコード出してるよ。
で、走らせると、不正命令例外がでる。ははは。
231login:Penguin:02/06/24 13:53 ID:Qr5L0Xt5
> icc: Command line warning: overriding '-tpp6' with '-tpp7'

ほかにどんなオプションを指定してますか?
232-tpp7:02/06/24 14:42 ID:s4Hr+GO8
>>231
-tpp7 だけでもやってみましたし、-axW , -xW などもつけたり外したり
しましたが、warning は消えません。

>>229
とするとコンパイル時はCPU関係ないようですね。
ではなぜ…頭痛ぃ

(時は流れて)
…あ、 以下のファイルを見付けました。

$HOGE/intel/compiler50/ia32/bin/icc.cfg
- -tp p6
+ -tp p7

したら warning 消えました。(でもこうすると-tpp6でwarning...)
まるまる一行消したら、-tpp6 でも -tpp7 でもwarning消えました。

デフォルトで p6 となっているようですが、このままでも皆さんのところでは
-tpp7 指定できますか?

とりあえず、生成バイナリが実際どうなっているのかはともかくも、
warning は消えました。お騒がせ致しました。。。
233login:Penguin:02/06/24 16:31 ID:Rco9rF7g
>>229
うちpen4だけどそのwarning出てる…
これが普通かと思ってたYO!
234login:Penguin:02/07/03 14:02 ID:+wOVaW5H
icc で STL は使えますか?
235 :02/07/04 01:58 ID:e0SE36aj
うまく動かない場合に、コンパイラーのビルド番号と、
OSのディストリビューション名とそのバージョン、
カーネルのリビジョン、LIBCのバージョンなどの
情報があったほうが、他の人の役にたちますね。
236名無しさん:02/07/06 10:25 ID:5iU21Jdu
ifc で call abort() しても
undefined reference to `abort_'
とでる。なんで
237236:02/07/06 11:25 ID:5iU21Jdu
-Vaxlib が必要ですた

238login:Penguin:02/07/11 23:49 ID:B7+v1hA6
Ver. 6.0.159 (C++, Fortran)でましたね
バグが取れてるらしいです。
239login:Penguin:02/07/11 23:53 ID:QIx7nZro
で、みんなが何度も言ってるがmozillaをコンパイルするとどうなのよ?
俺も気になる。とりあえず体感速度を測る基準になると思うから誰か試してくれ。
240login:Penguin:02/07/12 00:38 ID:rpitGA5v
タダあげ
241   :02/07/13 10:43 ID:JsMJx7IZ
Celeron1.7GHz(Northwood)で、1.2GFLOPSの性能が出たよ。
スゲ―。
242login:Penguin:02/07/13 23:58 ID:idfSKVqT
Intel(R) Fortran Compiler for 32-bit applications, Version 6.0 Build 020312Z
を使ってます。
common配列を使ったプログラムで1GB以上のメモリを使うには-Qdyncom
というオプションを使うということで正しいのですか?一応動いてるみたい
なんですが、マニュアルに書いてある内容が良く分からないので不安なのれす。
もしかしてもっと良い方法が有ったり無かったりします?

>>241
姫野ベンチですかえ?このマシンにも慣れてきたので計測してみようかな。
243login:Penguin:02/07/14 02:46 ID:oeWeSaPQ
>>241
Celeron1.7はwillaでない?
244   :02/07/16 03:02 ID:DsBWghMA
Linuxカーネルがぼろいと、1GBまでしか使えないことがあったかも。
コンフィグレーションをためしてみましょう。
245login:Penguin:02/07/18 04:30 ID:kYB644vX
>>229=>>232

ちゅーか、そのウォーニングって
デフォルトオプションを無視してコマンドラインのオプション優先させるぞゴルァ、
って言ってるだけでしょ?

warning出ててもちゃんとpen4用のコードになってるんじゃ?
246   :02/07/19 00:51 ID:iPw+1qk2
intel MKL(MathKerneLibrary) 個人で研究に使うのには無料なのがイイ。
だが、なぜか、pthread ライブラリーもリンクせにゃあコンパイルした
結果の実行ファイルが動作しないし、どうやらMKLのライブラリ自身が
スレッドでSMPの上で多重動作ができるようになっているためか、
MKLライブラリを呼び出すフォートランなどのソース自身を並列化、
もしくはマルチスレッド化すると、動作が変になる。
SGIのように、scl.a、とそれのMP版のscl_mp.a を別のファイルとして
ライブラリに設けて欲しいのに。
247名無しさん@Meadow:02/07/19 23:59 ID:NUwiLAW6
MKLも賞味期限なしの無料なんですか?
http://developer.intel.com/software/products/global/eval.htm
ここ見るとコンパイラはNon-Commercial Unsupported Versionあるのに
MKLはFree 30-day Evaluationしかないのですが、、
248login:Penguin:02/07/21 20:03 ID:FP1etqYW
apache2とPHPをiccでコンパイルできた人います?
249   :02/07/24 01:14 ID:wMW1B8XR
>>247
http://developer.intel.com/software/products/mkl/mkl52/licensel_eval.htm

をみよ。但し、該当しない人は製品をお金出してちゃんと買うように。
MKLの1000(千)ページちょいのPDFマニュアルは印刷する気にはなれなかった。
250   :02/07/25 00:14 ID:pZH6nQCZ
http://developer.intel.com/software/products/mkl/mkl52/eval.htm
MKL5.2の内部評価とリサーチ用の無料ダウンロード
251としお:02/08/07 10:37 ID:pSGhuFam
C++ や Fortran アプリケーション最適化にもってこいのインテル コンパイラや、
MKL などのライブラリにもアカデミック価格があるって知ってた?
http://www.xlsoft.com/jp/products/vtune/perftool.htm
252login:Penguin:02/08/07 12:50 ID:MNPpzILJ
>>251
そんなことよりicc,ifc6.0の日本語マニュアル早く出してけろ
253login:Penguin:02/08/08 02:17 ID:PIXsN0v5
XeonにIntel fortran for Linuxを使っている時、
Hyper-Threadingを有効にしている?
俺は、無効にしてる・・・
254login:Penguin:02/08/08 02:54 ID:NKeWX2em
>>253
並列化しても得るものが無かったし、並行処理しても効率悪かったので
もの凄い勢いで無効にしますた。
もしかして数値計算向きの技術ではないってことかなぁ?
255名無しさん@お腹いっぱい。:02/08/08 08:22 ID:e0n7CUm2
そもそも、multi thread化が効果のある領域の中でも、(これは単なるSMPでもよい)
thread間の相互作用が結構頻繁にある場合に効果のある技術でしょ。
256login:Penguin:02/08/08 09:00 ID:h5Ite4hL
>>251
無料版の方がいいに決まっているジャン。
257login:Penguin:02/08/11 00:59 ID:s/OAym0W
XeonCPUって、Pentium4 CPUに比べて、何か特別優れているの?
258login:Penguin:02/08/11 01:06 ID:fLq7R5Rz
www.hpc.co.jp/IA-Parallel/HP2SC-IAX4Gaussian98.htm

Gaussianだと Hyper-Threading有効にしたほうが成績良い
ですな。何か良いflagの立て方があるのだろう。
259login:Penguin:02/08/15 01:25 ID:/0GLx8QN
OpenMPのコンパイラーディレクティブを入れてみている?
260login:Penguin:02/08/22 00:49 ID:hok07Wzb
7.0になったら、f90のソースでモジュールをコンパイルすると
モジュール名を大文字にしてサフィックスに .mod というのが
つくファイルがオブジェクト以外に生成されるようになって
しまった。 (.d ではなくて) work とか work.pcl とかも
どこかにいってしまった。どうしたんだろう?
261login:Penguin:02/08/22 08:06 ID:/FBXdmt+
>>260
7.0 でたんですか?
ギャワー。
262login:Penguin:02/08/24 17:25 ID:PfaGDlQx
まだ、7.0はベータであります。
263login:Penguin:02/08/30 03:54 ID:aneTlj2c
7.0
どこにあるんだ〜!!
264login:Penguin:02/08/31 22:23 ID:Jrnphh7d
https://premier.intel.com/
あくまでも開発者向きのプレミアソフトの評価検証、デベロッパ支援だよ。
265login:Penguin:02/09/01 08:33 ID:gmMMYJwB
普通にregistしてれば知ってるはずだけどなー。
266login:Penguin:02/09/03 07:17 ID:WnJhOOM2
>>264,265
無料登録ではでてこなかったです。
もしかして商品買われていますか?
267login:Penguin:02/09/03 21:14 ID:Tq9T9U83
いんにゃ、買っていないよ。もしかして大学は別格?
268login:Penguin:02/09/03 21:15 ID:Tq9T9U83
それとも、山ほどバグレポを送ったからかな?
269login:Penguin:02/09/07 01:41 ID:c6bP3AxY
SX系のスパコンみたいにlinuxでもjobを管理するjsubのようなコマンドって
ないんですかねー?
intel fortranがめちゃ使えるのでlinuxでもスパコンとおなじようなこと
できたらいいなー。
270login:Penguin:02/09/07 03:10 ID:a8rKmADv
dqs
pbs
271login:Penguin:02/09/07 04:18 ID:/NB2PEZ9
うちはgnqsで十分
272login:Penguin:02/09/07 06:37 ID:0xFRXbF3
dqs ってどこで配布してあります? 昔のバージョンをつかってるのですが。
273login:Penguin:02/09/07 13:04 ID:Y2eyZ6jb
>>272
http://www.scri.fsu.edu/~pasko/dqs.htmlに3.3.2ってのはあるが
READMEに2000年12月で開発終了とかなんとか…
274login:Penguin:02/09/07 13:22 ID:0xFRXbF3
ftp://ftp2.scri.fsu.edu/pub/dqs/
にはアクセスできないんですよね。connection refused とか出て。
かろうじて archive は残ってますが。
275login:Penguin:02/09/08 00:07 ID:tz8uOh0c
DQSの使い方解説してる所を教えてください
276login:Penguin:02/09/08 02:14 ID:SvqdSrFV
>>274
ftp://ftp2.scri.fsu.edu/old_ftp_users/pub/dqs/
ちなみにこっちですが
277login:Penguin:02/09/08 06:43 ID:6UAJnaFt
うーむ、やっぱり connection refused です。
yahoo! からかなぁ。
276さんありがとうございます。
278login:Penguin:02/09/08 07:16 ID:qdgWDnqi
>>275
man DQN
279login:Penguin:02/09/08 11:54 ID:ofarZynG
dqsってネタかと思った・・・
280login:Penguin:02/09/08 14:33 ID:V+CyUlbE
ftp2.scri.fsu.edu
に直接FTPコマンドでログインすればいけますね。
ブラズザからだとムリみたいです。
一応DLしましたが、インストールできるかな・・。

シェルの書き方などはどこを参照すればいいんでしょうか?
281login:Penguin:02/09/08 14:38 ID:6UAJnaFt
% ftp ftp2.scri.fsu.edu
Connected to ftp.csit.fsu.edu.
220 ProFTPD 1.2.4 Server (Debian) [ftp.csit.fsu.edu]
Name (ftp2.scri.fsu.edu:maho): anonymous
331 Anonymous login ok, send your complete email address as your password.
Password:
230 Anonymous access granted, restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (144,174,128,48,5,132).
ftp: connect: Connection refused

くそっなんでうまくいかねーんだ?
password もちゃんといれてるのに?
282login:Penguin:02/09/08 14:43 ID:7+JaCJ9p
>>281
PASV モードのコネクションが拒否されてる。
PASV では接続出来ないサーバなのだろう。
283login:Penguin:02/09/08 15:34 ID:xG1yGil2
>>280
shとかcshのソースよめ
284login:Penguin:02/09/08 16:35 ID:6UAJnaFt
>>282
ありがとう。たしかに passive mode やめたら get できました。

285login:Penguin:02/09/11 16:45 ID:Ye+Ngz+T
日経Linux の記事読んだ? つーか、あんなプログラムの最適化
比較されたってなんにも解らんぞ。期待して損した。
286login:Penguin:02/09/11 21:41 ID:7ec/JA8x
itanium2ホスイ。。。
287名無しさん@Emacs:02/09/11 22:14 ID:LD6k8Cy/
日経Linux
円周率計算でベンチマークテストでもやればよかったのにな
288login:Penguin:02/09/11 22:48 ID:Ye+Ngz+T
ホンマ。めっちゃ無理な記事やんか。つーか、そんなバカなプログラム
書く奴いねーよ。そんな最適化なんぞ見たくもねぇ。
SSE2 使うところも、ライブラリで見せてくれんし。パイプラインを
どう使いこなしているか、そんなんがみたかったんやけどな。
実は、見えにくいインストラクションの並びが実にペナルティが低いとかさ。
289login:Penguin:02/09/11 23:19 ID:gERs7rWD
立ち読みしてガッカリだったね。 >日経Linux
mozillaとかOpenOffice.orgとかコンパイルしてみてベンチマーク
取って欲しかったよ
290login:Penguin:02/09/14 21:55 ID:nz4/+CVH
IA-64用のコンパイラは、C++もFortranも、まだまだ64ビット用
CPUのものとしてはできそこないだ。
LP64モデルを採用しているが、配列の添え字式の計算がIntで32ビット
らしく、2GBを越える配列が取れないなど、さまざまな問題点がある。
291login:Penguin:02/09/14 22:04 ID:nz4/+CVH
ちなみに他社のコンパイラの例としてSGI社のものは、
-64というオプションをつけて64ビットアドレス用として
コンパイルすると、LP64モデル(つまりIntは32ビット)
ではあるが、配列の添え字計算ではLongとして計算される
ようで、あとはOSの関係なのか40ビットのアドレス空間を
使える。つまり1TBまでの配列がコンパイラに食わせる
ソースのレベルでは取れるのだ。

AnsiのCの解説書などを読んでみたが、どうも、たとえばCの配列
の添え字式はIntであるという風に読めるので、そのとおりに
すると、ILP64ではないLP64のメモリモデルだと、
ポインターは64ビットなのに配列の添え字は正負あって32ビット
までになってしまう。ぜひとも、64ビットの添え字式を使える
ようにして欲しいと交渉したい。

IA-64用の場合、IntelのCコンパイラにもILP64モデルになるように、つまり
コンパイラオプションで整数が8バイトになるよう指定が可能
となるようにして欲しいと交渉したい。
今のIntelのeccコンパイラには、なぜかLongとPointerが8バイト
になるような指定をするコンパイラオプションがあるとオンライン
マニュアルにはかかれているし、実際おぷしょんを受け付けるの
だが、本来Linuxの上でeccコンパイラは試してみたところ、
最初からLP64であるので、このオプションを指定するまでもなく
そうなっているなど、理解に苦しむものが多い、わけがわからん。
292login:Penguin:02/09/14 22:15 ID:xbXyt3h1
来月、LinuxMagazineでもベンチマーク結果載せるみたいだけど、
これも期待できないかな?
Intelが、日経とアスキーに同時に機材貸し出ししたのが丸見えで萎え。
293maho:02/09/15 12:18 ID:7i0e2a3c
>>291
御意。Alpha の gcc やったらどうなんでしょ? どなたかご存知?

>>292
ある意味どういう最適化をしているかというのがバレるからあまり
書きたくないのかも知れないですね。意味ねーじゃん。

OpenOffice.org のコンパイルはまだ厳しいしょう。gcc でも compiler の
バージョン依存の問題が多いので。Xはコンパイルできて然るべきですが。
294login:Penguin:02/09/15 12:43 ID:PyOM4RId
bcc(1) bcc(1)
NAME
bcc - Bruce's C compiler

DESCRIPTION
Bcc is a simple C compiler that produces 8086 assembler, in addition
compiler compile time options allow 80386 or 6809 versions. The
compiler understands traditional K&R C with just the restriction that
bit fields are mapped to one of the other integer types.

BUGS
The bcc.c compiler driver source is very untidy.
The linker, ld86, produces a broken a.out object file if ...

295maho:02/09/19 09:02 ID:+RmgTTgR
新しい ifc, icc でたな。bugfix らしい。また ports 更新かよ。
つかれた。
296login:Penguin:02/09/20 10:29 ID:t21caENn
まほたんが荒んでいく……
297login:Penguin:02/09/21 00:24 ID:b0RwualT
ifc や icc はポーツには入れられないでしょう?
298login:Penguin:02/09/21 00:52 ID:b0RwualT
Celeron1.7GHzで、MKLライブラリーを使って、ある種の行列積を計算
させました。単精度で3.4GFLOPS、倍精度で1.7GFLOPS近い値がでました。
ifc で同等のプログラムを書いて最適にコンパイルしてみると、
1割ないし2割それよりも低い性能ですが、まあ満足のいく速度がでてます。
最近のPC用のCPUは早いですね。
299maho:02/09/21 03:55 ID:viZ9mmJo
>>297
僕、FreeBSD の ifc の ports の作者ですけど。 maintain もしてます
けど... ちなみに icc は FreeBSD native の object を吐ける。
ifc も本来そうなんだけれど、
WRITE とか OPEN とかを使うと call するので、nonstdlib をリンク
せねばならん。つまり FreeBSD 用のライブラリが必要。多分 gnu fortran
のライブラリを真似ればなんとかなるんだろうけど、面倒じゃ。
Lapack なんかはそういうのを使ってないから ifc でコンパイルできる
と思うんだけどね。あとスタートアップルーチンとかも必要だし、
それは何しているか解らん。Fortran90 以降には興味ないし、なんかなぁ。
組み込み関数は一部、prototype definition みたいなのがあるけど、
これの意味は調べてない。多分 Fortran90 のなんかなんやろうな。

こういう作りをみると、Linux 以外での IA-32 のコンパイラも
作りたかった、ような印象を受けた。

>>298
何をおっしゃりたいかちょっと意味わからんかったです。
高度に最適化された BLAS と、適当に書いたお手製 BLAS の比較ですか?
そもそもプログラムの組みかたが違うから、単純な比較は避けた方が
良いと思いますよ。MKL と ATLAS の比較なら理解します。
それとも、素直に書いても ifc なら 1-2割低いだけに留まるから
最適化技術がすごいというのなら、理解しますが。
MKL と ATLAS なら ATLASのほうが速いと思います。最近バージョンアップして入れ替わったのかな? どっちにせよ、パフォーマンスは
似たりよったりでしょ。
300login:Penguin:02/09/21 04:48 ID:b0RwualT
ごく安物のCPUで、結構な性能がでるようになって、結構な時代に
なったもんだとはおもわんかね。PDP-11のあるモデルなんか、
FloatingAccelarator機構をつけても、10〜20KFLOPS程度しか
出なかったし、VAX-11・780でも0.1〜0.2MFLOPSぐらいしかでなかった。
日立の最初のスパコンS810が600MFLOPSピークだったんだが(1985頃?)。
2GFLOPS出るようになったのはS820からだったかな。
301maho:02/09/21 08:25 ID:viZ9mmJo
>>300
スパコンはさわったことがないから、
直接は気持がわからんですけど。KUBOTA の TITAN かな 高校の頃。
まぁ僕も昔しょぼいパソコンでいろいろ計算やってました、ほんと、遅かったです。レイトレーシングなんか何日もかけてという感じでしたね。
だから、なんとなく気持はわかります。

でもスレちがい...
302login:Penguin:02/09/21 15:22 ID:+UfjVmmp
誰か、gnqsのスクリプトファイルの書き方教えて・・・。
cshとかって使えるの?
303login:Penguin:02/09/21 18:05 ID:86dc7Wyn
>ごく安物のCPUで、結構な性能がでるようになって、結構な時代に
>なったもんだとはおもわんかね。
結構なこって。
んで。その分、解析精度の要求が高まる罠。
まだまだ性能あがってくれないとねー。
304302:02/09/21 19:06 ID:+UfjVmmp
gnqsインストールしてifcでコンパイルしたプログラムを走らせたんだけど、
ファイルの入出力に関してわからないので教えてください、
スクリプトファイルは

************************

#!/usr/csh
# QSUB -q testq
# QSUB

setenv F_FF10 file1
setenv F_FF20 file2

./a.out

***********************

こんな感じで、file1とfile2が出力されてほしいのですが
できません。ifcの環境変数はF_FFではないのでしょうか?


305302:02/09/23 19:25 ID:XpJsF3mg
スクリプトを工夫して解決いたしました。
板よごしてすみませんでした。
306ldb:02/09/24 14:51 ID:V9bNhhGg
付属のデバッガldbを使用すると変なエラー出て使えない。俺だけか?

環境
OS:Redhat7.2ja
Compiler Version:6.0.1

エラー内容
次のようなプログラムを作成
#include <iostream>
using namespace std;

int main(){
cout << "Hello World!" << endl;

return 0;
}
次のようにコンパイル
% icc -o hello hello.cpp -g
で、デバッグする
% ldb hello
すると次のようなエラーが出て強制終了する
Linux Application Debugger for 32-bit applications, Version 6.0, Build 20020521.Copyright (c) 2001-2002 Intel Corporation. All Rights Reserved.

Assertion failure: 0, file ../../src/ST/intel/iCUInfo.C, line 409
このあといろいろ試した結果、coutをprintfに置き換えるとうまく動いた。
またSTLを使用したプログラムを作成しデバッグをかけてみたが、
同じエラーで終了してしまう。つまりC++プログラム特有の文を書くとだめになる?
307maho:02/09/25 00:05 ID:WbD3HXSr
結局 ports は更新した。以外と簡単に済んだよ。commit もすぐ済んだし、
まぁ意味があるかどうかはしらん。/usr/ports/lang/ifc って
だれが使うんだろう?
もうこわれてないよ。
>>306
なるべく最新のものにしてみれば?
308306:02/09/25 14:56 ID:mzUu5Ze3
>>307
これは最新ものです。正確に言うとバージョン6.0.1-304です。
mahoさんはバージョンいくつでしょうか?
そして同じプログラムでエラーが出ませんか?
309maho:02/09/26 08:22 ID:I4VU93X1
>>308
debugger は FreeBSD では使えないのです...お役に立てなくて残念です。
310304:02/09/26 10:56 ID:N9OG6F/V
>>309
そうですか…。わざわざありがとうございます。
311login:Penguin:02/09/27 09:55 ID:+6HsjsFH
ifc6に関して悩んでます。情報お持ちの方いらっしゃいますか?

dictionary fileを使って、外部モジュールをuseする際、
*.pcファイルがどうしても必要なのでしょうか?
無い場合にはどうしようもありませんか?

dictionary fileとarchiveしかないライブラリを使いたいのですが、
-Iでパスを指定するだけでは、Error FCE22が出てしまいます。

CompaqやSGIで*.modに相当するのが*.dですよね。。。
312  :02/09/27 10:28 ID:u29c/11w
ifc7 では、SGIのと同じ *.MOD の方式が採用されるようです。
(今のベーター版ではそうなっている)
313login:Penguin:02/10/02 12:34 ID:Fljz+3D+
ifc6-6.0-140からifc6-6.0.1-304にアップグレードしたんだけど、
パフォーマンスが数パーセント落ちているような結果になってる。
ちょっと寂しい。。。
Windows版はもう正式にifc7が出てるみたいだけど、Linux版はまだかな?
それに期待したい。
314314:02/10/13 07:10 ID:5zweLQtX
PGPLOTをifcで使用している人はいませんか?
pgplot/sys_linuxの中にはifc用のファイルがないのですが、

absoft_gcc - The Absoft f77 FORTRAN compiler and Gnu gcc C compiler.
f77_gcc - The f77 [f2c] Fortran-to_C converter and Gnu gcc C compiler.
f95_gcc - The NAGWare f95 FORTRAN compiler and Gnu gcc C compiler on an elf-system.
fort77_gcc - The fort77 [f2c] Fortran-to_C converter and Gnu gcc C compiler.
g77_gcc - The GNU g77 FORTRAN compiler and Gnu gcc C compiler on an elf-system.
g77_gcc_aout - The GNU g77 FORTRAN compiler and Gnu gcc C compiler.
nag_gcc - The NAG f95 FORTRAN compiler and Gnu gcc C compiler.
pgf77 - The Portland Group pgf77 FORTRAN compiler and pgcc C compiler on Linux.

お返事お待ちしています!!!
315login:Penguin:02/10/13 20:44 ID:6hhGXCde
PGPLOTってなんでしょうか?
316login:Penguin:02/10/14 18:28 ID:+zxSyeGL
可視化ライブラリ
317login:Penguin:02/10/16 14:59 ID:PYlI20eA
あそびでxscreensaver(with-gl)をiccでこさえてみました。
笑っちゃうくらい速い。
318x:02/10/16 15:04 ID:9AlnI0Ke
これって本当か?

↓ ↓ ↓
http://www.dream-express-web.com/space-trust.htm
319login:Penguin:02/10/18 22:17 ID:q1kWLUal

iccでkernelやXをコンパイルできた人いますか?
320login:Penguin:02/10/19 00:04 ID:yEObizWo
笑っちゃうくらい速いって、どうして笑うのですか?
体感何倍早いのですか?
321login:Penguin:02/10/19 10:52 ID:BhEBgiKe
iccのclock()がうまく使えない。すべて0になってしまう。ANSIとどうちがうのでしょうか。
322login:Penguin:02/10/19 11:51 ID:oME5iqrl
>>320
gccでコンパイルオプションをいくら変えてもはやくならなかったのが
iccではさっくり速くなったので。-O3 -tpp6 -axK -static.

323login:Penguin:02/10/20 14:36 ID:7EbOELLI
324login:Penguin:02/10/26 01:08 ID:753aeObx
325crazy_u:02/11/02 09:33 ID:EHl1F/UI
>>324
初めて書きます.
Intel Compiler v7.0のベータ版をFEM解析プログラムでテストしてみました.
v6.0に比べて,

1.コンパイルは速くなりました.
2.コンパイル時に必要とするメモリーは半分以下になりました.
3.連立方程式の解法はP4用に徹底的にチューニングしたので,もう速くはなりません.(CPUがフル稼働
状態)
4.その他の部分は2〜4割速くなりました.(あまりチューニングのしようのない準備計算部分や要
素レベルの計算)

推測ですが,

1.prefetch機能が向上した.
2.グローバルな最適化機能が向上した.
 (A, B, Cの計算ブロックがあって,AとBは独立に計算できてCでは両方の計算結果が必要な場合に,あいているレジスターがあればAとBは非同期にほぼ同時に計算を行ないCで同期をとる.)
3.分岐命令を含むコードで,あいているレジスターがあれば,分岐径路の確定を待たずに処理に入ってしまう.
 分岐径路が確定した段階で分岐しない部分の計算結果は捨てる。
 (Itainum用の64bit版の方はこの機能が以前から入っている.)
4.不変式の先行評価機能が向上した.

の幾つかが行なわれるようになったのではないかと考えます.
(高性能なRISC計算機やスーパーコンピュータを使ったことがある人はこれらは分かりますね)
326crazy_u:02/11/02 09:52 ID:EHl1F/UI
続きです.
compiler optionは

# Intel Fortran Compiler v7.0
# Penteium II
#OPT_MACHINE= -tpp6 -xi
# Penteium with MMX
#OPT_MACHINE= -tpp6 -xM
# Penteium III
#OPT_MACHINE= -tpp6 -xK
# Penteium 4,Xenon
OPT_MACHINE = -tpp7 -xW
OPT0 = -O3 -prefetch -scalar_rep -prec_div -unroll -fno-alias -fno-fnalias -lib_inline -nobss_init -Zp16
OPT1 = -implicitnone -lowercase -Vaxlib -vec_report3 -V
FFLAGS = $(OPT_MACHINE) $(OPT0) $(OPT1)
COMP = ifc
LD = ifc
です.-ipも効かせたいのですが計算が壊れることがあるので使ってません.
327login:Penguin:02/11/02 19:16 ID:EdkYccpG
GNUと互換性を確保してkernelとかコンパイルできるようになるのだろうか??
どっちかっていうと数値計算向けのコンパイラ?
328crazy_u:02/11/03 10:25 ID:49bsvkUh
'Improved gcc source and binary compatibility'と説明があるので,コンパイラとそのライブラリにバグが無ければ,kernelをコンパイルしてGNUと互換性を保って稼動するのは可能なのではないでしょうか.
とにかく,自分で試してみる方が良いと思います.
ただし,コンパイラは’魔法の杖’ではないので,元のコードが優秀(無駄のない最適化コード)であればあるほどコンパイラの違いによる性能差はでなくなります.
Fortranのユーザは数値計算屋なので数値計算向きに特化して欲しいと考えますが,CやC++のユーザのなかでは数値計算屋は少数派なのでそこに特化した商品をIntelがつくるとは考えられません.
グローバルな最適化などは重たい数値計算(ほぼいつもすべてのレジスタは大忙し)よりは遊んでいるレジスタができやすいアプリケーション(業務系や制御系?)で効いてくると思います.
私もLinuxシステムそのもののチューニングには興味があるのでただいま勉強中です.
来年,FSB667のチップとそれに対応したM/Bとメモリがでたらもう1台組立てるつもりです.そうしたら,現在のマシン(P4_2.53GHz)を実験機にしてkernelやglibcをiccでコンパイルしてみます.
(安定に稼動しているマシンでkernelを触るのは怖いので)
329login:Penguin:02/11/03 10:48 ID:l8t+iVCu
>>328
結果報告よろしくたのんます
330login:Penguin:02/11/04 09:56 ID:1FXAr5v4
ifc7.0は,athlonは対応しているんですかね?

過去のログでは,ifc6は対応していなくて,ifc5は対応して
いるとありました.
新しいnforce2のチップセットで,DDR400のメモリ2枚刺しで,
メモリのバンド幅が6.4GB/secというものに引かれて一台組み
立てたいと思っているんですが,ifcが使えないのでは意味ない
ですから...
331login:Penguin:02/11/04 10:11 ID:+kRs8LO6
自分で試せよ。
なんかずうずうしいな。

586互換なら大丈夫なんじゃねーの?
ひょっとすると蹴られるかもしんないけど。
332login:Penguin:02/11/04 12:00 ID:gL+5bja7
ビデオチップ搭載でない場合FSB帯域幅を超えるメモリ帯域は・・・
333330:02/11/04 14:34 ID:4afCMgT6
>>332

確かにシステムバンド幅を超えているスピードのメモリバンド幅って
いうのに、何かメリットはあるのかと考えてしまう。
が、HPのItanium2は、システムバンド幅6.4GBに対してメモリバンド幅は8.4GB。
何かいいことあんのかな。
334login:Penguin:02/11/04 14:39 ID:2zKwI8RZ
>>333
メモリバンド幅はバーストした時のピーク性能だから、
実効値はずっとずっとずっと低い値。
335login:Penguin:02/11/07 16:10 ID:e6eeEJ5O
icc6.0は、Athlon MPで動いたよ。
M/B Tiger MP
CPU Athlon MP 1.2GHz
SuSe 8.0
336login:Penguin:02/11/08 01:25 ID:U6l7cdxw
Q1:HyperThreadを有効に使えた例あるかい?
Q2:DebianGNU/Linuxでは intel Compiler はうまく使えないけど、
将来なんとかならないの?
337login:Penguin:02/11/08 01:52 ID:3nm7+jZ5
A1:計算屋ですが、HT使ってもパフォーマンスは変わりませんでした。
なぜなのかは専門家じゃないのでわかりません。
A2:ifcならpotatoでもwoodyでも使えていますが?なにがどう上手くいかないのか
書いたら何とかしてあげられるかもしれません。
338login:Penguin:02/11/08 03:19 ID:xnWba0Fk
HTまともに使えるようになるのはkernel2.6まで待たなきゃならんと思うよ。
2.4後期でも一応の対応は出来てるかもしれないけど、
スレッド廻りがもともと弱いカーネルだし。

2.5ではある程度使えるという話しは聞くけど。
339login:Penguin:02/11/08 11:44 ID:UuLgSvtg
HTってsmpとして使えるんでしょ?
340login:Penguin:02/11/08 22:07 ID:ccmxL41c
>>325
やっぱりにわかにはそんなコードが出ているとは信じられない。
僕の知っている限り、Pentium 4のコードが高速なのは SSE2 を使っている
場合だが、特殊関数(sin,cos とかね)ライブラリに渡して高速に
なっているようだ。
そこらへんはライブラリを disassemble しなければからくりはわからない。

また、日経Linuxの記事(買わなかったけれど)によると、計算をそもそも
省ける場合の最適化がうまいとのことしか書いていなかったが、
これは本質的な最適化ではないよね。
というかそんなプログラム書かないっつーねん。

やっぱりアセンブラの出力を見て直接比較したいっす。1. 2. 3. 4.
が実際にどう行われているか、とても見たい。どなたか公開できる
サンプルを持っていらっしゃる方はいますか?

>>337
SSE2 や FPU は threading できないようですね。だからあまり HT
は効かないということではないでしょうか。
341login:Penguin:02/11/09 07:04 ID:IPBiP7vy
つまり、数値計算であってHT以前にもう性能がCPUの限界近い場合には
HTを入れても整数は速くなるけど、FP演算は早くならないということですか?
342crazy_u:02/11/09 10:07 ID:pvpo5FMk
HTはsingle threadのプログラムが速くなる技術ではなく,CPUリソースに余裕があるときに複数のthreadを同時に処理するものです.
SMP用のmulti-threadのプログラムにしないと意味ないと思います.技巧ではなくて手法(FEMなら領域分割法やsupernode algorithm等)を研究すべきです.
HTの分かりやすい解説が
http://www.atmarkit.co.jp/fpc/rensai/zunouhoudan016/hyperthreading.html
にあります.対応ディストリビューション一覧がコンパック(現在はhp)のサイト
http://linux.compaq.co.jp/support/doc/option/etc/ht_capability.html
にあります.
BIOSの設定はHTはonになっていますか? SMP用のカーネルで起動してますか? multi-thread programingしてますか?
今,Itanium2をターゲットにして「実践マルチスレッドプログラミング」(アスキー,1998年3月発行)で勉強してます.
来年,第3四半期に開発コードDeerfieldというItanium2の廉価版のチップがでる予定.価格はXeonよりちょっと高めだそうです.
343login:Penguin:02/11/09 10:58 ID:IPBiP7vy
おお、よく分かりました。これはメモリのレイテンシーをマルチスレッド
により(可能なら)吸収して、スループットを向上させようという
昔のデネルコア社のHEPという実験システムの延長線上にあるような
技術ですね。
344 :02/11/09 19:09 ID:cxRy6Ah9
ところで皆さん、高速化の為にコードを工夫したりしてますか?
詳しい人いたらノウハウ教えてください。
345login:Penguin:02/11/09 19:16 ID:qbAg7zaY
来週3.06HTがでたら"HT+icc人柱"大会をやりたいっす
現在サンプルコード募集中。
346login:Penguin:02/11/10 14:57 ID:jAjpoqqV
まずは、Linpackベンチマークを見たいね。HTが、ページングやTLBミスの
待ち時間を果たしてうまく吸収して性能を上げることができるものだろうか、
とか。
347login:Penguin:02/11/10 15:28 ID:0MPyrCTN
すいません、HTの話が出たところで。
P4-Xeon SMP環境で使ってる人いませんか?
2ジョブ実行でどれくらいの並列化効率が得られてますか?
私のところは50%即ち、CPU1つのときと変わらんという結果です。
kernelは2.4.18-17.7.xsmpで、HTオンで/proc/cpuinfoに4つの
CPU, HTオフで2つのCPUがちゃんと見えてます。
なお、ベンチの結果はHTオンでもオフでも変わりません。

348crazy_u:02/11/10 16:41 ID:ifwKEp6r
「2CPUに2JOB」と「1CPUに2JOB」が変わらなかったということでしょうか?
「2CPUに2JOB」と「1CPUに1JOB」が変わらなかったというのなら正常だと思いますが.
以前,1週間だけDual Xeon (ワークステーション用のi860チップセットなのでHT機能なし.メモリはRIMM)でテストしたことがあります.
single threadのJOBを2個同時にrunさせても,1CPUで1個のJOBをrunさせた場合と殆どパフォーマンスは変わらなかったように記憶してます.(つまり2個のCPUはそれぞれ独立に1JOBずつ担当している.)
Intel Compilerで自動並列化オプションをつけたコードの場合は所詮末端での並列化なのでオーバーヘッドが喰われるせいか殆ど効果なし.
手法を検討して上位レベルでmulti-thread化したコードを書かないと効果なさそうです.
コンパイラは1CPUのときよりも軽快で,topコマンドでみていると2CPU使ってコンパイルしていました.(コンパイラはmulti-threadのコードなのでしょう.)
OSはRedHat Linux 7.2 (kernel-2.4.7-?smp)でした
349login:Penguin:02/11/10 16:55 ID:g4m5WDlb
http://pc3.2ch.net/test/read.cgi/jisaku/1033748563/
こっちの方が詳しいし。
スレは死に気味だけど、一度見といた方がいいかも。
350347:02/11/10 20:09 ID:0MPyrCTN
>>348
>「2CPUに2JOB」と「1CPUに2JOB」が変わらなかったということでしょうか?
そうです。
ジョブはsingle threadです。やはり、私のところは、何が悪いのか、実質
1CPUになってますね。以前使ってた、PII Dualのマシンで、kernel2.2の最初
の頃ので80%以上の並列化効率がありました。Xeonはきっと、もっといいはず
ですよね。

>>349
ありがとう。早速見てみます。


再び>>348
マルチプロセッサマシンでは、コンパイルのとき、make -j NとしてNファイル
同時コンパイルするという方法もあります。
351crazy_u:02/11/10 23:20 ID:ifwKEp6r
>>349
有難うございます.参考になりました.

>>344
稼動するマシンが変わるたびに殆ど常にプログラムには手を入れています.
どの程度のことを知りたいのでしょうか?
例えば,
「RISC 超高速化プログラミング技法」(寒川光著,共立出版,1995年8月発行)
は現在の計算機でも役立つ内容だと思います.Pentium4もスーパースカラー計算機といえると思います.
寒川氏は情報処理学会の論文集へもこの手の論文を多数投稿している研究者です.
私も氏の論文は参考にしてきました.(私はもっぱらvector計算機を相手にしてきましたが)
他にも参考文献があったらお知らせします.
352login:Penguin:02/11/11 00:23 ID:dXRwOR+k
低レベルな質問。仮にメモリ帯域を常に使い切っているようなプログラムがあったとして、これを
SMPマシン上でそれぞれのCPUに実行させることは意味がないと考えていいのでしょうか?

>>348
ifc6.0の自動並列化はほんとーに使えなかったんですけど、次のバージョンでも期待は
できなさそうですか?結局、にわかじこみのOpenMPで1割程度は速くできますた。
某所のccNUMAマシンの自動並列化には感動した覚えがあるんですが。。。
353crazy_u:02/11/11 21:48 ID:9ykjmpF9
>>352
やはり,普通のSMPのマシンでは意味ないのではないでしょうか.
ccNUMA(アーキテクチャの説明は,http://www.sgi.co.jp/products/pdf/ccNUMA.pdf)や富士通の最新のSMPのスパコンなら問題ないでしょうが....
並列計算で多少参考になりそうなのが(概要しか書いていないが),
http://plaza11.mbn.or.jp/~myoneya/comp/smpmd/smpmd.html

12月か1月にDual Xeonのテストができそうなので,ifc7.0 betaで自動並列化を(全然期待していませんが)試してみます.

>>351で紹介した本はやや学術色が濃くヘビーな内容なので,もっと一般的なところでは(その代わりアーキテクチャに即したチューニングは書いてない)
「プログラム改良学」(J.L.ベントリー著,近代科学社,1989年9月発行)
「C++/C プログラム改善法」(D.スプラー著,トッパン,1993年6月発行)
があります.今なら,もっと良い本が出ているかも知れないので,そういうのがあったら教えてください.
354347:02/11/11 22:43 ID:MZf6bpFl
kernel-2.4.18-17.7.xsmpで全然SMP性能が出なかった
のですが、Win2Kを入れて、ベンチしてみると、ちゃんと
2CPU使ってるみたいです。
もっと、よく調べてみると、最初に使ったベンチマークが
1本でメモリ帯域を使い切るものだったため、2CPUあって
も性能が上がらないということが分かりました。

--- GogoWinBench 1.28 [2002/11/11 20:11:40] ---
[OS] Windows 2000 Service Pack 2 (5.0.2195)
[CPU] Intel Xeon (Prestonia) * 2 / 2795.5MHz (399.4 * 7.0)
GenuineIntel
Intel(R) Xeon(TM) CPU 2.80GHz
0/0/0/15/2/7
FPU TSC MSR CMOV MMX MMXE SSE SSE2 HT(2)
L1TraceCache 12Kuop, 8Way
L1DataCache 8KB, 4Way, 38787.87MB/s, 2clk
L2Cache 512KB, 8Way, 21333.33MB/s, 18clk
Memory 2048MB, 2179.10MB/s, 430clk
[DLL] GOGO DLL ver. 2.39b for only bench (Feb 28 2002)
[結果] 再生の48.70倍速 / 音響解析あり / 使用機能 MMX SSE
[結果] 再生の85.18倍速 / 音響解析あり / 使用機能 MMX SSE CPU[2]
355347:02/11/11 23:16 ID:MZf6bpFl
続いて、配列を小さくしてキャッシュに収まるようにしたベンチマークの
複数ジョブの結果です。(kernel-2.4.18-17.7.xsmp)
数字は総MFLOPS(所要時間)です。
     1 job 2ジョブ同時 4ジョブ同時
HTオフ 1067(2.05秒) 2123(2.06秒) 2122(4.12秒)
HTオン 1067(2.05秒) 2133(2.06秒) 2339(3.74秒)

2ジョブ同時では、ほぼ2倍の性能です。HTオンにして、4つの
論理CPUの状態で4ジョブ実行すると、トータル性能が1割ほど
向上しました。インテルが言うには最大3割でしたっけ?

並列化でスレッド数を物理CPUの数より多くして性能向上を
狙うのはなかなか難しそうです。

356login:Penguin:02/11/12 01:03 ID:9up4JSu9
ページングしまくりの時には、効くと思われるけど、どうでしょう?
357347:02/11/12 12:27 ID:Uq+VTKXL
>>356
そう考える理由はなんでしょう?ページングが発生すると
一般に、CPU利用率は激減するので、1CPUでも十分だと思います。
間違ってるのかな?

358login:Penguin:02/11/13 00:20 ID:vH9lO9Qf
ページングしまくりのときに、マルチプログラミング(マルチプロセス)が
効くはずなので、そう思ったのですが、もっと粒度が細かい場合である、
ひとつのプロセスの中でスレッドがキャッシュミスしまくりの時にも、
よく効くのかな?
359login:Penguin:02/11/13 00:46 ID:6mTv3JvB
一つのスレッドがメモリやディスクのI/O待ち状態に
なったときは、マルチスレッドが有効だと思います。
ただ、これは普通の時分割のマルチスレッドやマルチタスク
で済む話で、HTが有効に働く局面ではないんじゃないでしょうか。

360login:Penguin:02/11/16 11:46 ID:p4ZGg3L2
行列計算でVC++6を使ってましたが、Intel C++(Windows版)の購入を検討してます。
行列計算で両者の速度体感の差を経験された方がおありでしたら、教えて下さい。
また、Linux版とWindows版(Win2kで使用予定)の速度体感に大きな差はみられる
でしょうか?
スレ違いですが、プログラム技術@2ch掲示板に行っても「そんなスレありません」
でしたので。


361login:Penguin:02/11/16 15:41 ID:5m6xZ1gP
>>360
試用版あるから使ってみれ
362Galois:02/11/16 22:55 ID:O0ALkNUj
ifc6のFortranにお世話になっています。
シミュレーションをしています。
P4, linux redhat7.1で,
(1)ifc -O3 -tpp7 -xW xxxxxx.f90
(2)ifc -O3 -tpp7 xxxxxx.f90
(3)ifc -O3 -tpp6 xxxxxx.f90
で生成したプログラムの実行結果ですが,(1)は他の2つと異なります。
どちらが正しいか,(1)が間違っているとすればどうしたらよいか
どなたか教えてください。いくつかのプログラムで試しましたが
全て以上述べた結果になります。特にあるプログラムではその違いがあまりに大きく
(1)が不具合を起こしているような気もしますが,原因が不明です。
363login:Penguin:02/11/17 00:25 ID:wvVtn5jg
>>362
ifc -O0 xxxxxx.f90
として出てきた答えがまず正しい。g77とも比べてみれば?
最適化のため、計算の順番を入れ替わったりして、答えが変わる
ということがあり得ます。
364login:Penguin:02/11/17 01:45 ID:roKdiGN4
メモリアクセスのパターンが完全にわかっている行列演算の多くにおいては、
HTを有効に使える気がする。ひとつのスレッドを、メモリーのアクセス
パターンに沿って先行させてページロードをさせたりメモリーをキャッシュから
取り込む作業に割り当てる。すると、もうひとつのスレッドが演算に必要な
データが丁度メモリ内にあるいはキャッシュ内に用意が済んでいるという、
据え膳状態になるようにできるだろう。
365crazy_u:02/11/17 02:09 ID:q3FHpQqg
>>362
最適化レベルを最高にすると計算が壊れることがあります.(コンパイラのバグ)
まず、>>363の指摘を行ってみることです.
その上で,計算が壊れているサブルーチンをみつけて
1.そのサブルーチンだけ最適化レベルを下げる.
2.コンパイラが正しく読解可能なように明快なプログラムにする.
3.コンパイラが正しく読解可能なようにサブルーチンを更に分割する.(1つのファイルになっている場合は-ipオプションはつけない.)
のいずれかを試行してみるとよいと思います.'2', '3'は試行錯誤的になりますが全体のパフォーマンスを落としたくなければ努力してください.
計算の壊れたいくつかのプログラムで共通に使用しているサブルーチンや同様なロジックの部分から調べるのが近道でしょう.
(私も何度か計算が壊れる目にあってます.)
366crazy_u:02/11/17 03:00 ID:q3FHpQqg
>>362
それと,一度はデバッグのオプションをつけて潜在的なプログラムのバグを潰しておくことをお勧めします.
367Galois:02/11/17 08:29 ID:6pVouLNZ
>>362の問題に対するいくつかの答えをいただき,ありがとうございます。
早速,いろいろと試しながらやっていきたいと思います。
368login:Penguin:02/11/17 08:55 ID:7kzAUYhk
>>367
-mpつけてみれば?
369Galois:02/11/17 09:58 ID:D45BaIqk
>>367
-O0 と -O3 でも(-x**無しで)結果が異なります。
-tpp6と-tpp7の違いはありません。
(別のプログラムの出力したバイナリ-ファイルを使っているので
,g77で試すのはすぐには難しい状況です)
プログラムに問題があるようです。
一般的になにかヒントがあれば教えてください。
-mpをつけても何も変わりませんでした。
370login:Penguin:02/11/17 13:32 ID:wvVtn5jg
>>369
一般的なことは、365にも書いてありますが、シミュレーションに際して
問題になり得るのは、丸めとか桁落ちです。アルゴリズムが良くないと、
丸めの影響が積み上がって大きな誤差になることがあります。また、これ
はコンパイラや最適化に依存します。特に単精度では顕著です。

あとは、変数の初期化ですかね。多くのコンパイラでは最適化レベルを
上げるとスピードアップのため変数の初期化を省略します。当然、プロ
グラム中で明示的に初期化しておかなくてはいけないところで、忘れて
いてもコンパイラ(とオプション)によってはちゃんと動いてしまう
ということもあり得ます。

371crazy_u:02/11/17 15:31 ID:q3FHpQqg
>>369
>>370の指摘が原因であった場合は -doubletemps や -save -zero や,現在,単精度なら-r8として倍精度にあげてみることを応急処置として試してみたらどうでしょうか.
変数の初期化が原因なら-O0の場合も結果は信頼できないでしょう.(ifcはデフォルトでは初期化しない)
あくまでも応急処置なので,早めにソースコードを修正(場合によってはアルゴリズムの変更)をするのがベターです.
蛇足ですが,あとは地道に要所要所で中間結果をダンプしてどこで計算がずれているか探すしかないでしょう.
372Galois:02/11/17 18:48 ID:6pVouLNZ
>>370,>>371
Lahey Fortran lf90で
(1)lf90 xxxxxx.f90 -win -o0 -dbl
(2)lf90 xxxxxx.f90 -win -dbl
で実行したら結果が一致しました。
(単精度では結果がやはり異なっていました。かすかな光が見えてきた気分です。)
(2)はdefaltの最適化で-o1です。明日にifc6で試してみたいと思います。
lf90の-o0と-o1で(-dblなし)結果が一致したsubroutineでも
ifc6の-O3と-O0では不一致だったからどうなる不安ですが。
373Galois:02/11/17 19:04 ID:6pVouLNZ
>>371
372に書きましたが,lf90で(windows版です)倍精度で一致しました。
一般に,倍精度で一致した場合,プログラム修正なしで単精度で最適化して
実行しても危険ないんでしょうか?Monte Carlo simulationなので誤差が
蓄積するようなものでもないと思うんですが。
あと,単精度で不一致の場合,プログラムを書き換えることで
単精度で一致するようになるものなんでしょうか?
倍精度で実行すればよいというものでもないのでしょうか?
374login:Penguin:02/11/17 19:13 ID:Z/w9oPOC
do x = 0.0, 10.0, 1.0
とか
if x .eq. 1.0
とか
if x.ge.y
とか使っていませんか。
375Galois:02/11/17 19:20 ID:6pVouLNZ
>>374
do x = 0.0, 10.0, 1.0
は(遊び以外で)一度も使ったことはありません。
if x .eq. 1.0などは使っていません。
(lf90コンパイラでwarningがでます。)
if(x.gt.1.0)なら使っています。

376363,370 :02/11/17 19:53 ID:wvVtn5jg
私はモンテカルロ法は使ったことないですが、整数の疑似
乱数をRAND_MAXとかで割った答えを丸めるか、切り捨てる
かで違いが出てきてもおかしくないと考えます。
最適化レベルを上げると、処理が「丸め」から「切り捨て」
に変わってる可能性があります。

強制的に丸め(四捨五入)を行わせる、-fp_portを試して
みたらどうでしょう。

一般に、単精度計算の際には、この最後の桁の問題について
気をつけないといけません。
377363,370,376:02/11/17 20:12 ID:wvVtn5jg
FORTRANではrandは実数型ですね。いずれにしても、浮動小数点化した
乱数の最小桁の取り扱いが問題になっている可能性があります。
378crazy_u:02/11/17 20:17 ID:q3FHpQqg
xとyが nearly equal の時に z=x-y を計算してzを使う処理を行っていたりしませんか?
または,オーダーのかなり違うもの同士に対して加減算をしているとか?

もし,倍精度に(オプションで対応するのでなく)書き換えるなら,if(x.gt.1.0) では 1.0は単精度のままなので,if(x.gt.1d0) にしないと微妙なところで結果が変わることがあります.
379login:Penguin:02/11/17 20:50 ID:6pVouLNZ
>>376,377
lf90の-apオプションで-o0と-o1(and -o2)で同じになりました。
(-apオプションはhttp://www.lahey.com/docs/userwinexp_revc.pdf
にありますが)
乱数は
IRA = IAND(48828125*IRA,MODU)
   X= IRA/REAL(MODU)
(ただし,MODU=2**30-1+2**30,IRAは初めに初期値を設定)
で作っています。
おなじ乱数を使っている全く別のプログラムではlf90の-o0と-o1で
同じ結果となりますから,乱数の精度ではないような気もします。
しかし,浮動小数点の精度の問題が原因かもしれないと思えてきました。
>>378
情報落ちとか桁落ちの問題はないのではと思っていますが,
いっそう気をつけたいと思います。
380Galois:02/11/17 21:19 ID:6pVouLNZ
379はGaloisが送信したんですが。
login:Pengguinさんになっています。
(何か私が間違えたかもしれません。お詫びいたします)
381363,370,376,377:02/11/18 00:35 ID:QriAUUOr
変数に単精度を使っていても、内部の計算はたいてい、倍精度で行われます。
この辺は処理系やコンパイラによって違いがあるとは思いますが、ifcやg77では
倍精度なんではないでしょうか。結局、これまでに分かっていることから、
1.倍精度で行った計算の結果をそのまま使うか、単精度のメモリ内容を
  再度ロードするかの違い
2.倍精度で行った計算の結果を単精度に型変換するときのやりかたの違い
のいずれか、または両方が原因であると考えられます。

解決としては、全体または部分的にでも倍精度変数にするというのがいいのでは?
私は、いろいろ注意するのが面倒だったりするので、常に倍精度でプログラムしてます。
382Galois:02/11/18 08:22 ID:WBr0ddgK
ifc6, redhat linux 7.1, P4で
(1)ifc -O0 -r8 -tpp7 xxxxxx.f90
(2)ifc -O3 -r8 -tpp7 xxxxxx.f90
(3)ifc -O3 -r8 -tpp7 -xW xxxxxx.f90
はすべて一致しました。
プログラムの致命的なエラーでないこともわかり,
解決策も見えてきました。
とりあえず報告です。
383crazy_u:02/11/18 10:17 ID:1JE+mn0o
>>382
良かったですね.
将来のメンテナンス性からも>>381の提案のように全て倍精度化するほうがベターだと思います.
(計算時間やメモリー容量がシビアな状況なら何とか単精度対応を考える.)
時間に余裕があって,精神的苦痛に耐えられるなら,丸め誤差に弱い部分がどこなのかを調べておくと良いでしょう.
いつか,その知見が役立ちます.
384login:Penguin:02/11/18 12:18 ID:McP4WlkF
イソテルのCPUは、倍精度で計算しちゃうんだから。
単精度は負荷以外の何物でもないような気がする。

385363:02/11/18 13:38 ID:NKF8mUk6
計算が倍精度で行われるとして、単精度の変数を使うと、
一般に、
1. 型変換の負荷が加わる。
2. メモリ転送量が半分になる。
3. メモリ消費量が半分になる。

メモリ帯域がボトルネックになっているプログラム
では速くなることもあります。
以上、参考までに。
386crazy_u:02/11/18 14:57 ID:1JE+mn0o
>>384, 385
単精度は単精度です.自分で試してみましたか?スペックを読んでみましたか?
少なくとも,単精度でSSEと倍精度でSSE2ではほぼ計算時間は倍違います.
自分で簡単なコードを書いて試してみると良いです.(-doubletempsのオプションは無しです.)
387crazy_u:02/11/18 16:32 ID:1JE+mn0o
>>384,385
>>386では大変失礼しました.
「x87 FPUデータレジスタ」と「x87 FPU データ型」の記述を確認をしたところ大変な勘違いをしていました.
その後キャッシュに入りきる大きさの問題で追試したところ,単精度の方が遅いです.
キャッシュに全然入りきらない問題では,CPU⇔メモリーの転送量が効いて,単精度の方が速いです.
せっかくご教授くださったのに>>386で失礼なことを書いて申し訳ありません.
388login:Penguin:02/11/18 17:17 ID:XfxcnBEE

389Galois:02/11/18 20:05 ID:WBr0ddgK
>>381, >>383
プログラムにIMPLICIT REAL*8 (A-H,O-Z)をいれて
実行してみたところ,ifc -O3 とifc -O0ではやはり結果が違います。
プログラムを倍精度化した場合と,単精度プログラムを-r8で倍精度化
した場合で動作が違うのでしょうか。
あと,>>378で指摘された「xとyが nearly equal の時に z=x-y
を計算してzを使う処理」についてですが,Monte Carl法では,
正にこのようなこと(zが負かそうでないかというような判断ですが)
を頻繁に行っています。このようなところから,誤差の問題で
結果が少しづつ変わってくるものと思われます。
いろいろな指摘ありがたいです。

390363:02/11/19 00:16 ID:hgj0uiuu
FORTRANは最近全然使いませんが、
IMPLICT REAL*8(A-H,O-Z)とやった後、
REAL A
とやってない?
私は、IMPLICIT NONEとした後に、使う変数をすべて
REAL*8で定義してます。
391login:Penguin:02/11/19 01:40 ID:Mxyeoxo1
>>389
xとyがほぼ等しいときに減算を行ってはいけないのは、桁落ちが
起こって有効数字が著しく減ってしまうからです。そのような正
負だけを知りたい時は問題ありません。
# 基本的な数値計算の本を読みませう

モンテカルロ法で重要なのは乱数の生成だと思いますが、どんな
乱数生成を使っていますか? 標準関数のrandでは、科学技術計算に
耐えられるような質の良い乱数を生成することは不可能です。
乱数生成については色々と論文もありますから漁ってみて下さい
392crazy_u:02/11/19 08:48 ID:T1RR6mEl
既に知っているかも知れませんが,ここで,サーチしてみたらどうでしょう.
http://www.netlib.org/
(Netlib is a collection of mathematical software, papers, and databases)
393login:Penguin:02/11/19 20:57 ID:0D55ayYY
394login:Penguin:02/11/19 22:10 ID:Hxr/Pgqa
インテルコンパイラ8.0はやくでないかなぁ。
395login:Penguin:02/11/20 19:40 ID:5lsr0uBY
>>391, 392,393
z=x-yの正負に基づいて,exp(-z)と乱数aを比較し,その結果におおじて次の処理
を行うという処理では誤差がでるでしょうか。乱数は>>379のものを使っています。
今までそれを使って特におかしいと感じたことはありませんが,結果の乱数依存性
ということも,前から気になっていたことのひとつです。
www.math.keio.ac.jp/matumoto/mt.htmlの乱数を使わしてもらって,
この依存性を調べて見ようと思ってはいますが,目先のことに追われて
ばかりで…。
396login:Penguin:02/11/21 16:47 ID:3MfEdJo4
Intel Fortran 7.0 for Linux
正式版が出たようです.
いつもバージョンの数字が大きく変わりますが,
何が変わったのか私には不明...

# ログインIDもパスワードも忘れると,一度登録メールアドレスでは,
# 再登録は不可能?
397login:Penguin:02/11/22 00:45 ID:fdqnnMUD
インテルコンパイラ8.0betaはやくでないかなぁ。
398login:Penguin:02/11/22 01:14 ID:tIlE0Exb
Intel Fortran 7.0 for Linux で Fortran90
を勉強し始めたんですが、いきなりはまってしまいました。
以下のプログラムの出力が 0 1 1 になるのですが、何故でしょうか?
0 1 0 となると思って書きました。

program optional_arg
write(*,*) func(), func(1), func()
contains
integer function func(arg)
integer,intent(in),optional :: arg
integer :: ret=0
if(present(arg)) then
ret=arg
end if
func=ret
end function func
end program optional_arg
399login:Penguin:02/11/22 01:28 ID:2D9K7JEY
(金)に関するちょっといい話

あるテレビ番組で徳川埋蔵金発掘という番組があってその中でショベルカー
でいくら探しても金が出てこなかったが 野中 土井 亀井 中川 の4人組
の身元を洗ったところ大量の金が見つかりました
裁判所で4人はこの金は金正日さんから接待されたときにもらった金ですと自白しました。
この情報をスクープしたのは週刊金曜日『ちくし哲也をはじめとする金正日の工作機関雑誌』
金の使い方っていろいろあるね。 お金に関する雑誌ができました。
http://book.2ch.net/test/read.cgi/zassi/1036797442/l50


400login:Penguin:02/11/22 04:23 ID:IL4pBXCP
7.0入手ついでに400getさせていただきます。
401login:Penguin:02/11/22 11:54 ID:SQq29KVZ
7.0をインストールしました。

ifcと打つと、
/usr/lib/crt1.o: In function `_start':
/usr/lib/crt1.o(.text+0x18): undefined reference to `main'
となり、コンパイルできないのだけど

ifcbin
だとコンパイルできます。なんでかな〜〜〜〜〜
402login:Penguin:02/11/22 12:10 ID:ih1pm1LS
>>401
なんでcrt1でてくんの?
見に行くライブラリ間違ってない?
403login:Penguin:02/11/24 00:39 ID:+s3T28rl
>>401
iccの方ですが、私の環境でも出ますね。
もっとも引数無しでを実行したときに表示されるだけなので、実用上支障はありませんが。
環境は redhat8.0 + glibc-2.2.93-5。
この環境だとVer6がうまく動かなかったので7.0の登場は嬉しい限りです。
404login:Penguin:02/11/24 01:53 ID:AQbo0hie
>>398
contains ではない関数にしてみたらどうなりますか?
あるいは、integer::ret=0 をやめて
integer::ret
ret=0
と毎回retに0を入れてみるとどうですか?
405crazy_u:02/11/24 04:04 ID:9k5WSccy
>>398
integer::ret=0はinteger,save::ret=0と同じコードになります.(-Sオプションでアセンブリをだしてみると分かる.)
初期値設定はあくまでそのプロセスの初期値なので、値を変更すると(save変数になっているので),その後の呼び出し時には変更された値になります.(DATA文でも同じ)
Fortranの言語仕様なのか,業界標準かは分かりませんが,たいていのコンパイラはそうだと思います.(富士通も同じ)
406login:Penguin:02/11/24 12:07 ID:6nxAFq7p
>>403
そりは、引数ナシだとリンカモードになってしまい、ランタイムライブラリだけから
a.outを生成しようとする、おバカなドライバ(icc)の仕様です。
gccみたいにシンプルに"No input files"と文句をいって欲しかったです。
407login:Penguin:02/11/24 20:05 ID:b+2ujWQY
>>406
6.0だとちゃんと、下のようにでるよ。
ifc: Command line error: no files specified; for help type "ifc -help"
408398:02/11/25 23:33 ID:011nOYQa
>>404,405
呼び出すごとに初期値が設定される訳じゃないんですね。
ありがとうございました。
409login:Penguin:02/11/27 03:03 ID:HhmqaFh8
なるほど、どうやら昔のFortranでData文をつかって
REAL A
DATA A/0/
と分けて描く変りに、一部の拡張仕様Fortranでは
REAL A/0/
などと書けていたけど、それが
REAL::A=0
とFortran90で書くようになったというだけのことなんだね。

410login:Penguin:02/11/27 03:03 ID:HhmqaFh8
培風館「Fortran90プログラミング」冨田博之、2200円、ISBN4-563-01409-5
(この本と同じ内容のWebへのリンクは、www.media.kyoto-u.ac.jp/htomita )
の102頁には、「宣言文やDATA文による初期値の設定は、コンパイルの際に
メモリ領域を予約するついでに行われるため、最初の実行のときにしか有効
ではない。。。」(頁102より)
とかかれている。ただし、これは、そういう実装もありというだけのこと
かもしれない。つまり、毎回初期値を設定し直すようなコードを吐いても
規格違反ではないのではないか(規格書は高いから持っていない。)
頁102には、「このようにSAVE指定がなくても、前回に呼ばれたときの
値が保持されたままの場合がある(一般には何が保持されているかは
不定である)。。。」となっている。

Fortran77の時代に、サブルーチンなどの内部のローカル変数や
引数の値は、サブルーチンを抜けたら消滅し、不定になるはずだった。
そうしないと最適化が困難になるし、記憶の容量も減らせない。
だがそれ以前のFortran66の時代の多くのコードが動かなくなるので、
SAVE文を書けば比較的簡単に、66時代と同様のことが実現できる
ようにして、純粋ならば SAVE指定から外れたローカルな変数は全部、
副プログラムを抜けたら存在が消滅するのであった。
 個人的には、SAVE文以外に、NOSAVE文(とでもよぶもの)を
ついでに導入すべきであったと思う。NOSAVE指定した変数や記憶域は、
積極的に次回以降に値が残らないことを強調するものだ。
(77の規格ではそもそも値が残らないのがデフォルトなので、
NOSAVE文みたいなものは導入されなかったが、現実の商用コンパイラは、
このあたりがあやふやだったり混乱していたりした。)
コンパイラによっては、値が残留しない77の規格を厳密に実現できる
ものがあるが、そうでないのが標準のものや、コンパイラオプションで
実現できたりしたなどである。
411crazy_u:02/11/27 13:10 ID:M6T+ESir
Xlsoft Corporationの案内で
http://www.xlsoft.com/jp/products/vtune/perftool.htm
で「Intel C++ Compiler 7.0 for Linux」の項目に
「Linux 版インテル(R) C++ コンパイラ 7.0 では、GNU C/C++ との互換性の強化、C++ ABI との適合性、幅広 gcc 拡張子のサポート、およびごくわずかな修正を行なうだけで Linux カーネルをビルドすることができます。」
と説明がありました.「ごくわずかな修正」を調べてみます.分かったら報告します.
412login:Penguin:02/11/28 01:16 ID:Aj/Ka3kq
カーネルとモジュールとライブラリがビルドできて、相互に取り混ぜてつかえ
たらすごいな。インラインASMの部分などは、無理だろうから、デバイス
ドライバーなどは、全面書き直しするしかなかろうと思うけど。
 がんばってOSカーネル丸ごとチャレンジして欲しい。
クロックがあがったように体感速度が上がれば素晴らしい。
SSE命令などを使ってデーターのバッファー転送を高速化したり、
サウンドドライバーが音質が向上したり、
XーWindowsが飛ぶように速く動くようになればめでたい。
413login:Penguin:02/11/28 01:40 ID:zRfKz+Ms
>>412
どこを縦読みすればいいのでつか
414login:Penguin:02/11/28 17:06 ID:TwGoRG+a
bind samba openssl openssh apache2 と icc7 でコンパイルに成功したけど、
emacs で遂に挫折。
415login:Penguin:02/11/28 17:18 ID:rzTXVehE
>>414
どこか変化した?
416login:Penguin:02/11/29 00:00 ID:CcQhIMOA
カーネル最適化してもなぁ...
417login:Penguin:02/11/30 05:16 ID:LPoU/MM7
-vms オプション付けても、VAX FORTRAN 拡張の
関数・サブルーチンは使えないのかな。
418login:Penguin:02/12/01 07:17 ID:Smn19ga0
icc で PREFETCH ってどうやったら効くのかな?

ピボッティングもスケーリングもやってない
単純な LU 分解のコードを試してみたけど、
icc -xW -tpp7 と gcc -O2 (2.95.3)で実行速度が変わらない。
で、 -S してみたらどうも PREFETCH を使ってないみたい。

まだ、 ccc ほど賢くはないのかな。
だとしたら Xeon*2 買うより AthlonMP*2 買ってた方が
HARDWARE PREFETCH の恩恵にぞくせてよかったかも。
419login:Penguin:02/12/01 09:11 ID:6cxWcw03
>418
Pentium4コアのC1 stepping以降はhardware prefetchのバグ(errata P46)が
直っているはずですぞ。Xeonも同じです。
420crazy_u:02/12/01 18:53 ID:Q5N6niNl
>>418
マニュアルを見ると,-O3にしないとprefetchはかからないようですよ.
"Intel C++ Compiler User's Guide"の
[Optimizations]/[Optimaization Levels]/[Setting Optimizatin Levels]
の"IA-32 and Itanium Compilers"に書いてある.
421crazy_u:02/12/01 19:18 ID:Q5N6niNl
>>418
性能を向上しようと思ったら,コンパイルオプションもそれなり設定してコンパイル時のメッセージとかも見て,
最適化制御行を入れたり,コンパイラが理解できる(最適化しやすい)ようにコードを書き換えたりしないと性能はあがらないよ。
422login:Penguin:02/12/03 09:57 ID:EIrgZrpN
P4-2.26でifc7を使い、自分のコードだがvector化するだけで実時間が1/4になった。
dtimeの計測では同じ数字なのだが、うれしいがわけわからん。
423login:Penguin:02/12/03 10:35 ID:5aayB2ks
数値計算用に dual athlon 買う予定なんで興味あるのですが、athlon でもかなり効果ありますか?
それとも P4, Xeon*2 (高いんで手が出ないかも)にすべきなのでしょうか?
過去スレ読んだつもりですが、イマイチはっきりしないので。
424login:Penguin:02/12/03 10:45 ID:X1BM48vg
>>423
intelが敵に塩を送るようなことはしないと思われ
425login:Penguin:02/12/03 11:17 ID:5aayB2ks
>>424 と、常識的には思ったんだが、使えるみたいだし。
あと、intel 用に optimize したら意外と athlon でも行ける、という
こともありうるかな、と思って。(意図的に intel 専用のコードを使って
壊すとかしなければ。)
426login:Penguin:02/12/03 11:29 ID:g4+eV5lN
kernel 2.5.45付近でintel compiler用patchって文字があったんで、
お手軽にコンパイルできるのかと思ったけど、そういうことではないのね。
dependency fileのフォーマット違いを適当に変換してcompileしてみたけど、
include fileがらみで止まったので、とりあえず放置中。
427login:Penguin:02/12/03 13:32 ID:MBmEQllb
レス tnx.

>>419
Intel から XEON の PDF 落としてきたら、
確かに L2 cache 周りにバグがあったみたいですね。

>>420
CPU のタイプ指定したからと言って、
それようの最適化してくれる訳じゃないのね。
で、試したけど -O3 付けても prefetch してくれないみたい。
うーん、 prefetch は必要ないと判断されちゃってるのかなぁ。
とりあえずマニュアルちゃんと読んでみます。

>>421
本気で使うプログラム組むのは結構大変そうですね。

ま、実際の実験に使うときはひよって、
MKL や atlas あたりの既成のライブラリで
間に合うところはそっちに投げちゃうつもりなんだけどね。
っていうか自分が素人考えでコーディングしても勝てそうにないし (^^;

とりあえず、 PREFETCH や SSE2 の性能を見たいだけなんで、
今は PREFETCH してるときとそうでないときの差が観測できれば満足です。

athlon(palomino)+gcc や alpha(21164)+ccc では
pentiumIII+gcc とクロック比の2倍近い差が観測できたので、
配列なめるような計算だと
メモリの遅さをごまかす PREFETCH が効くとおもうんだけどなぁ。

長文失礼。
428crazy_u:02/12/03 23:43 ID:biU06C3s
>>427
参考までに,>>351で紹介した本を参考にして書いたコード(vector計算機用に書いたものをP4用に変更したもの)
の結果を紹介しますので,ぜひ,自分でチューニングしてみしょう.
10000×10000の対称密行列の下三角部分を1次元配列で持って,三角分解する問題です.
(倍精度.ピボッティング無し.)
m×mのブロックを同時分解するプログラムをtimeコマンドで計測すると、
m=1; 603.699u 0.728s 10:05.38 99.8% 0+0k 0+0io 605pf+0w
m=2: 284.677u 0.734s 4:45.86 99.8% 0+0k 0+0io 606pf+0w
m=3: 206.556u 0.726s 3:27.60 99.8% 0+0k 0+0io 607pf+0w
m=4: 180.873u 0.736s 3:01.90 99.8% 0+0k 0+0io 609pf+0w
m=5: 233.402u 0.722s 3:54.48 99.8% 0+0k 0+0io 610pf+0w
m=6: 298.871u 0.744s 5:00.08 99.8% 0+0k 0+0io 617pf+0w
となりました.m=1とm=4では3倍の性能差です.m=5,6では1つのループに夫々25個,36個の式をいれるとvectorizeがかからないので、
2つのループに分けていることで性能が悪くなっていると考えられます.(CPUリソースが足りてない?)
コンパイルオプションは>>326です.動作環境は
P4 2.53GHz, M/B:ASUS P4T533-C, memory: PC800-40 ECC 512MB×4, HDD: 80GB(7200rpm)×2 (software RAID1)
memoryが、PC1066ならあと10〜20%性能が上がると思います.
429login:Penguin:02/12/04 05:11 ID:nRFkxlL9
>>428
GFLOPS換算だと、どういう性能値になるのかな?
430crazy_u:02/12/04 20:16 ID:LtG05CzF
>>429
<演算回数>
ijk型の分解(LDLT分解)をしているので、作業用の配列RDを使用してアルゴリズムを書くと、

icon=0
for i=1,n
for j=1,i-1
for k=1,j-1
Aij=Aij-Aik*Ajk ; 加算1, 乗算1
next k
next j
for k=1,i-1
Aii=Aii-Aik*Aik*RDk ; 加算1, 乗算2
next k
if(|Aii|<tolerance) then
icon=i
goto end
end if
RDi=1/Aii
for k=1,i-1
Aik=Aik*RDk
next k
next i
end

最後のループはその前のループと一つにできるので演算回数にはカウントしないことにすると、
n=10000で,演算回数=n(n+1)(2n+1)/6-n=333.383325 GFLOP
431crazy_u:02/12/04 20:16 ID:LtG05CzF
続きです.
<GFLOPS>
(user使用CPU時間+sysytem使用CPU時間)で割ると,

m=1: 333.383325/604.427=0.552 GFLOPS
m=2; 333.383325/285.411=1.170 GFLOPS
m=3; 333.383325/207.282=1.611 GFLOPS
m=4; 333.383325/181.609=1.838 GFLOPS
m=5; 333.383325/234.124=1.426 GFLOPS
m=6; 333.383325/299.615=1.114 GFLOPS

m=1はもとの旧態依然のコード(vectorizeはされている)です.多くのレジスタは遊んでいるのでしょう.
vectorizeによる性能向上はあきらめて手でloop unrollingをしていけばもう少し性能は上がるかもしれません.
P4は,倍精度浮動小数点命令を 2 clocksで2命令こなせるので,P4 2.53GHzだと理論性能値は2.53GFLOPSであり,
m=4では理論性能値の72.6%である.

性能値の計算方法が違ってたら御指摘ください.

この例では性能が向上していますが,vector計算機や通常のスーパースカラー計算機では性能が出る方法がP4では全くダメだ

ったりして試行錯誤の繰返しです.
432login:Penguin:02/12/04 23:39 ID:pg0evXMe
祝、Hyper-Threading対応age

インテル、Hyper-Threading対応コンパイラを発表
http://www.watch.impress.co.jp/pc/docs/2002/1204/intel.htm
433login:Penguin:02/12/05 06:46 ID:/JxgZHh9
マルチジョブ環境ではない、シングルジョブの環境では、
user+sys を演算にかかった時間とするというのは、
たとえばスワップなどの待ちが発生していない場合には、まあ妥当だと
思うが、現実の計算させている側からみると、user+sys よりも
現実にかかったWallClock(実時間)の方が意味を持つ。
メモリーサイズを越えた計算を行う場合には、user+sys の時間と
くらべて実際の時間はうんと長くなることはよくある。
434login:Penguin:02/12/06 16:21 ID:tdSYXBjW
>>414
CVSから持ってきた Emacs 21.3.50.1 を icc -tpp6 -xK -ip -nolib_inline -O3 でコンパイルしてみました。
1. src/regex.h の最後の方に、__restrict を gcc のバージョンを見てほげってる部分があるのでそこをつぶす
2. temacs のリンクがうまくいくように、icc -v の出力を見ながら src/Makefile をいじる
・STARTFILES の最後に crtxi.o を追加
・LIBS から -lgcc を削除し、-limf, -lcxa, -lunwind を適切に追加
・LIBS の crtn.o の直前に crtxn.o を追加
ぐらいでうまくできました。
gcc に比べて速くなったか…は分かりませんねぇ…。どうやって比べればいいのかな?
435login:Penguin:02/12/07 15:07 ID:Ui0kbuxO
>>434
21.2で試してみたけど上手くいかなかった。残念。
temacsは出来たけど、ldd temacsすると
/usr/bin/ldd: ./temacs: No such file or directoryと言われる。
リンクにミスってるのかな。もうちょい調べてみます。
436435:02/12/07 15:20 ID:Ui0kbuxO
/lib/ld-linux.so.2がリンクされてなかったのが原因でちた。
437login:Penguin:02/12/07 15:40 ID:Ui0kbuxO
とはいえ、確かに速くなったのかサッパリわからんですねえ(w。
とりあえずMule-UCS込みでemacsをdumpするほうを頑張ろう……
438login:Penguin:02/12/07 21:10 ID:fP7YPqYN
>>437
M-x hanoiで時間計ってみてら?
439login:Penguin:02/12/07 23:19 ID:Ui0kbuxO
>>438
おお、なるほど。
elpでみると、一割弱ぐらいicc版のほうが速いかなといえなくもない感じですが、
実行の度にバラつきが大きいので、きちんと統計とらないとなんとも。
……という程度の違いぐらいでしたw
440login:Penguin:02/12/08 16:02 ID:t1EMsFPn
遅ればせながら私もiccを試そうと思い立ち、さっそくICC7.0の30日間
お試し版ライセンスでダウンロード&インストールしてみました。

で、とりあえずHello worldからー、と思ってコンパイルしてみると、

# icc -O t.c
icc: error: Fatal error in /opt/intel/compiler70/ia32/bin/mcpcom, terminated by
segmentation violation
compilation aborted for t.c (code 1)

とエラーが…。-Oオプションを取っ払っても同様にエラーが出ました。
どのような原因が考えられますでしょうか?
441login:Penguin:02/12/08 21:35 ID:u1M6xTCC
>>440
どんな Hello world 書いたのかまずは晒せ
44230:02/12/10 15:16 ID:Ws55tYEe
linux版ifc6.0=>7.0に乗り換えたのですが、長時間計算させていると
adress errorというものが出るようになりました。これはなにが
原因なんでしょうか?
443login:Penguin:02/12/10 19:50 ID:p6pBFSA9
User's Guideには
Usually caused by a wrong value being used as an address
(check the associativity of all pointers).
って書いてあるよ。

いきなり落ちるんだったらAllocatableな変数をallocateしないで
渡しちゃったとかって感じだろうけど、
しばらくして落ちるのはなんだろうね。
pointerを使ってるんだったら、そこを集中的に見てみるといいんじゃないかな。
444login:Penguin:02/12/10 20:29 ID:WQilySMD
どーも intel の人が FreeBSD にも興味を示し始めてるらしい。
出るといいな。そんな感じのメールが今日僕のところに来ました。
44530:02/12/11 00:57 ID:KREW2anI
>443

なるほど。pointerは使っていないので、原因はよくわかりませんね・・。
2週間くらい落ちずに計算してほしいので、6.0に戻すことにします。
ありがとうございました。
446login:Penguin:02/12/11 03:23 ID:ngo2KBLZ
ソースうpしる!!
447440:02/12/12 14:02 ID:fC7hqe+l
>>441
すみません。どうも、2.2系列のkernelで実行していたのが原因のようです。
2.4系列のマシンで試したところ、ちゃんと動きました。
448おむこさん志望 ◆QtGqCwfDSA :02/12/12 19:18 ID:Gd+VRRob
>>439
lisp のベンチマークなら竹内関数が有名。
(define (tak x y z)
(if (>= y x) z
(tak ( tak (- x 1) y z)
( tak (- y 1) z x)
( tak (- z 1) x y))))
で、(tak 30 20 0) とでもやってみて。
ただ、一般ユーザから見れば算術演算よりもむしろ Garbage Collector の性能のほうが
気になる。現に (setq garbage-collection-messages t) eval ると GC しまくってるし。

GC のベンチマークはどうやればいいかな?ごみセルをものすごい勢いで生成する
プログラムなら何でもいいと思うけど。
449おむこさん志望 ◆QtGqCwfDSA :02/12/12 19:21 ID:Gd+VRRob
>>448 は Scheme 用だたーよ
emacs lisp 版は
(defun tak (x y z)
(if (>= y x) z
(tak ( tak (- x 1) y z)
( tak (- y 1) z x)
( tak (- z 1) x y))))
ってところかな。
450login:Penguin:02/12/13 08:15 ID:zhmsFywd
>>448
不勉強なもんで、竹内関数の「た」の字も知りませんでちた。

それはさておき、Pen3/800MHz 上の Linux の emacs21.2 で、
とりあえず (tak 15 10 0) を elp で見てみました。
gcc2.96 -O2 で Elapsed Time が約 3045、
icc7 -O3 -mp1 -prec_div -fp_port -tpp6 -xiMK では約 2878 でした。

400MHz 以下の PC で emacs に微妙に重さを感じるような環境だと、
あるいは体感で違いが出るかもしれないなーという感じかも。
451login:Penguin:02/12/19 17:03 ID:5E3T5r1w
ライセンス送られてこねーよ
バージョン7って6の時のやつ使えますか?
452login:Penguin:02/12/19 17:08 ID:C7axpMDs
>>451
自分で試せることあるなら先にやってから愚痴言えばいいじゃん。
453login:Penguin:02/12/20 12:29 ID:GkB+B9PY
>>442
CPUが過熱しているのでは?浮動小数点計算回路は、相当に熱を出すので、
浮動小数点計算をフルに稼動させると、そうではない場合にくらべて
かなり冷却をまじめにしなければいけなくなります。
CPUの温度が上がると、回路の動作可能速度が落ちてしまい、
回路がクロックについていけなくなるのです。
454login:Penguin:02/12/20 13:32 ID:/crymO6Z
[ie]cc 7.0 新しいのが出てるっすね。
% tar xvf ./l_cc_pu_7.0.075.tar
(抜粋)
intel-icc7-7.0-75.i386.rpm
intel-iidb7-7.0-150.i386.rpm
intel-isubh7-7.0-75.i386.rpm
455login:Penguin:02/12/20 13:35 ID:/crymO6Z
>>454
Q148399,Q162516 Profmerge causes SIGSEGV under critical system load
Q148801 Seg fault with virtual base, template class
Q144382 internal error: select_overloaded_copy_constructor: NULL constr
Q134428 incompatibility with regard to large file support
Q155513 compiler generates incorrect function name if function body changes
Q155001, Q163438 Multiple symbols created for local statics in cloned routines
Q153937 Internal error loop: source_file_for_seq: bad seq number on vla dim expr
Q149096, Q153942 constant used in generated andpd instruction is not 16-byte aligned
Q131763, Q162474 Problem with the code generated for delete[]
Q141709, Q160439 new substitute header file was added
Q100490 __declspec(align(n,off)): some (base,offset) pairs produce incorrect results
Q162533 dyn file corruption
Q158469,Q160670 Problem in PGO function naming scheme
Q144379 -vla cannot have static storage duration
Q122044 Compilation hangs when test case is compiled with optimization on
Q122047 Compiler hangs when optimization is on
Q96189 Is arithmetic operation on void pointers allowed?
Q151784 -xW vectorization gets wrong results
Q156239 inner loop was not vectorized
Q153389 Dwarf2 Lexical block boundaries incorrect, overlap other functions
456login:Penguin:02/12/20 13:36 ID:/crymO6Z
>>455
書き忘れた。l_cc_p_7.0.065 からの icc の修正点です。
457login:Penguin:02/12/24 16:18 ID:JyDxMYz1
マイナーバージョンアップをダウンロードしたいと思ったら,

「We're sorry, each user may only obtain one non-commercial license for each version
 of an Intel software development product. ・・・」

と,ノンコマーシャルバージョンは,一人一つのバージョンしかダウンロードできない.
みんなどうやってアップグレードしてるの?
メアドたくさん手に入れて,それで再度登録?

458_:02/12/24 16:20 ID:ouu1I4jc
459login:Penguin:02/12/24 16:22 ID:4v+Gtyjb
>>457 ?? 一人、一つのバージョンにに関して 1 つのライセンスしか
取れない、って書いてあるけど??
460crazy_u:02/12/24 21:05 ID:OYox6oQQ
>>457
https://premier.intel.com
へいって,既に取得しているユーザIDとパスワードでログインして,"Download"か"What's New"へいけばOK.
既に取得しているライセンスは新しいバージョンでも継続して使えます.
461login:Penguin:02/12/25 00:49 ID:uv9cjelH
iccで環境構築している人っています?
462login:Penguin:02/12/25 17:00 ID:abtISU62
>>460
でけた.
更新されてなかっただけ見たい.
ありがとう!
463login:biginer:02/12/25 17:07 ID:q3QDBWTa
こんにちは
質問なのですが。
当方IntelPentiumIIIProsesscer800Mhzを使用して、
OSにRedHatLinux7.2Valhallaを使っているのですが

このような環境でもiccの効果は見込めますか?
Pentium4でなくてPentiumIIIの場合gccと比べて一般的にはiccでも高速化する傾向があるのでしょうか?

以上、かなり初心者ですが、質問に返答いただけましたら幸いです。

464login:Penguin:02/12/26 23:59 ID:G0YkL98D
>>463
30%ほどの速度向上が見込めるそうです。
465login:Penguin:02/12/27 14:38 ID:GXP8e78Y
だれか、カーネルとライブラリー、モジュールを
iccで再構築に成功した人いないの?
466login:Penguin:02/12/29 00:22 ID:4wQu8ATx
ifcで計算した結果をバイナリで出力したデータを
テキストに変換すると、精度がe-44のデータが出るのですが、
このようなゴミみたいなデータをゼロにするにはどうしたら
いいでしょうか?ちなみに、変数はreal*4で指定してます。
467466:03/01/02 19:57 ID:+EkiIDCE
解決しました。
汚してすみませんでした。
468login:Penguin:03/01/06 13:29 ID:Do2PTvNh
教えて偉い人

*.licって別のマシンで使い回し出来なかったけ?
HostIDとかとってる?
469crazy_u:03/01/06 14:33 ID:JaWhyWax
>>468
偉くない人だけど考えを書きます.
*.licは別のマシンでも使いまわしできるけれども,
2台以上のマシンへ同時にインストールするのは商用用途なら絶対にしてはならないことです.
自分もソフトを書いて仕事をしている以上,他の人のソフトの権利も守るべきです.
マシンを載り換えるならOKだと思います.
470login:Penguin:03/01/06 15:03 ID:HQfFIc8m
>crazy_u

thanks
いや、正月を機会に速い箱に乗り換えてiccをインストールしようとすると
インストーラに撥られるんです。前の箱は解体したので研究が進みません。

契約は守っていますので一応。
471ot22:03/01/06 18:15 ID:5PqBTGEN
一応iccだけでカーネルはできました(linux-2.4.21-pre2)。
gcc3と思わせればできてしまいました。早くなったのかどうかはわかりません。
ライブラリはやってみようとしましたが、gccべったりの作りで断念しました。

472login:Penguin:03/01/06 18:22 ID:f86BKYE5
lmgrdを使ってライセンス管理する某ソフトは
NICのMACアドレスを見ていたりするのだが、
今はそういう問題じゃないんだよね。
473login:Penguin:03/01/06 18:53 ID:lP1onCdi
>>472
ああ、入らない。

その某ソフト(octaveの親御さん)が入っていてFLEXlmがそっちを見ていそうです。
/opt/intel/licensesじゃなくて/usr/localな方を見ているとか。
474login:Penguin:03/01/06 21:52 ID:Np8sVtCA
>>471
>ot22
>一応iccだけでカーネルはできました(linux-2.4.21-pre2)

すばらしい。コンパイルオプションはどうしました?
475login:Penguin:03/01/08 20:11 ID:mhZesDiw
Intelの新しいチップセットE7250を使ったMother Board
はRed Hat 7.1が動きますか?
ifc7をP4-3.06で動かしたいんですが,
850EでPC1066の方がいいでしょうか?
シロートの質問で申し訳ありません。
476crazy_u:03/01/08 20:38 ID:FGrvqAXs
>>473
installする時にライセンスがみつからない場合はライセンスの置いてあるディレクトリを聞かれませんか?
聞かれたら「絶対パス」で入力してあげればOKなはずですが.....
installできているなら,/opt/intel/compiler70/ia32/binにあるifc, icc, icpcを開いて
INTEL_LICENSE_FILE=/opt/intel/licenses;
export INTEL_LICENSE_FILE;
となっているか確認してみると良いと思います.
477473:03/01/08 20:51 ID:dtFQPFK8
>>476
>crazy_u
>ライセンスの置いてあるディレクトリを聞かれませんか?

いや、「ライセンスはどこだ?INTEL_LICENSE_FILE=/opt/intel/licenses参照」
といってインスタレーションスクリプトが閉じちゃうんですよ。でFLEXlm
使ってるMATLABが走ってるんでそれがいたずらしているのかなと。

相変わらず仕事が止まったままです。欝。
478crazy_u:03/01/08 20:54 ID:FGrvqAXs
>>475
動くかどうかは入れてみないとわからない.(多分,動くでしょう.)
新しいデバイスのサポートととかを考えると,赤帽7.3か8.0にしたほうが良いでしょう.
私は,850E(ASUS P4T533-C, 安定してます)で赤帽7.3と8.0でifc7を動かしてます.(2.53GHzと2.80GHz)
性能の総合評価では850EでPC1066だと思います.DDR266ではメモリーへの書込み,書換えはRIMM PC1066に遠く及ばない.
http://pcweb.mycom.co.jp/benchmarklab/2002/33/index.html
で比較試験をしていますので、参考にしてください.
E7205が今後どこまで上位のCPUとメモリをサポートしてくるか次第で有力候補ではありますね.
でたばかりのチップセットの場合は人柱になる覚悟も必要です.すぐにバリバリに使いたいならBIOSも枯れて安定している方を勧めます.

P4-3.06は非常に羨ましい!!
479login:Penguin:03/01/08 21:18 ID:Nu006fMN
>>475
ここも参照されたらいかが
www.hpc.co.jp

あたしは数値計算に最適化されたカーネルのパラメータとか知りたい。
480crazy_u:03/01/08 21:30 ID:FGrvqAXs
MATLABを使用している人は >>477 を助けてあげてください.
installファイルの中を読んで調査するしかないかも....
中で使用されている変数名のどれかが既に他で定義されてしまっているのかもしれない.
それさえ分かれば臨時に別の変数名に書き換えてしまえばよいのですが…
力になれなくてごめんなさい.
481crazy_u:03/01/08 21:56 ID:FGrvqAXs
>>477
もしかして,*.licをftpで転送してませんか?
binaryかasciiかどちらかは忘れましたがモードを間違えるとviで開いても見た目は分かりませんが壊れています.
保管してある(でしょうきっと) *.licをフロッピーディスクにいれて移してみてはどうでしょう.
482ot22:03/01/08 22:50 ID:NeqYyahG
>> 一応iccだけでカーネルはできました(linux-2.4.21-pre2)
パッチらしきものを希望される方は多いでしょうか? 多そうだったら
public にアクセスできるところに用意しようかなと思ってます。

P.S. モジュールが出来ているような出来ていないような
483login:Penguin:03/01/08 23:14 ID:U/R7YQLN
>>482
> パッチらしきものを希望される方は多いでしょうか?
ぜひぜひお願いします。これは面白い♪

>crazy_u
ううたしかにbinaryで転送して壊れている可能性も...
あとで報告します。
484login:Penguin:03/01/09 00:19 ID:i1DFujLV
なんと
485login:Penguin:03/01/09 00:25 ID:5dI2J0HT
2
486login:Penguin:03/01/09 00:47 ID:janFKrXY
2chブラウザ以外からは見れないようにすれば軽くなるんじゃないの?
487login:Penguin:03/01/09 00:53 ID:zKKLoi8Q
ひろゆき好きです(ポ
488login:Penguin:03/01/09 01:10 ID:d0cXwiPT
ひろゆきって男前だよな
489login:Penguin:03/01/09 01:23 ID:d0cXwiPT
>>440
そんなに寄付集まらないと思うぞ。
利用者に月1万円って現実的ですか?
490login:Penguin:03/01/09 02:02 ID:OzFfd3tm
僕の肛門もIP記録実験です
491login:Penguin:03/01/09 02:59 ID:V0yK4S7y
ゲハ板なんかは大人しくなりそうだな・・・
492login:Penguin:03/01/09 03:47 ID:qciTMwbB
>>157
裁判上不利になるから、大きいところではもう無理だろうな。
だから2ちゃんでいい、という帰結もまたおかしいけれども。

これからは、IPが裁判で提出されるのが常識になりつつ、
それ以外の局面でどうIPが守られているか、とか
どれだけシステム上の信頼性があるか、とかが掲示板の人気に影響しそう。
493login:Penguin:03/01/09 04:26 ID:o3zr6kVd
XFree86をIntelのCPUのアーキテクチャー向きに最適コンパイルしたら、
特に、MMXとかのベクトル的命令を多用するコードを吐けたら、
さぞや描画性能が上がるのではなかろうかと思うけど、あるいは
Graphics Chip のドライバー性能がネックなのかな?
494login:Penguin:03/01/09 08:35 ID:2OFBTc6l
>>478
赤帽8.0はifc7が動作しないと,ifc7のresellerのホームページに
書いてありましが,実際は動くんですか?
495login:Penguin:03/01/09 10:22 ID:e/ruQh9v
>>493
gcc-3.2でオプション変更するだけでも効果があるから
期待できるでしょうね。
496ot22:03/01/09 11:27 ID:fZiQVJ4s
>>482
> パッチらしきものを希望される方は多いでしょうか?
ぜひぜひお願いします。これは面白い♪

http://www.cs.tohoku-gakuin.ac.jp/~otofuji/ICC-Linux/memo.html
をご覧下さい。自己責任でテストして下さいね。
497login:Penguin:03/01/09 15:07 ID:hzDSQYSx
FlexLMウゼー
498login:Penguin:03/01/09 16:03 ID:+r8AnlXi
>>496
「責任は負いかねません」って。
499crazy_u:03/01/10 00:34 ID:4WK5owb0
>>494
478の人も赤帽8.0で動かしているようです.
私は何も問題なく動いています.
Intelで動作検証が済んでいないというだけではないでしょうか.
gcc-3.2とgcc-2.9xはバイナリーの互換性がないので,使用するライブラリによるのかもしれません.
不安なら,赤帽7.3にしたらどうですか.
ちなみに,赤帽8.0のvsftpdはasciiモードの転送はファイルが壊れる目にあってます.
500login:Penguin:03/01/10 01:02 ID:d3LQt9jT
>crazy_u
やっぱFLEXlmの問題です。無理やりインストールして走らせてみましたが
FLEXlmが管理するライセンスのところで引っ掛かりました。

Cotave clone(W のライセンスファイルを加工するです。あーやだやだ。
501login:Penguin:03/01/10 16:31 ID:QDvvakyP
>>499
自分も試してみたいと思います。
502login:Penguin:03/01/12 23:05 ID:6n/fieKJ
>ot22
patch thx.うちも拵えてみました。
503山崎渉:03/01/15 11:23 ID:/OP2L6bf
(^^)
504login:Penguin:03/01/18 20:29 ID:yibpzl2+
iccでgccをビルドできねー
505login:Penguin:03/01/18 20:38 ID:Dm64aJQm
このスレみてicc使い初めて数ヵ月。
コンパイラが2つあると、ビルドで失敗した時
もう一方でトライできるから楽。

最近はxvで、*.o はgcc版とicc版がチャンポンに
なったがなんとか成功。
506ot22:03/01/19 00:44 ID:Z7H9vr9j
> 504
> iccでgccをビルドできねー
make そのものは面倒なことはないのですけど(オズオズと)
gccのソース以上のtextは吐けないので、makeしたgccの意味がよくわからない
のですが… stage1のレベルのコンパイラが欲しいということでしょうか?
507login:Penguin:03/01/19 01:16 ID:AqdOvBsU
>>506
いや、コンパイラコンパイラとして動くか試したかっただけ(w
508login:Penguin:03/01/19 01:56 ID:ZReWqC8H
>>507
> コンパイラコンパイラとして動くか試したかっただけ(w
コンパイラコンパイラなら、ふつーはyaccつかうのでは?
509login:Penguin:03/01/19 02:41 ID:Vx0hKONh
>>507
コンパイラコンパイラってのは意味が違うんでは?
510505:03/01/20 20:30 ID:bMctycyz
Redhat8.0でiccを使っていて、 __bswap_32
がらみのエラーでコンパイルが落ちてしまうこと
が良くありました。

それで、
ttp://sources.redhat.com/ml/bug-glibc/2002-11/msg00083.html
を元に調べて
/usr/include/bits/byteswap.h
のパッチ(のつもり)をUプします。

--- byteswap.h.orig 2003-01-20 19:36:19.000000000 +0900
+++ byteswap.h 2003-01-20 20:12:42.000000000 +0900
@@ -81,7 +81,7 @@
__v; }))
# endif
#else
-# define __bswap_16(x) \
+# define __bswap_32(x) \
(__extension__ \
({ register unsigned int __x = (x); __bswap_constant_32 (__x); }))
#endif
511login:Penguin:03/01/22 15:40 ID:18w++Puz
>>507は何にも知らんただの厨房だろ
makeとか./configureするだけの香具師ね
512505:03/01/22 21:54 ID:4zktGZrC
>>511
まあそう言うな。
俺も何も知らんインストール厨なんで。
513login:Penguin:03/01/29 03:17 ID:B2bNW6rC
>>351で cray_u さんが薦めてた
テキストみながらいろいろ試してみた。
早くなったり早くならなかったり。
物理レジスタの本数やキャッシュサイズかなり小さいパラメータが
一番はやかったりで結構謎です。
これから LU に挑戦します。
514513:03/01/29 03:35 ID:B2bNW6rC
あぅ、訂正。
s/かなり小さい/から想定されるよりかなり小さい/

あと、初歩的な質問であれなのだけれど、
ifc で適当な範囲の乱数えるのってどうすればいいのかな?
g77 だと a(i,j)=mod(irand(),100) てなかんじで、
適当に型変換して double な a(i,j) に代入できてたんだけど、
ifc だと a(i,j)=drand() 以外実行してもアドレスエラーとかおこられし、
drand() にしても乱数の系列を回してくれなくて、
1つの種に対して1つの乱数しか生成してくれない。
普段は C のひとなのでこのへんの作法がよくわからないっす。
515crazy_u:03/01/29 12:54 ID:BGnuMacz
>>514
私は,「Fortran77による数値計算ソフトウェア」(丸善)に収録されているベクタ計算機用のコードを使用してます.
一様乱数用のプログラム(コメント文込みで60行程度)をこの板に貼り付けますか?
(著作者を明記すれば自由に使用できたはず.確認します.)
516login:Penguin:03/01/29 13:22 ID:ilG7zVvW
>crazy_u

一様乱数とかLUとかお願いします。一般的なコードだから
転載Okのはずです。

あとはCだなー
517crazy_u:03/01/29 14:43 ID:BGnuMacz
>>516
今,会社で仕事中なので,家に帰ってから貼り付けます.
LUは多少長くなるので,貼付けると他の人の迷惑かもしれませんね。
どこかのサイトにあるはずだから,家に帰ってから探してみます.
518crazy_u:03/01/29 23:05 ID:VZTGGwTZ
一様乱数のプログラムです.幾つかにわけて貼ります.
貼り付けるときに行頭のスペースが詰まってしまったら自分で調整して下さい.

subroutine rand3d( n , x , ir , icon )
************************************************************************
* original name is urand3 *
* modefied by crazy_u *
* uniform random number generator (multiplicative congruential method) *
* vectorizable algorithm *
* fast but not completely portable. integers should be 32 bit long.*
* overflow in interger arithmetic should not be sensed. *
* bitwise and function 'iand(ia,ib)' should be vectorized. *
* parameters *
* (1) n (i) the number of random numbers to be generated (input ) *
* (2) x (d) uniform random numbers (output) *
* (3) ir (i) the initial seed (input ) *
* the seed for the next call (output) *
* copyright: Y. Oyanagi, April 30, 1992 v.2 *
* modefied : crazy_u , May 4, 2002 *
************************************************************************
519crazy_u:03/01/29 23:06 ID:VZTGGwTZ
implicit integer*4(i-n), real*8(a-h,o-z)
c
parameter(mm = 1024)
double precision x(n), invm
integer lam(mm)
save lam
parameter (lambda = 48828125, mask=2**30+(2**30-1) )
parameter (invm = 0.5d0 ** 31)
c
icon=0
c --- paremeter check ---
if( n<=0 ) then
write(6,*) '(subr.rand3d) parameter error. n = ', n
write(6,*) 'return with no further calculation.'
icon=1000
goto 9999
end if
if( mod(ir,2)==0 ) then
write(6,*) '(subr.rand3r) parameter error. ir = ', ir,
$ ' is even.'
write(6,*) 'return with no further calculation.'
icon=2000
goto 9999
end if
520crazy_u:03/01/29 23:07 ID:VZTGGwTZ
c
c --- initial setting ---
if(lam(1) /= lambda) then
lam(1)=lambda
do 10 i=2, mm
10 lam(i)=lam(i-1)*lambda
end if
c
c --- main loop ---
do 30 ii = 1, n, mm
c do 20 i=ii, min(ii+mm, n)
do 20 i=ii, min(ii+mm-1, n)
x(i) = iand(ir*lam(i-ii+1), mask) * invm
20 continue
30 ir=ir*lam(i-ii)
c
9999 return
end
521crazy_u:03/01/29 23:33 ID:VZTGGwTZ
Fortran77 のfreeのライブラリは例えば
http://phase.etl.go.jp/mirrors/netlib/slatec/

戸川隼人著「科学技術計算ハンドブック」(サイエンス社)のソースコード(C言語)は
http://www.mscom.or.jp/~tog/anna/
から入手可能です.
上記2サイトともバンド法のLU分解のソースは入っています.
スカイライン法のLU分解のオープンソースはちょっと心当たりがありません.
(原子力研究所がオープンにしていたようですがサイトが今すぐにはわかりません.)
522513:03/01/30 03:47 ID:nMBR86n0
いろいろどうもです。
FORTRAN って乱数は標準ライブラリとか使わないんですね。
それと、お名前も間違っていたようでごめんなさい。
523login:Penguin:03/01/30 05:13 ID:8QLnsZcw
皆さん!極東板で新プロジェクト始動です。
よかったら覗いてください

〜極東板最大プロジェクト2〜

日本の明日を考えよう!行動しよう!
2003年、デフレ不況、莫大な財政赤字、深刻な失業問題
緊迫の半島情勢、祖国日本が危ない!
心あるチャネラーよ!今こそ結集せよ!

本スレhttp://tmp.2ch.net/test/read.cgi/asia/1043759979/l50
前スレhttp://tmp.2ch.net/test/read.cgi/asia/1042899935/l50
党名投票所http://members.tripod.co.jp/WGIP/vote.html
党結成準備HPhttp://members.tripod.co.jp/WGIP/index.html

第一回日本国民党(仮)党大会in靖国神社

1.日時 2月11日(火)10:00〜
2.場所 靖国神社遊就館喫茶店前
3.資金 各自任せる
524crazy_u:03/01/31 18:46 ID:BwxWQL3f
>>522
multi frontal法ならば,
http://www3.pt.freebsd.org/ja/ports/math.html
のなかのumfpack(Fortran90,非商用)があります.ここには他にも色々なライブラリがありますの覗いてみると良いかと思います.
バークレー大学のサイトには superLU (C, open sourceだったはず)があります.
YahooのUSAのサイトに入って検索すればすぐに見つかります.
私はダウンロードしただけで,まだ中身は見てませんが,sparse matrixのreordering法であるminimam-degreeやpseudo-minimum-degreeを使わないと良い効果が期待できないようです.
SMP用の直接法の解法として,改良しようと思っています.(不安定現象を扱っているので、反復解法は発散して使えない場合が多いので.)
525crazy_u:03/01/31 19:09 ID:BwxWQL3f
http://www.nersc.gov/~xiaoye/SuperLU/#superlu
ここには,SuperLUの single CPU用,SMP用,分散メモリ用がありました.
526おむこさん志望 ◆QtGqCwfDSA :03/02/01 00:34 ID:Pkkg2qqH
>>514
メルセンヌツイスター法っていう疑似乱数生成アルゴリズムがあるよ。
rand(3) とかで使われてる線形合同法よりはずっとよさげだけど。
http://www.math.keio.ac.jp/~matumoto/mt.html
( C だけじゃなくてJava や Fortran のコードもある )
http://www.soi.wide.ad.jp/class/20010000/slides/03/
参考 数学板のスレ
http://science.2ch.net/test/read.cgi/math/1025794170/
527login:Penguin:03/02/01 03:45 ID:8j0FsFHn
gccでいうならlibg2c.aみたいにiccでもcで作ったライブラリとリンクすることってできないんですか?
それっぽいライブラリが見つからないんですけど・・・
528login:Penguin:03/02/01 03:53 ID:8j0FsFHn
>527
すんません。意味わかりませんね。これじゃ。
言いたかったのは
fortranのオブジェクトファイルとcのライブラリファイルをiccでリンクさせたいんですが
そのような事はできますか?
ということです。
529crazy_u:03/02/01 11:01 ID:W/8HR9Dw
>>528
できます.サブルーチン加工名とそのヘッダーファイルに気をつけてください.
例) subroutine abc( a ) (aはreal*8 a(1:*) とする.)がlibsub.aにコンパイルして入っている場合.
ヘッダーファイルは
void abc_( double *a );
とし,Cからは,
double a[100];
abc_( a );
ととして,参照ライブラリにlibsub.aを指定すれば良い.fortranでsubroutine abc が abc_ という名前に加工されることに注意してください.
(名前の加工の仕方をfortran側のコンパイルオプションで指定することもできたはずです.Cでは加工されない.)
アドレス渡しを行うので,Cから渡す変数の型とFortranで受ける変数の型が同じである必要はありません.(ここを利用して型をキャストする利用もありかな.)
まあ,試しにやって見ることです.細かい部分はやりながら,修正していくべし.
530crazy_u:03/02/01 11:07 ID:W/8HR9Dw
>>528
同じライブラリに入れたいということでしたか?
単純に,arコマンドで入れてしまえば良いでしょう.
531crazy_u:03/02/01 12:45 ID:W/8HR9Dw
>>528
mainがCなら,    LD=icc
mainがFortranなら, LD=ifc
532login:Penguin:03/02/01 14:23 ID:8j0FsFHn
>crazy_uさん
丁寧にありがとうございます。m(_ _)m

私の説明が言葉足らずで申し訳ないですが、もう少し初歩的な事をお聞きしたいんです。
今までgccでのlinkは出来ていたのですがiccを使うのが初めてでして。

fortranのmain と arで固めたCの lib***.aのファイルとをiccでリンクさせたいんです。
gccをlinkerにしていたときはlibg2c.aというライブラリを使っていたんですけど
iccにも同様なライブラリがあるんでしょうか?ということなんです
>531
なにもLDFLAGSで設定しなくてもlinkできるのでしょうか?
何も設定しないでやってみたんでが(srcはgccで使っていたのと同じ物)
cのライブラリを参照できないんです。
533login:Penguin:03/02/01 15:00 ID:Drz/L+OH
>>526

Cで書かれた、
http://sources.redhat.com/gsl/
というものもあります。メルセンヌツイスター法も含まれてます。

マニュアル 
http://sources.redhat.com/gsl/ref/gsl-ref_toc.html
534crazy_u:03/02/01 15:38 ID:CQVkGRt0
>>532
リンクしたい関数が有るかどうかは,iccのライブラリのマニュアルを見るか,
/opt/intel/compiler70/ia32/libにあるライブラリを片っ端から
ar -t なんとか.a や grep リンクしたい関数名 で調べたらどうですか.
どちらにしてもLDOPTIONSに指定してないとつかない場合が有る.
MAIN=Main
PATH1=.
FC=ifc
LD=ifc
LDOPTIONS= -L/usr/lib/gcc-lib/i386-redhat-linux/2.96 -lgc2
$(MAIN): $(MAIN).o /usr/lib/gcc-lib/i386-redhat-linux/2.96/libg2c.a
 タブ $(LD) [email protected] $(LDOPTIONS) -o $(PATH1)/$@
みたいに./opt/intel/compiler70/ia32/libに有るライブラリも私は明示的にLDOPTIONSに指定してます.
(ifc6.0の時に,LD_LIBRARY_PATHに設定しているのにうまくつかなかったから)
Intelで用意しているライブラリやリンクオプションについてはマニュアルを読んでください.
Makefileの書き方は,GNU makeについて自分で調べてください.
私は,Cのライブラリである/lib/libpthread-0.9.so をメインがFortranでリンクしてます.
535login:Penguin:03/02/01 23:54 ID:MMls/KkV
Mobile Pentium 3 750Mhzで、コンパイルオプションは>>16と同じ。

C compiler : icc (unknown version)
libc : unknown version
MEMORY INDEX : 4.588
INTEGER INDEX : 3.500
FLOATING-POINT INDEX: 7.375

C compiler : gcc version 2.95.3 20010315 (release)
libc : unknown version
MEMORY INDEX : 3.311
INTEGER INDEX : 3.330
FLOATING-POINT INDEX: 6.508
536532:03/02/02 00:50 ID:2IbS21LR
>crazy_u
どうもありがとうございましたm(_ _)m
もう少し色々と試してみます。
537crazy_u:03/02/02 19:22 ID:hawsmNOt
>>536
念のために
Fortran側からCの関数を
call abcd( 引数 )
とすると, abcd_ という名前の関数をコールしていることになるので,abcdというCの関数を呼ぶ場合は,
Cで abcd_ という関数を作ってその中で,本当に呼びたい abcd を呼ぶようにしないと使えません.
オプションで加工名のつけ方を指定すれば解決できるのかも知れませんが,移植性を考えて私は標準でこのようにしてます.
538514:03/02/05 15:57 ID:rIMlmH0y
遅レスですが、
>>526,533
情報どうもです。

行列演算のテスト用に乱数がほしいだけなので、
たぶんそんなに乱数の質は気にしなくても大丈夫だとは思います。

とりあえず、今日卒論の発表してきました。
このスレをみなかったらおいらの卒論はなかったよ。
どうもでした。

ま、卒論自体は
寒川さんの本の縮小再生産ってかんじだけどね。
539login:Penguin:03/02/08 13:36 ID:w9ImhrFr
The following new information is now available at
Intel's Premier Support Web Site.
For more details please point your browser to
https://premier.intel.com

NEW for product: Intel C++ Compiler, Linux LtdSup

FILES AVAILABLE FOR DOWNLOAD

Tar file containing the Intel(R) C++ Compiler 7.0 for Linux*
v7.0 Product Update. The package id is l_cc_pu_7.0.082.
ICC Build 20030129Z, ECC Build 20030129.
540login:Penguin:03/02/11 20:50 ID:4i3cK38F
このスレの先頭の3,4,5の記事は既に時代遅れ。
今はもっと簡単にインストールできます。
ifc も icc もFreeBSD用のversion6 のコンパイラのパッケージも
あるようですよ。今の最新版はVersion7です。
541login:Penguin:03/02/16 03:13 ID:kgJUQrNa
以下のようなコードを書くと、
gccだと(ver 3.2, ver 2.9.6)だと通るのだけど、
icc 7.0.065だと

#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netdb.h>

using namespace std;

struct sockaddr_in target;
target.sin_port = htons(PORT); // ← この行が
^
error: Unsupported feature: GNU statement expression in C++
error: expected a ")"
error: expected a ";"
とエラーを吐きます。

どうすれば回避できるのか、ご指導いただけないでしょうか?
542541:03/02/16 18:03 ID:kgJUQrNa
自己レス

ttp://sources.redhat.com/ml/bug-glibc/2002-11/msg00083.html
どうやらglibcのbugらしい。
Redhat 7.3までだと通るが、RedHat 8.0だとエラーが発生。
(上記のコードでは書き忘れていたが) #include <netinet/net.h>
の中で呼び出される byteswap.h の __bswap_16, __bswap_32の定義が間違っているらしい。
以下のコードは__GNUC__が定義されない場合、
つまりgcc以外のコンパイラを使用する際に使用される部分である。

/usr/include/bits/byteswap.hを

/* original (line 45-47)
# define __bswap_16(x) \
(__extension__ \
({ register unsigned short int __x = (x); __bswap_constant_16 (__x); }))
*/
# define __bswap_16(x) __bswap_constant_16 (x)

/* original (line 84-86)
# define __bswap_16(x) \
(__extension__ \
({ register unsigned int __x = (x); __bswap_constant_32 (__x); }))
*/
# define __bswap_32(x) __bswap_constant_32 (x)

と修正するとコンパイルが通る。
つーか、line84-86の__bswap_16 → __bswap_constant_32の間違いはひでーよ。
RedHat8.0のupdateはまだで、
RawHide版のglibc-develに置き換えるとこの問題は解決されるっぽい。
543login:Penguin:03/02/17 23:43 ID:KRtfXogi
ニヤニヤ(・∀・)
544login:Penguin:03/02/20 04:24 ID:NjiabX2T
ニヤニヤ(・∀・)
545login:Penguin:03/02/25 01:08 ID:uB5MBDWS
iccって個人使用ならまだ無料?
546login:Penguin:03/02/25 22:27 ID:F5NmfAFa
-------------------------------------------------------
NEW for product: Intel(R) C++ Compiler, Linux LtdSup

FILES AVAILABLE FOR DOWNLOAD

Release notes for IntelC++ Compiler 7.0 for Linux.


File: l_cc_pu_7.0.086_RN.zip
File: l_cc_pu_7.0.086.tar


-------------------------------------------------------
NEW for product: Intel(R) Fortran Compiler for Linux*

FILES AVAILABLE FOR DOWNLOAD

Release notes for IntelFortran Compiler 7.0 for Linux.


File: l_fc_pu_7.0.087_RN.zip
File: l_fc_pu_7.0.087.tar
547login:Penguin:03/02/26 19:19 ID:MAjrYlXD
すみません、入手方法が分からないのですが、どなたか教えて頂けないでしょうか?
buy か free evalution しかないように見えるのですが…
548547:03/02/26 23:39 ID:MAjrYlXD
やっと分かりました。ココですね。
ttp://developer.intel.com/software/products/compilers/flin/noncom.htm
549login:Penguin:03/03/02 23:20 ID:LCrGqD3x
intel のコンパイラのソースコード公開希望。
550login:Penguin:03/03/03 01:18 ID:oI3oBWnP
ちょっと前にレイトレーシングの話題が出てたので一言。
昔、MSXで紹介されてたレイトレーシングのプログラムが
C++で復活してました。
本来Windows用なのですが他マシンでも使えるようにソースが公開されてます。
GCCの事例はあるのですがIntelコンパイラで試してみてください。
http://www5e.biglobe.ne.jp/~liquor/raytrace/
ここの掲示板で語られています。Itaniumのことも報告されています。
551login:Penguin:03/03/03 01:45 ID:yePrqlHM
l_cc_p_7.0.065.tar
を入れた後に
l_fc_p_7.0.064.tar
を入れようとすると、

[root@hoge lfc7]# rpm -i --test intel-ifc7-7.0-64.i386.rpm
ファイル /opt/intel/compiler70/ia32/bin/profmerge (intel-ifc7-7.0-64のインストールから) は, パッケージ intel-icc7-7.0-65 からのファイルと競合しています
ファイル /opt/intel/compiler70/ia32/bin/proforder (intel-ifc7-7.0-64のインストールから) は, パッケージ intel-icc7-7.0-65 からのファイルと競合しています
...
と言われるのだが、無理矢理つっこんで大丈夫ですかね?

名前がかぶってるだけじゃなくて実際ファイルの内容も違うみたい。

552crazy_u:03/03/03 22:22 ID:kyfkjG7i
>>551
つっこんじゃ駄目!!
新l_cc_*と旧l_fc_*ではライブラリが新旧になって競合してしまう.日付を良く確認すること.
l_cc_*とl_fc_*はいつも同時に公開されて,大抵は,末尾の数字はl_ccの方が1〜2少ないはず.
そんな古いパッケージを入れずに,l_cc_pu_7.0.086.tarとl_fc_pu_7.0.087.tarをダウンロードして入れましょう.
553login:Penguin:03/03/04 18:25 ID:b9XWyKWE
l_cc_pu_7.0.086.tarとl_fc_pu_7.0.087.tar てどこにあるの?

registering のメールに書いてあるアドレスから行けるftp サーバー
[ftp://download.intel.com]
探してみたけど無かった。

intel の製品を買って登録しないとだめとか?
554crazy_u:03/03/04 19:37 ID:B34pJ2VL
>>553
460の書込み読んでください.
555553:03/03/04 23:24 ID:b9XWyKWE
<<554
なんだか申し訳ない感じ。。
license が付いてきたメールをちゃんと読んでなかったです。


556login:Penguin:03/03/05 07:08 ID:88af8vjx
うまくLoginできない(ノД`)たすけて・・・
557login:Penguin:03/03/05 07:19 ID:88af8vjx
ttp://www.intel.com/software/products/registrationcenter/index.htm
↑ここで登録したらRegistration Centerに逝っちゃうんですけど
ttps://premier.intel.comにはどうやってloginしたら・・・m(_~_)m土下座
558533:03/03/05 10:09 ID:SL0wvUku
まとめ
ttp://www.intel.co.jp/jp/developer/software/products/global/eval.htm

icc(ifc) for linux 非商用バージョン (サポート対象外) (英語)

Download をクリック.

license を貰うためにいろいろ書く.

license がメールで送られてくる.
(そのメールにnon-commercial registration number も付いている.)

registration center でNew Users の登録

メールで初期パスワードが送られてくる.

メールの指示に従いパスワード設定等をする.

icc(ifc) をregister

ttps://premier.intel.com

最新版を取ってきてインストール


# 注意
register せずにダウンロードできる
l_cc_p_7.0.065.tar と l_fc_p_7.0.064.tar はrpm のバージョンによっては
共存できないことがあります.(release の日付は同じですが.)
rpm-3 はだめ,とか.詳しくはintel のページにあります.

rpm2cpio を使えばできるかもしれないけど新しいのを取ってきたほうがよさげ.
559557:03/03/05 17:22 ID:bhMk2Z2E
>>558
(⌒0⌒)/わかりやすい説明アリガト〜、いまdownload中です。
良スレを汚しちゃってカナーリ(/ω\)ハズカスィ・・・
560ot22:03/03/06 18:39 ID:wmuEIwKz
>> 549
> intel のコンパイラのソースコード公開希望。
昔話です. gcc-1.5(とってもあやしい) あたりにIntelからPentium用のgccへの
パッチが流れたことがありましたけど, もうそれはないでしょうね.

以下のようなURLもありました。 gcc-3.4まで待つしかないですかね?

http://people.redhat.com/dnovillo/spec2000/gcc/global-run-ratio.html
561login:Penguin:03/03/08 01:48 ID:/o6CinrA
>>560
icc が圧倒的に高性能ですなぁ。
562login:Penguin:03/03/13 22:45 ID:MRYC6k3z
ニヤニヤ(・∀・)
563ot22:03/03/16 19:46 ID:5ASs5Vh9
Pentium Mって出ましたけど, 次のifc, iccってコンパイラオプション
増えるんでしょうかね? Instruction Schedulingが変わるだろうから…

キャッシュが大きくなったのが効くのかどうか? はたまた, キャッシュを
意識したコーディングが必要になるのか? 頭は痛くなるばかりですね.
564crazy_u:03/03/16 22:11 ID:dDd8YAG7
「頭が痛くなる」<「計算が速くなる期待でわくわく」
ではないでしょうか?
それよりも,Itanium2系でdual Deerfieldを個人で賄える金額の計算機として期待してます(今年は1GHzで,かつ,L3 cacheが少ないので見送り).
来年出荷予定のhpのmx2 chipset搭載のドーターボード(32MBのon-board L4 cache)がとても魅力的です.
(今,考えているアルゴリズムが活きそうなので)
565login:Penguin:03/03/17 06:50 ID:oyPke+qm
VisualC++との互換性が最高だ
gcc通らない香具師はコイツでコンパイルできる
566login:Penguin:03/03/21 15:52 ID:5a5UYyOI
ニヤニヤ(・∀・)
567login:Penguin:03/03/23 05:28 ID:GzEC9Wiv
ifcでbinaryでファイルを作ったのだが、

-rw-r--r-- 1 user user 2882408192 3月 23 03:56 file1

と2GB越えのファイルができるが、他のプログラムでアクセスすると

-rw-r--r-- 1 user user 0 3月 23 03:58 file1

一瞬にサイズが0となり、中身が無くなる。RedHat-7.2だけど
2GB越えはまだまだ無理なのか。
568login:Penguin:03/03/23 08:22 ID:tIPREeC7
>>567
関係ないが「3月 23」カコワルイヨ。なぜに「3月 23日」で表示できない?
569login:Penguin:03/03/23 14:00 ID:hZrrGmyr
>567
Large File Support in Linux
にどのくらい対応してくれているか調べるのが吉。
ttp://www.suse.de/~aj/linux_lfs.html
570546:03/03/27 20:53 ID:Hd+9ec1b
RedHat8に対応したらしい。
…ってもうRedHat9が出そうなんだが。

-------------------------------------------------------
NEW for product: Intel(R) C++ Compiler, Linux LtdSup

FILES AVAILABLE FOR DOWNLOAD

Tar file containing the Intel(R) C++ Compiler 7.1 for Linux* Product.
The package id is l_cc_p_7.1.006.
ICC Build 20030307, ECC build 20030307.
An important new feature of this release is support
for glibc 2.2.93 (Red Hat* 8.0).


File: l_cc_p_7.1.006.tar


-------------------------------------------------------
NEW for product: Intel(R) Fortran Compiler for Linux*

FILES AVAILABLE FOR DOWNLOAD

Tar file containing the Intel(R) Fortran Compiler 7.1 for Linux* Product.
The package id is l_fc_p_7.1.008.
IFC Build 20030307, EFC build 20030307.
An important new feature of this release is support
for glibc 2.2.93 (Red Hat* 8.0).

File: l_fc_p_7.1.008.tar
571login:Penguin:03/04/02 06:25 ID:G+RkFIg+
572login:Penguin:03/04/05 13:38 ID:hkP3eLct
ニヤニヤ(・∀・)
573546:03/04/09 19:17 ID:6L2jzawi
また出た。(w

-------------------------------------------------------
NEW for product: Intel(R) C++ Compiler, Linux LtdSup

FILES AVAILABLE FOR DOWNLOAD

Tar file containing the Intel(R) C++ Compiler 7.1
for Linux* Product Update. The package id is l_cc_pu_7.1.009.
ICC Build 20030327, ECC build 20030327.


File: l_cc_pu_7.1.009.tar


-------------------------------------------------------
NEW for product: Intel(R) Fortran Compiler for Linux*

FILES AVAILABLE FOR DOWNLOAD

Tar file containing the Intel(R) Fortran Compiler 7.1
for Linux* Product Update. The package id is l_fc_pu_7.1.011.
IFC Build 20030327, EFC build 20030327


File: l_fc_pu_7.1.011.tar
574Product Update:03/04/11 13:13 ID:L8501bRn
4/10/2003

Intel(R) Fortran Compiler, Linux LtdSup  :  l_fc_pu_7.1.013.tar

Intel(R) C++ Compiler, Linux LtdSup    :  l_cc_pu_7.1.011.tar
575login:Penguin:03/04/11 16:47 ID:FwaJM4lj
(´-`).。oO(日刊icc)
576login:Penguin:03/04/11 17:29 ID:UMPCjAWO
ICCでカーネルコンパイルするには
どうしたらいいのですか?
577login:Penguin:03/04/11 20:30 ID:SCrC2sbb
>>576
カーネルソースとiccを用意すればOKです。
578546:03/04/11 21:33 ID:tgLU/SfT
>>576
このスレ最初から読めば答えが見つかるかもしれない。
579login:Penguin:03/04/11 21:47 ID:iBPAGJjQ
>>576
モジュール関連で失敗する。やめとけ。
580login:Penguin:03/04/12 03:49 ID:Er+MX+0v
Intelのサイトからダウソしてきた。

$ icc -V
Intel(R) C++ Compiler for 32-bit applications, Version 7.1 Build 20030307Z
Copyright (C) 1985-2003 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY

GNU ld version 2.13.90.0.10 20021010 Debian GNU/Linux
Supported emulations:
elf_i386
i386linux
/usr/lib/crt1.o(.text+0x18): In function `_start':
: undefined reference to `main'

なんかundefinedとか出るけど使えるみたいだ。


カーネルは init/main.cの
* if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 91)
* error Sorry, your GCC is too old. It builds incorrect kernels.
* endif
にひっかかって沈没する。コメントにしてもasm関連でこけるみたいだ。

qtには mkspec/linux-iccというディレクトリがあって
iccを使ってコンパイルされることを想定してるみたいなので、qt/kdeはこれでコンパイルできるかも。

できるかなーできるかなー
581login:Penguin:03/04/12 18:25 ID:Er+MX+0v
--- /usr/include/netinet/in.h 2003-03-22 01:18:35.000000000 +0900
+++ /usr/local/intel/compiler70/ia32/substitute_headers/netinet/in.h 2003-04-12 18:09:
13.000000000 +0900
@@ -16,6 +16,26 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */

+
+// htons, ntohs, htonl, and ntohl on Linux platforms are implemented as a "statement exp
ression", which is a gcc extension.
+
+// In order to use these in icc, put the following after the in.h #include:
+
+#if defined(__ICC)
+// icc doesn't like GNU __extension__ functions
+// this has to happen AFTER <netinet/in.h> !!
582login:Penguin:03/04/12 18:27 ID:Er+MX+0v
+#undef htons
+#undef ntohs
+#undef htonl
+#undef ntohl
+#define htons(x) __bswap_constant_16(x)
+#define ntohs(x) __bswap_constant_16(x)
+#define htonl(x) __bswap_constant_32(x)
+#define ntohl(x) __bswap_constant_32(x)
+#endif // defined(_ICC)
+
+// Hope this helps!
+
#ifndef _NETINET_IN_H
#define _NETINET_IN_H 1

~~~~
http://intel.forums.liveworld.com/thread.jsp?forum=160&thread=5380
583login:Penguin:03/04/12 19:47 ID:Er+MX+0v
icpc: Command line warning: ignoring unknown option '-fno-exceptions'
icpc: Command line warning: '-marchi686' enables '-tpp6'
icpc -fno-exceptions -o tagreader-with-features
.obj/release-shared-mt/tagreader.o
.obj/release-shared-mt/structureparser.o
-Qoption,ld,-rpath,/home/ore/data/icc/qt-x11-free-3.1.2/lib
-L/home/ore/data/icc/qt-x11-free-3.1.2/lib -L/usr/X11R6/lib
-L/usr/X11R6/lib -lqt-mt -lpng -lz -lGLU -lGL -lXmu -lXrender
-lXinerama -lXft -lfreetype -lfontconfig -lXext -lX11 -lm -lSM -lICE
-ldl -lpthread
icpc: Command line warning: ignoring unknown option '-fno-exceptions'
make[3]: Leaving directory
`/home/ore/data/icc/qt-x11-free-3.1.2/examples/xml/tagreader-with-features'
make[2]: Leaving directory
`/home/ore/data/icc/qt-x11-free-3.1.2/examples'

The Qt library is now built in ./lib
The Qt examples are built in the directories in ./examples
The Qt tutorials are built in the directories in ./tutorial

Enjoy! - the Trolltech team

make[1]: Leaving directory `/home/ore/data/icc/qt-x11-free-3.1.2'
584546:03/04/13 21:51 ID:TLsIQjQR
>>581
なるほど、iccはsubstitute_headersディレクトリを
先に読むんですね。
あとgccに_GNUC_っていうモノ(なんて呼ぶのかな?)があるように、
iccには_ICCっていうモノが定義されていると。

勉強になるっす。
585ずっと悩んでるんですが:03/04/14 22:15 ID:j6EMRXw4
558 の手順を踏んでいるのに、
ttps://premier.intel.com にアクセスすると、
403 Forbidden: Access Denied
が出るのはなぜでしょう?
registration center にはログイン出来ます。

バージョンアップ通知のメールがむなしい...
586login:Penguin:03/04/15 00:40 ID:HzsTJWBw
何故にno?

configure:7616: checking whether the icc linker (icpc -shared) supports shared libraries
configure:8401: result: no

configure:9613: checking whether to build shared libraries
configure:9634: result: no
587crazy_u:03/04/15 01:57 ID:OJCe6Mqy
>>585
サーバーが混んでいるらしくてそうなることがありますよ.
別の日にまたアクセスしてみたらどうですか.
588山崎渉:03/04/17 11:52 ID:KRn99/cy
(^^)
589ずっと悩んでるんですが:03/04/17 13:29 ID:Wk5Y9jA1
>>587
ども。それがこの半年間ずっとなんですよ。
今まで一度も成功したことがないんです。
色々と環境を変えて試してるんですけど...
590login:Penguin:03/04/17 15:50 ID:QgET5h2K
ニヤニヤ(・∀・)
591login:Penguin:03/04/17 17:43 ID:/aq2zRyO
>>589
コピペ


Q : アドレスがhttpsから始まるページを見られません。


A : SSLの使用がブラウザの設定上許可されていない場合は、
   閲覧することが出来ません。 ブラウザソフトの設定で、
   SSLの使用を許可する設定を行って下さい。

   またプロキシサーバーが設定されていると、
   httpsから始まるセキュリティをかけたホームページが
   閲覧できない可能性があります。
   httpsから始まるURLを閲覧される場合、
   プロキシサーバーの設定を解除して下さい。
592546:03/04/17 22:02 ID:jm+VbmCX
>>585
半年も悩んでいるなんて…
イソテルに(゚Д゚)ゴルァメール出したらどうでしょう。

私も同じような経験があり、
メールしたら、サクッと対応してくれました。
593ずっと悩んでるんですが:03/04/17 22:50 ID:Wk5Y9jA1
>>591
ども。SSL は registration center でも使われてますよね。
そちらにはアクセス出来ます。
cookie, java も許可してるんですけど。
594login:Penguin:03/04/18 00:00 ID:njmNpDb9
>>593
すまんコ

ぶっちゃけOS、ブラウザ、ISP、火壁etc..は何でつか?
いまM$窓でも試してみたけど無問題だたーョ

skillないのに でしゃばってゴメンyo <(_ _)>
ttps://cyan.intel.com/Rialto128/i18nEngine_quad.asp?page=Identify&referer=https://premier.intel.com/
最後にこれ試してみてケレ
595ずっと悩んでるんですが:03/04/18 10:47 ID:zFDcXa/E
>>592,594
Intel にメール出してアクセス出来るようにしてもらいました。
もっと早く出しときゃよかった...
結構対応が早くてびっくりしました。
みなさん、ありがとうございました。
596login:Penguin:03/04/18 14:21 ID:B0a+r35o
>>印照
Good job !!
597546:03/04/18 22:01 ID:80K5uDQe
>>595
良かったですね。
イソテルは対応早いよね。

今気になると言えば、
ttps://premier.intel.comが w3mだとログインできないなぁ。
こっちもゴルァメールしてみようかな。(w
598山崎渉:03/04/20 05:53 ID:X64WTq1+
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
599堕天使:03/04/20 19:51 ID:b5ZjwhaX
600login:Penguin:03/04/22 09:50 ID:C1rUY+Aw
Debianな方々にお聞きしたいのですが、ifc,icc,mklどうやってインストールしてます?
ttp://www.ep.sci.hokudai.ac.jp/~sugiyama/cc-env/numeric/icc.html
ttp://www.gfd-dennou.org/arch/cc-env/ifc/
みたくalien使ってるんでしょうか。
私debianの日が浅いんで的外れなことを言っているかもわからんですが、
素直にrpm --initdbの後でrpmコマンドでインストールしたら何かマズイんですか?
# apt が使いたいけどVineはglibc2.2.4だし。。。

それとmkl6.0は五月上旬リリース予定だそうです。mkl5.2sp1にあったlapackまわりの
不具合が解消されているちゅう話です
601crazy_u:03/04/22 21:49 ID:KDlncQys
CalculiX (http://www.dhondt.de/)を使っている方はいらっしゃいますか?
データデザインが気に食わないので,そこは設計し直して,
中身はFortran90化(object志向の構成に再構成)して,
研究者間で共通で使えるコンパクトなプラットホームを構築しようと思っています.
Abaquasベースなので大変形FEMが対象となります.(私は不安定問題や分岐問題がターゲット)
数値計算ライブラリ(連立方程式の高速解法(主に直接法)や大次元の部分固有値解析や各種ツール)の構築を含みます.
連立方程式の解法はバークレーのSuperLUをブロック計算法に改良してP4とItanium2に最適化するつもりです.
大次元の部分固有値解析はSubSpace法を考えています.(Lanczos法は再直交化のタイミングとかの調整が面倒)
(業務で構築したものを持ち出すと公開できない(訴えられる)ので新規に構築します)
(プライベートな時間で行うので,それなりの開発期間はかかりますが)
割とコンパクトでfortranで書かれているopen sourceのFEMコードで
もっとこういうのが良いと言う情報をお持ちの方がいらっしゃいましたら
情報をいただけませんでしょうか?
(ADVENTUREも検討しましたが,研究者用のプラットホームとしてはもう少しコンパクトな方がベターと考えました.)
602login:Penguin:03/04/26 14:11 ID:h76tuGQg
>601
とりあえずシミュレーション板は見ましたか?
http://science.2ch.net/test/read.cgi/sim/1037265506/27
にリンク集があったりするので。
あと地球シミュレータのGeoFEMとか?
603crazy_u:03/04/26 18:56 ID:MiNXCyE+
>>602
情報ありがとうございます.
とりあえずそちらの板を見てみます.
604login:Penguin:03/04/29 19:54 ID:FjBPBJSI
なんやら、おもしろいことをやろうとしているのは分かるが
個人的な意見としては、もういい加減fortran見限ってほしい。

f90使ってまでobject化しなくてもいいじゃん……
(f90が中途半端にマイナーメジャー化するのが嫌かも。)
605login:Penguin:03/04/30 03:02 ID:3+jGzA7G
C++はあまりにもぐちゃぐちゃな言語仕様で、コードの安全性が危ういし、
Cをベースにしているので、数値計算にはいろいろと不都合な点が多いし、
最適化が言語仕様上できにくいし、ヘッダーをインクルードするので、
プラットホーム独立性が低くて移植が手間だし、ポインターを多用する
コードは、効率がトータルでよいとはいえない。
606login:Penguin:03/04/30 16:16 ID:EopZ8WMa
かといってf90がPost C++になりえるのかというと、
607login:Penguin:03/04/30 21:11 ID:rdWVmHEP
f90でオブジェクト指向でプログラミング出来るのでしょうか?
なんか「fortran オブジェクト指向」とかググっても有益な情報がヒットしません。
ウチの研究室では未だに77で・・・
何かいいサイトor本があったら教えて下さいm(_ _)m
608login:Penguin:03/04/30 23:38 ID:xoh+mpFh
>605
>C++はあまりにもぐちゃぐちゃな言語仕様で、コードの安全性が危ういし、
言語仕様がぐちゃぐちゃなのは周知の事実だけど、
コードの安全性が危うい、までは言えないかと。

>Cをベースにしているので、数値計算にはいろいろと不都合な点が多いし、
たとえば、多次元配列を(メモリ上連続に)切るのとか若干面倒だねえ。
でも、どれもカバーできん領域の問題じゃないでしょ。

>最適化が言語仕様上できにくいし、ヘッダーをインクルードするので、
>プラットホーム独立性が低くて移植が手間だし、ポインターを多用する
fortranだって変わらんやん。
プラットホーム変えれば、両方とも若干の修正が必要とされるし。

>607
組もうと思えば、普通にf90で組めると思うよ。
海外の数値計算のライブラリとかf90で組まれているのもいくつかあるし。

ただ、f77からオブジェクト指向化したいからf90ってなんか間違っている気がする。
f90使いたい人って、いまさらC++を学習したくない人ばっかしやん。
C++の言語仕様を覚えるよりも、
オブジェクト指向を体得する方が敷居が高いと思う。
609607:03/05/01 00:57 ID:mR+IhfD+
>>608
正直C++使いなんで、素直にC++使いたいところなのですが、そーも行かない事
情があるのでせめて f90 でクーデターを、と思った次第です。
しっかし
ttp://www.cs.rpi.edu/~szymansk/OOF90/F90_Objects.html

VII. Dynamic Dispatching
とか読んでも頭痛くなって来ますな…。ホントに出来なくはないって感じ…
スレ違いスマソ。
610crazy_u:03/05/02 14:24 ID:La9MEaTu
f90が中途半端な言語仕様であることは十分認識した上での選択です.
やや年配の方たちにはfortranオンリーの人も多く,
その人達が現役で活躍できる期間の貴重な時間を(研究の本質ではない)C++の学習に使わせたくないという配慮です.
(私はf90,C/C++とも使えます.念のため.)
SMP用にする場合はどうしてもfortranとC/C++の混合になるので,いっそのこと全部C/C++でとは思いますが...
611login:Penguin:03/05/02 23:43 ID:qE4h7Qxj
あまり崇高な議論ではないのですが、私の経験だと(数値計算)
C++ ではあまり g++ 2.95.3 -O3 に比べてあまり有意なスピード差が
Intel でも AMD でも得られないんですが、そんな経験している人います?

C only だと dynamic allocation あまり使ってない場合は 3 割程度
速くなったこともあるのですが、使っている場合はあまり差が無い
場合もあるんですが…
612login:Penguin:03/05/02 23:44 ID:fkI4zisF
☆★☆我のHP、遂に完成!☆★☆

ついに我の念願のサイト『Japan@ちゃんねる』が出来ました!!
この『にちゃんねる』を夢見て、頑張ってCGI勉強から取り組み、0chスプリクトで作成してまいりました!!
是非、足を運んでみてはどうでしょうか?
http://student55.hp.infoseek.co.jp/index.html です。
改良点・ご批判・ご感想をお願いいたします。
ブラクラではありません。列記としたインフォシークです。
613login:Penguin:03/05/02 23:51 ID:yqBl63uC
f90のどのあたりが中途半端か教えて頂戴。
614名無しさん@Emacs:03/05/03 00:50 ID:f7Aih6s7
そもそも、数値計算でオブジェクト指向するメリットがわからん。
615login:Penguin:03/05/03 00:54 ID:Z7Ada4/X
多変数の系をプログラムするときに各変数をカプセル化しちゃいますが
なにか?
616login:Penguin:03/05/03 03:50 ID:L3RpXKqL
>611
コンパイラオプションはちゃんと設定した?
例) Pentium4用
g++ -O3 -ffast-math -funroll-loops -mcpu=i686
icc -O3 -tpp7 -xW

あと、言うまでもないが、コードの下流部分は、
最適化を意識しながらプログラミングした方がいいかも。
(知っているかもしれないが)リンク先は
最適化かける場合の参考になりそうな文献。
# Techniques for Scientific C++
ttp://www.cs.indiana.edu/ftp/techreports/TR542.html
617login:Penguin:03/05/03 09:17 ID:OqdU7aeR
>>614
Fortran で 10-20万行位の数値計算プログラムを見たら
げろってなるよ。OO 万歳とはいわないけど...
618名無しさん@お腹いっぱい。:03/05/03 12:29 ID:NkO+t9NS
>>613
オペレータ再定義が貧弱。数値計算ではこれ重要。
クラス、テンプレートがない。コード再利用、拡張しやすいライブラリ書くのが困難。

必要ないと思う人はFortran90/95/2000使えばいいと思うが。
619名無しさん@Emacs:03/05/03 12:37 ID:5Ul4S/7k
オペレータ再定義自体はオブジェクト指向とは関係ないんだけどね。
620名無しさん@お腹いっぱい。:03/05/03 12:49 ID:NkO+t9NS
>>619
"関係ない"は言い過ぎです。
sytax sugarでmulti dispatchなmethodですから。
621crazy_u:03/05/03 13:13 ID:qW0c/rfL
>>617
私が一人で構築・維持・アップグレードしているのは
FEMシステム3つと数値計算ライブラリ1つですが,夫々,
22万行,24万行,27万行(もうすぐ引退),55万行です.
巨大なごみプロにならないようなメンテナンスをしていくためにも
オブジェクト指向化できる部分はしていくのがベターと思っています.
ここはIntel Compilerの板なのでそれ関連を(今の話の流れとは関係なく)無理やり言うと
compileが速いのと,
某社のcompilerの倍の性能のbinaryができる(今は改善されているかも知れませんが)
ので助かってます.
622動画直リン:03/05/03 13:13 ID:7+WXd9WD
623名無しさん@Emacs:03/05/03 20:17 ID:qzDz4NW8
RH9 入れた!!
ifc 動かない!!!

要ダウングレードですか.....
624login:Penguin:03/05/03 20:33 ID:O5rdnklN
          ,. -──- 、
          /:::::::::::::::::::::::::::::ヽ    
       /::::::::::::ハ::::;:::::::::::::::::゙:,
       ,'::::;i:/レ'  ヽiヽ:::::::::::::::::!
       l::::|'r,:=;   ,:=;、';i:::::::::::::!  / パーツも本体もここで選んだらええやん。
       .,r'‐;|.l !::::i  i:::::i l |::::::::::::| < PCショップ一覧まとめたで。
     ,'.三ミi 'ー'゙  'ー'゙ |:::::::::::::|  \ http://777e.net/goodshop/pc/
     | 'ri''ヾ:、  r‐┐  ,.|::::::::::::::| 
     l |i,__!:>'=''r‐''".i:::::r、:::::|
      ! l,|: |"  ゙、'、 ;:/::;/ ヽ:|
     l!  |大"    `''"/'"'   ヽ
     !  | ヽ|     、i  ,. イ'
625login:Penguin:03/05/03 23:16 ID:0wgreF57
>>623
 7.2 7.3 8.0 9.0ときたけれど いまでも
 なんもせんでもうごいてるぞぉー
626602:03/05/04 02:19 ID:gkG2Ia/9
>621
私が研究室でいじくっているものは都合によりg77でコンパイルできないと
いけないので、OO化は敷居が高いです。
(allocateが使えない状況で省メモリが最優先(苦))

FEM3つ目の引退の理由が気になります。前2つのどちらかに機能移植が
完了した、とかでしょうか。

やっぱりシミュ板にスレ立てたほうが。
627login:Penguin:03/05/04 11:49 ID:USuEh2C7
ム板にFotranスレ立ってるけど、ここどーよ?
ttp://pc2.2ch.net/test/read.cgi/tech/1003214738/
628crazy_u:03/05/04 12:21 ID:aIbVqLoK
>>623
こちらでは,赤帽9で動いてます.
どう動かないのでしょうか?
どういうメッセージが出ますか?
link時に「○○○がありません」とでるなら,
/opt/intel/compiler70/ia32/libのなかの○○○が入っているライブラリを探して
明示的につけてやると解決するかも知れないよ.
629crazy_u:03/05/04 12:36 ID:aIbVqLoK
>>626
FEM3つ目の引退は他の一つに機能移植が完了したからです.(f77の旧コード->f90化と新要素と新機能追加)
f90にしているのは,私が,ある日,突然,事故や病気で死亡しても,
fortranであれば「維持」位は周りの人員でできるだろうという配慮です.
(周りの人はC++を勉強もしたくないようです.)

>やっぱりシミュ板にスレ立てたほうが。
601でfreeのFEMについての情報を求めたところ,
こんなにintel compilerとは別の話題で伸びてしまいました.
以後,情報を求める場合は関連する板があるかよく調べてからにします.
630login:Penguin:03/05/04 17:54 ID:pq4wQE4z
>f90にしているのは,私が,ある日,突然,事故や病気で死亡しても,
シビアっすな。たぶんCNETの記事で読んだ気がするのだけど、
きっちり文書を残し、引き継ぎを考えてくれる優秀な人間ほどクビになりやすく、
意固地にノウハウを秘匿している人間ほどクビになりにくいらしい。
まあ企業としても、近視眼的に将来設計すると当然そうなるでしょうね。

>以後,情報を求める場合は関連する板があるかよく調べてからにします.
個人的には、面白い話題だったので、気にしてないですよ。
というか、私も別スレに強制ソカーン?
631611:03/05/05 14:58 ID:jA0+5TWJ
忙しくて遅レスになりました。

>>614 数値コードといっても、私の場合 flexibility が重要なんで、
C++ の方が楽です。結局いくら速く走るか、より速く正しくコード
する方が大切なんで。(C++ がそう好きなわけでもないですが…)
あとSTLは重宝しています。

>>616
ヒントありがとうございます。徹底的には調べてないのですが、
tpp7 とか pentium4 とか指定しても( -O3 と一緒に)あまり
私の場合変わりませんでした。有意な差がないか、あっても数%。
何かおかしいことしたのかしらん。

ある程度は最適化を考慮してコードしているつもりです。(といっても
間違いをしにくいコード、見やすいコードを最優先していますが)
しかし、これは gcc, icc うまく行ってもともに速くなると思うので
どっちが相対的に利を得るかはわからないと思います。
632login:Penguin:03/05/05 18:18 ID:H4Ye7vfX
ところで皆さんどんな数値計算ライブラリを使っていらっしゃるん
でしょーか?iccで動く良いライブラリってどんなん?
# ちゅーかiccで動くとか言う以前に良く知らんわけだが。
633login:Penguin:03/05/05 21:40 ID:h9ijJ1I7
>>632
必ずしもコンパイラに依存した話ではないが、
lapack は使ってる。netlib は一般的に便利。
634623:03/05/05 22:25 ID:J+wEl3Uh
>>625,628
マジっすか。
__ctype_b がどうとか言うエラーがでて止まります。(今手元に環境がないのではっきりいえませんが)
で、intel のユーザーフォーラムに行ってみるとRH9のglibcでは動かないのでglibcはRH8に落とすように
とかアドバイスされてました。
635crazy_u:03/05/06 00:56 ID:zALrHwOz
>>634
今 /opt/intel/compiler70/ia32/libでgrep _ctype_b * としてみた.
下のライブラリのどれかに有りそうですよ.
(私はiccも入れているのでifcだけだとない場合もあるかも.....)
libCEPCF90.a,libCEPCF90.so.3,
libIEPCF90.a,libIEPCF90.so.3,
libPEPCF90.a,libPEPCF90.so.3,
libcprts.a,libcprts.so.3,
libcxa.a,libcxa.so.3

「_ctype_bから呼んでいる○○○がみつからない」なら同様にして探してみてはどうでしょうか.
636login:Penguin:03/05/09 09:36 ID:3nuHlbol
>>631

VTuneを使ってみたら?
Linux版もあるし...
637login:Penguin:03/05/09 21:02 ID:Iw/mseMc
Vtune Linux版の使い方教えてけれ!!
638動画直リン:03/05/09 21:13 ID:TPu648o8
639login:Penguin:03/05/15 18:22 ID:Fcovmt4N
icc
640login:Penguin:03/05/15 22:14 ID:pqhnqBLS
ifc
641login:Penguin:03/05/20 19:41 ID:PT3GBpGT
crazy_u さんなかなか大変ですね...お察しします。
642山崎渉:03/05/22 01:51 ID:VfjbtMwi
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
643login:Penguin:03/05/22 05:35 ID:4+kUNQ7J
ニヤニヤ(・∀・)
644login:Penguin:03/05/24 20:42 ID:ZoQ0LIhO
そのうちカーネルもiccでコンパイルできるようになるんかなぁ。
645login:Penguin:03/05/24 22:33 ID:ExM2/19T
既に出来るし
646login:Penguin:03/05/27 00:41 ID:w7lpIAps
(・∀・)renice!
647山崎渉:03/05/28 16:43 ID:3t6i6zxR
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
648login:Penguin:03/05/29 08:42 ID:ekZSounW
(・∀・)renice!
649login:Penguin:03/05/29 09:03 ID:7Azvj9Ue
ifcを使っています。
pentium3では倍精度変数のベクトル化は出来ないんですか?
650login:Penguin:03/05/29 09:49 ID:JNnRDsO7
XFree86はiccでどうよ?
651login:Penguin:03/05/29 10:45 ID:un8ncENh
Imake(?)のマクロが通らなかったような。
652login:Penguin:03/05/29 11:10 ID:7Azvj9Ue
>>45のアライメントの問題ってまだ存在するの?ファイル名の長さ変えても速度変わらなかったけど。
653bloom:03/05/29 11:13 ID:pdJrRzE3
654login:Penguin:03/05/31 15:18 ID:ILAzHcFe
>>649
出来ません。そこがSSEとSSE2の違いです。
655login:Penguin:03/05/31 16:22 ID:+9tncjk0
>>654
回答有難うございます。
ついでに、このような情報が載っているサイト等
教えて頂けないでしょうか?
656login:Penguin:03/05/31 19:06 ID:hGWk0uM8
657654:03/06/01 11:53 ID:6By+cE3x
>>655
developer.intel.comにいろいろある。例えば、
http://developer.intel.com/software/products/compilers/flin/docs/manuals.htm
658login:Penguin:03/06/02 23:24 ID:bhT8EpXU
(・∀・)renice!
659login:Penguin :03/06/14 19:38 ID:gyi/XUl+
Math Kernel Library 6.0
出てるね。
新しくDFTIっていうのが加わってるがスピードのほどは?
660login:Penguin:03/06/19 18:54 ID:6G2kRFjD
板に膿む用のコンパイラは、64ビットアドレス用のコンパイラとしては
出来が今ひとつだ。
661 ◆Zsh/ladOX. :03/06/19 23:12 ID:r++0Osd3
>>632
最近こんなの↓あるの知ったヨ。

GSL - The GNU Scientific Library
http://sources.redhat.com/gsl/

icc -O3 -tpp7 -xW でもコンパイルは出来た、
が速くなるのかは知らん…
662login:Penguin:03/06/21 01:19 ID:b/MChSwn
インテルのコンパイラ、8.0のベータ版が出たのだが、
うまくインストールできない。。
663login:Penguin:03/06/22 20:04 ID:fT1pon5W
ifc7.0で-openmpのオプションを付けてコンパイルしたら並列化命令を書いて無くても
segmentation faultになる…わけわからん
664login:Penguin:03/06/23 10:58 ID:oeTTCU3d
663よ、もうとっくにバージョン7.1に切り替えなさいよ。
665login:Penguin:03/07/01 00:41 ID:xLzamEeU
>>662
で,8.0はどんなもんなのか?
まだインストールできないんなら,俺がやってやるからクレ!

666crazy_u:03/07/01 01:13 ID:ucIeuOlk
>>662
うちは赤帽9.0で問題なくインストールできたよ。(まだ使ってみてないけど)
どういうふうにうまくいかないか書いてみたら分かる人がいるかもしれないよ。
>>665
ベータ版はここで登録すればライセンスが送られてきてダウンロードできる
ttp://www.intel.com/software/products/compilers/beta/welcome.htm
667login:Penguin:03/07/01 01:41 ID:9GnTJF5h
サンプルムービーだよ
http://www.k-514.com/sample/sample.html
668login:Penguin:03/07/02 01:59 ID:VujfXoME
(・∀・)renice!
669crazy_u:03/07/04 20:01 ID:pYjIxnBh
ifc8.0betaを動かしでみたが,
1. -I オプションが効かない。
2. -implicitnone オプションがあるとセグメントエラーでとまる.
(-uと等価で,-uはデフォルトでonなので-implicitnoneは消した)

「1」は困った.

icc8.0betaは修正パッチがあてられない。
670login:Penguin:03/07/04 20:48 ID:oB31e1rv
ylugでカーネルからアプリまでiccで握ってみましたという
報告があった.けっこう強烈.
671login:Penguin:03/07/05 00:39 ID:ZKnxbtmw
えっ Kernelもコンパイルできるの?
672login:Penguin:03/07/08 00:36 ID:DtGnB79X
(・∀・)renice!
673login:Penguin:03/07/08 00:40 ID:uaa14KHP
むー、ダウソできない…

http://developer.intel.com/software/products/compilers/clin/noncom.htm

の下の"continue"をクリックすればいいんだよね?
ぜんぜんつながらんでtime outしてしまいます。
なんか手順間違ってるんですか?
674login:Penguin:03/07/09 00:09 ID:loVu+OLq
8.0ベータはパッチを当てて更新するしか方法がなくなってしまったが、
これは実際にはダウンロードしなければならないサイズは減ったかもしれない
が、実際にパッチを適用したり、ヴァージョンを管理したりする手間というか
人間側の心理的手間は、絶対にむしろ大きくなったと思う。
675n:03/07/09 00:21 ID:yzdABmxi
☆頑張ってまーす!!☆女の子が作ったサイトです☆
       ☆見て見て!!
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
676login:Penguin:03/07/09 00:42 ID:ZigCc05i
> えっ Kernelもコンパイルできるの?

というレポートがあった.
ちなみにカーネルをiccで握っても効果は無いらしい.
677_:03/07/09 00:43 ID:RRaEUYou
678login:Penguin:03/07/09 16:54 ID:hR7XXacg
>>676
> ちなみにカーネルをiccで握っても効果は無いらしい.
Why?
679_:03/07/09 16:55 ID:xW/HCJFM
680とも:03/07/09 17:13 ID:86ymNsn+
681x:03/07/09 18:03 ID:TL5iCd9+
☆頑張ってまーす!!☆女の子が作ったサイトです☆
       ☆見て見て!!
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
682login:Penguin:03/07/10 00:40 ID:+aTXKZa/
Xをiccでアーキテクチャー別に最適化してコンパイルしてみれ。
683login:Penguin:03/07/14 02:40 ID:5XjH4O4S
age
684山崎 渉:03/07/15 11:17 ID:2JhhXBQM

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
685login:Penguin:03/07/15 12:07 ID:Fo16Kpwc
(・∀・)renice!
686login:Penguin:03/07/16 07:06 ID:2DXMWT9D
バッファーなどの内容をコピーしたりするのにMMX命令の系統を使えば、
能率がよくならないかな?
687login:Penguin:03/07/16 13:26 ID:KUYpk/1R
>>686
なるよ。
手間を考えるとペイしないような気がするけど。

つーか、それだけのためにCPU使うのはどうよと思うが。

688login:Penguin:03/07/16 22:23 ID:JT1j323j
>>686
iccって積極的にMMXとかSSEの命令使うんじゃない?
バッファコピーとか最適化してるのかな…誰か実証イボンヌ
689login:Penguin:03/07/20 22:33 ID:mKHQx37j
Linusもgccはイマイチだと。
690login:Penguin:03/07/24 11:04 ID:nNyOO5nT
(・∀・)renice!
691login:Penguin:03/07/27 11:58 ID:Aq2rr+SO
(・∀・)renice!
692ぼるじょあ ◆yBEncckFOU :03/08/02 05:09 ID:GfRe8vK7
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
693login:Penguin:03/08/02 10:35 ID:2rmp9gin
(・∀・)renice!
694login:Penguin:03/08/02 16:06 ID:HVnj553M
>>676 おもしろいのを発見した。もしかしたら既出かも。

Intel C++ Compiler による Linux kernel build と性能評価
YLUG kernel 読書会での発表資料 (icclinux.pdf)

Linux 2.4.20 用 icc build パッチ (2003/06/30版)
Linux 2.4.21 用 icc build パッチ (2003/07/01版)
Linux 2.5.73 用 "暫定版" icc build パッチ (2003/07/03版)
http://www.suri.co.jp/~ohkubo-k/linux/


"発表資料"によると、ファイル作成性能に関しては性能が向上するらしい。
しかし、その他の動作は安定しないらしい。

postgresqlをiccでコンパイルすると、大幅に性能がアップするらしい。
695login:Penguin:03/08/02 23:04 ID:yzUthQHd
RedHat Linuxのbeta版のsevernを試しに入れてみた.
ifcは正常に動かなかった.(コンパイラの内部エラーでストップ)
696login:Penguin:03/08/03 16:33 ID:9jMM4mta
RedHat Enterprise Linuxのbeta版のtaroonを試しに入れてみた.
ifcは正常に動かなかった.(コンパイラの内部エラーでストップ)
正式リリース時には使えるようになるかな?
697login:Penguin:03/08/03 17:04 ID:M4hhWC14
>>694
それ昨日のlinux seminarでやった奴でしょ?
698GET! DVD:03/08/03 17:23 ID:KSrwZbRY
☆★ 新商品 ゾク・ゾク 入荷!! 急げ〜!! ☆★☆
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安!  スピード発送!  商品豊富!   
★☆      http://www.get-dvd.com        
☆★ 激安DVDショップ 「GETDVDドットコム」 
★☆      http://www.get-dvd.com        
☆★ 今すぐアクセス Let’s Go!   急げ! 
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
699login:Penguin:03/08/03 18:04 ID:2rvL/V8H
700login:Penguin:03/08/03 19:21 ID:LnwLtAl4
ずーっと >>586 のような感じで、
iccで"libなんとか.so"をつくることができませんでしたが、
本日、libtoolのCVS版を入れると問題が解決しました。

$ libtool --version
ltmain.sh (GNU libtool) 1.5.0a (1.1220.2.25 2003/08/01 19:08:35) Debian: 49 $

<参考>
http://www.mail-archive.com/[email protected]/msg03756.html

libxine1-rc0 を "-xK -ipo -ipo_obj" のオプションで
ソースを全く修正せずにコンパイルすることができました。

あとXFree86のchangelogに
---
254. Replaced inline asms with compier intrinsics for Intel compiler
(Bugzilla #427, Slava Sysoltsev).
---
http://www.xfree86.org/cvs/changes.html
というのを発見しました。
701login:Penguin:03/08/04 00:36 ID:o2Kz2STh
Cだと速くなるんだけど、C++ だとあまり g++ とかわらないんだけど。
いろいろオプション弄っても。俺だけかなぁ…
702login:Penguin:03/08/05 01:14 ID:EFPrlYTw
性能がアップするモジュールのソースだけを、icc でコンパイルしたオブジェクト
ファイルとして差し替えて、あとはGCCでコンパイルされたオブジェクトを
リンクしてカーネルを作ればいいのでは?
703login:Penguin:03/08/08 10:01 ID:oDy/Pk9K
Redhat9にIntel compilerをインストールする場合は,
デフォルトのglibcのバージョンの問題のよう.
glibcをバージョンアップしてからifcをインストールするとできるらしい
704login:Penguin:03/08/10 01:36 ID:KIU12EYe
インテルがコンパイラのソースをGPLにしてくれればいいのにね。
705login:Penguin:03/08/10 10:59 ID:42n23iGr
阿呆か。
706login:Penguin:03/08/13 00:59 ID:vZiKmtQp
昔試験的にインテルがGCCにインテルCPU向けのコードオプチマイズ
の機能を高めるパッチを出していたことがあったが、一回そういうことが
あったきりで、その後は無かった。
707山崎 渉:03/08/15 22:52 ID:ep0zwfOh
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
708login:Penguin:03/08/15 23:45 ID:GfNK1qbf
(・∀・)renice!
709login:Penguin:03/08/16 15:03 ID:rNtMNMvg
(・∀・)renice!
710login:Penguin:03/08/18 22:36 ID:uzo2Kc6f
http://www.bigfield.com/~hiroshi/mxapi2.html
ここのページのソースをコンパイルしてみたんですが
警告はでるもののコンパイルされるんですが
実行するとgccと結果が違うんですが...
どういう理由からなのか教えてください。
intel-icc7-7.1-6
RedHat8
gcc-3.2-7
711login:Penguin:03/08/26 18:03 ID:gFo6zh41
(・∀・)renice!
712login:Penguin:03/08/30 01:49 ID:lnjLgl6n
CもFortranも8.0Beta版が出たのに書き込み無いのはどーよ、どうなのよ

713crazy_u:03/08/30 11:00 ID:hGNBDF9C
>>712
Compilerとして安定してきたことで,
・特に大きな不具合はない
・出来上がるバイナリ-に目立つ部分で性能の向上は(7.1に対して)みられない
からではないでしょうか
実はItanium2上では最適化を上げると計算が壊れたプログラムがあり,バグレポートを送ってある。(まだ直ってない)
ここに書き込むことでもないので書き込んでない。
新命令が追加されたCPUがでれば書き込みが増えると思うよ。
714login:Penguin:03/08/31 03:03 ID:Gl3sHcd+
AMDもインテル並みの努力をコンパイラやライブラリ、組込み用のライブラリ、
マルチメディア関連のライブラリ、開発チューニングツール類に割くべきだ。
CPUだけが早くて高性能だとしても、それを引き出すことができないのでは
なんにもならない。サードパーティのコンパイラメーカーに任せてしまうのは
コンピューターをトータルのシステムとして理解が不十分と思える。
(日本メーカーもWSやPCに関してはこの点でまったく論外だ。)
715712:03/08/31 21:36 ID:VcA2JGBq
>>713
とりあえず了解.大幅な性能向上を期待していたがそんなもんね.
smp環境下での自動並列化あたりを期待しているんだが...
特にHTあたりで有効になってほしいのだけど.
716crazy_u:03/08/31 21:54 ID:+nx1nf0P
>>715
現在,私のところはsmp環境がないのでその辺はテストしてないです。
HTについては,私は科学技術系なので生かせそうもないです。GUIやデータベース,ネットワーク系だと生かせるのかな。
私自身は科学技術計算の並列化については(Intelに限らず)コンパイラには期待してないません。
末端での並列化はよほど問題にマッチしてないとオーバーヘッド部分でかえって遅くなると思うので,
より上位レベルで明示的に並列化のコードにしていく方がよいと考えています。
(一度苦しんで作りこめば,あとはマイナーチェンジで改良していけると楽観的に考えてます。
 一つ作ればまた別のアイデアも湧くでしょうから........)
717login:Penguin:03/08/31 23:36 ID:L6FSQmVQ
HTが科学技術計算では意味がないというのは経験的には
わかっているんですが、その理由はどう考えればいいんでしょうか?

>>715
正直OpenMPを勉強したほうが早いと思われ。仕様書なんて
数十ページしかないので覚えるのは簡単です。
718login:Penguin:03/09/01 01:07 ID:xy5CU+BZ
>>717
演算器が一個分しかないから。
719ot22:03/09/01 12:41 ID:Lc8gUGt5
INTELと関係ない話ですみません
8/17ころにgcc-3.5のソースツリーにfortran95が入ったみたいですね
http://people.redhat.com/dnovillo/spec2000/tree-ssa-branch/global-run-ratio.html
を見る限りperformanceも悪くなさそうです
720crazy_u:03/09/01 20:39 ID:U4X17Unv
>>717
たいていは,CPUかメモリー帯域のどちらかが手一杯な状態なのでHTでの効果はない。
(FEM,流体,分子軌道法等でそうなってなかったら計算の遅い下手糞なプログラムでしょう)
個々の計算が軽くても,数がたくさんあるときはワークパイル式の並列化はHTでも効くと思いますよ。
それと,コンパイルするときはHTで良かったなとは思います。
サブルーチンが山ほどあるのでmake -j2 でコンパイルしている。
721login:Penguin:03/09/02 02:19 ID:zMJC9gOv
ベクトル計算機のようなメモリ帯域をハードウェアで馬鹿金をつぎこんで
稼いでいるマシン向きの,あるいはそれにそっくりなコードを
HTをやっても大して効かないでしょう.
どうせメモリ転送ボトルネックだからです.
722712:03/09/08 01:27 ID:qWMNar0q
Pen4のメモリ転送6.4GB/Secってかなりの帯域にはなってる・・・
ベクトル計算機でも並列のパイプラインで10GBぐらい?
723login:Penguin:03/09/08 01:53 ID:/friIDf0
いや、帯域だけあってもねえ。所詮はDRAMなわけだし。
724Tetrodotoxin:03/09/11 21:52 ID:jqiOSKxV
現在、Intel Fortran Compiler 7.1 for Linux を使ってfotran90を動かしたいと思っています。

非商用バージョンをインストールしたのですが、うまく動いてくれません。

どなたか詳しいインストールの仕方を知っている人がいたら、教えてもらえないでしょうか。

よろしくお願いします。
725Tetrodotoxin:03/09/11 22:04 ID:jqiOSKxV
↑ちなみにRed Hat Linux 7.3を使っています。
726login:Penguin:03/09/11 22:09 ID:sIKnH92J
727login:Penguin:03/09/12 01:23 ID:1atZEiyI
最近のintelのコンパイラは何も考えなくてもインストール出来るようになってると思う.
どこでつまずいているか書いた方が早いと思うが...
728Tetrodotoxin:03/09/12 13:17 ID:fNfEoxzz
>>726
ありがとうございました。

>>727
rpmファイルをredhatのインストーラーでインストールした後、licenseをコピーして実行。

ここまではやったのですが、実行しようとすると、「f90はみつかりません」というようなエラーがでてしまいます。

729Tetrodotoxin:03/09/12 13:19 ID:fNfEoxzz
rpmのインストール方法に原因があるのでしょうか。
730login:Penguin:03/09/12 16:11 ID:t8xIzIK3
>>728
予想1 パスが通っていない.
予想2 そもそもコマンド名がf90でない.ifc.
「rpmのインストール」でどんなファイルがどこにインストール
されるか確かめれば済むこと.

中途半端に訳して書くよりはエラーをそのまま書く方が良い.
今回のは

~$ f90
-bash: f90: command not found
これのことを言っているのだろうか.
731Tetrodotoxin:03/09/12 17:05 ID:fNfEoxzz
>>730
ありがとうございます。

エラーの内容は以下の通りです。

[]$ f90
bash: f90: command not found

[]$ f95
serialization_error

何度も聞いて申し訳ないですが、お願いします。
732login:Penguin:03/09/12 17:21 ID:OE2kVsYM
>>731

>>730さんの予想通りと思いますが,予想1,2はどうですか.
あと,licenseを手でコピーしたなら一応パーミッションを
確認.自分が読めるようになってます?
733login:Penguin:03/09/12 18:21 ID:aTyG287s
>>726
(´・ω・`) ZEON??

734730:03/09/12 19:09 ID:t8xIzIK3
>>731
私はDebian GNU/LinuxにIntel Fortran Compilerをインストールしています.
alienでrpmからdebに変換してます.730で書いたことを繰り返しますが,
f90やf95といったファイルはインストールされていません.ifcです.
それともrpmからインストールすると,f90やf95にシンボリックリンクが
張られるのですか.rpmパッケージの中身を確認しては如何ですか.
735crazy_u:03/09/13 13:56 ID:p4hAA4+6
>>731
マニュアルは読みましたか? 英語のマニュアルはちょっとと言うのであれば,
XLソフトからIntel Fortran compiler 7.0 Linux版の日本語マニュアルが提供されているので,
まずは,それを良く読むこと。↓

ttp://www.xlsoft.com/jp/products/intel/download.html

cshの環境だと/opt/intel/compiler70/bin/ifcvars.cshを実行してもパスが通らないことがあるので
(私はLD_LIBRARY_PATHがかつて通らなかった)
自分のhome directoryの.cshrcの中をifcvars.cshを参照して編集すると良いです。
編集後に,システムに入り直すか,source .cshrcを実行でOK。コマンドは他の人も書いてますがifcです。
マニュアルを読んでないように見受けられるので,ここで質問する前にマニュアルくらいは目を通して下さい。(他の人に失礼です)
736crazy_u:03/09/13 14:01 ID:p4hAA4+6
>>731
連続ですみません。
環境はbashのようですね。パスがどうしても通らなければ.bashrcを編集するとよいと思います。
737login:Penguin:03/09/19 11:49 ID:WROpUPEl
今現在はLINUX用には無料だが、いつか有料化されてしまうのではないかと
危惧を感じる。
738login:Penguin:03/09/21 16:41 ID:7+FI9AMs
入手済のものが有料になる訳じゃないのでどうでもいい。
739login:Penguin:03/09/21 18:52 ID:w6QJgY+P
しかし,新しい機能やバグが直っているのを使えないと,フラストレ-ション溜るよ.
740login:Penguin:03/09/22 13:13 ID:uHmDw6ue
Inelが非商用版を無料で配布するメリットはなんだろう?
メリットがあるうちは無料だろうが,メリットが無くなれば有料化するのでは?
741login:Penguin:03/09/22 23:27 ID:bywsX0oa
HPCユーザーに対するitaniumとxeonの販促じゃないの?
AMDが死んだらメリットは減るんではないかな
742login:Penguin:03/09/25 16:59 ID:FN6PNMc8
(・∀・)renice!
743login:Penguin:03/09/27 21:51 ID:pZAnLGNt
RedHat Linuxのbeta版のsevern beta2を試しに入れてみた。
ifc7.1, ifc8.0-betaともに正常に動作し,計算も正常に行われた。

RedHat Enterprise Linuxのbeta版のtaroon beta2を試しに入れてみた。
ifc7.1, ifc8.0-betaともに正常に動かなかった。(コンパイラの内部エラーでストップ)
正式リリース時には使えるようになっていて欲しい。


744login:Penguin:03/09/29 23:56 ID:UEeII9mi
severn beta2でifc8.0-betaで作成したバイナリはifc7.1でのものより1割位遅かった。
まあ,beta OS上でbetaコンパイラだから.....
745login:Penguin:03/10/04 23:49 ID:kpZzpAfH
(・∀・)renice!
746login:Penguin:03/10/06 22:07 ID:WdLy46cx
pgplot(g77,gcc)とnetcdf(icc)の両方を使うコンパイルがでけた
みそはlibg2cからs_stopを抜いたものを新しく作りリンクすること
747login:Penguin:03/10/09 02:30 ID:qaV5l52p
8.0 ってまだまだバギーだよね?
748login:Penguin:03/10/09 02:33 ID:qaV5l52p
Fortran9x の MODULEを作ったときに出来てしまう .MOD ファイルを
UNIXの make と整合性あわせて, Makefile をうまく書くのが難しい.
どこかにチュートリアルないだろうか? とにかくたくさん分割ファイルが
あって,モジュールもたくさんあって,それらをいろんなところで引用
しているときの依存関係が,複雑怪奇になっている場合,どうすればいいのか
わけがわからん.
749crazy_u:03/10/09 19:31 ID:1YCs5VAM
>>747
私が使用している範囲では,IA32用は安定してますね。IA64用はまだバギーかな。
バグに見舞われたら,少々面倒でもIntelに連絡しましょう。製品版までに直ってくれれば安心して使えるので。
バグの程度にもよるけど,Intelの対応は良かったよ。
750login:Penguin:03/10/11 03:36 ID:A6R3ZcJH
Intel への連絡方法は,ブラウザを使うやり方に限定されていて,
WINDOWS上でに比べて,LINUX上だと,非常に面倒で不便.
EメールにUUENCODEしたファイルをつける方が簡単で良いのに.
(しかも,毎回同じマシンやシステムの環境などをいちいち手で
入力させられるので時間がとても食われる.)
751crazy_u:03/10/11 11:22 ID:aoPycQc3
>>750
私はバグに会ったプログラムから小さなテストプログラムを作成して,
メールに添付して送ったりしているので,
添付するものがないときも,連絡の初回はEメールで済ましている。
回答を見たり,その回答への返事とかはブラウザ上だけど。
752llaco:03/10/16 02:27 ID:5YWfAdLL
Intel Fortran Compiler 7.1 for Linux をインストールしようとしたところ、
# ./install
を実行すると

A valid FLEXlm license is required to install this product, but none were found
in $INTEL_LICENSE_FILE (.:/opt/intel/licenses).
Where is a valid FLEXlm license for this product?
Enter directory or file, or just 'Enter' to exit.
<ENTER>
A valid FLEXlm license key for this product is needed before installation. Exiting...

と言われてしまいます。対処法がわかりません。どなたかよろしくお願いします。
redhat7.3でやってます。
753login:Penguin:03/10/16 02:38 ID:rjl05pCq
エラーメッセージをよく読め。
754login:Penguin:03/10/16 03:12 ID:HupKIp40
>>752
Read the error message.
755llaco:03/10/16 11:51 ID:l4PsQU6v
"FLEXlm license"を"l_for_*.lic"のことだと思って、これを/opt/intel/licenses
に置いたり、installファイルと同じ場所に置いたりしてたんですが、すでに間違ってますか?

前やったときは、ライセンスファイルは./install実行後に/opt/intel/licensesに置いた気がするので間違ったことしてるような気はするんですが・・・
756login:Penguin:03/10/16 12:15 ID:4ZDPlnUp
>>755


INTEL_FLEXLM_LICENSE=/some/path/to/your_license.lic
757llaco:03/10/16 21:28 ID:NNOmsNpx
>>755です
体験版をDLしていたため、ライセンスが切れてるだけでした。
今度から非商用版を使うことにします。
>>756
ありがとうございました。
758login:Penguin:03/10/17 12:04 ID:En50EzPk
8.0βってどこから落とせばいいんですか
教えてえらい人
759 ◆Zsh/ladOX. :03/10/17 13:41 ID:XUCGR1T0
>>758
過去ログを全部読むかそこから検索しる.
760lolo:03/10/18 11:29 ID:uCSzffEf
RedHat9上でifc7.1のインストール行った後、コンパイルすると

...
1824 Lines Compiled
/opt/intel/compiler70/ia32/lib/libIEPCF90.a(f90fioerr.o)(.text+0x4d3): In function `f_f77ioerr':
: undefined reference to `__ctype_b'

とエラーがでます。どなたか対処法ご存知ないですか?
過去ログでcrazy_uさんがご指摘していたlibはifcのみでも全部あるみたいです。
761lolo:03/10/18 11:31 ID:uCSzffEf
RedHat9上でifc7.1のインストール行った後、コンパイルすると

...
1824 Lines Compiled
/opt/intel/compiler70/ia32/lib/libIEPCF90.a(f90fioerr.o)(.text+0x4d3): In function `f_f77ioerr':
: undefined reference to `__ctype_b'

とエラーがでます。どなたか対処法ご存知ないですか?
過去ログでcrazy_uさんがご指摘していたlibはifcのみでも全部あるみたいです。
762lolo:03/10/18 11:37 ID:uCSzffEf
すいません。操作ミスでおなじものを投書き込んでしまいました。m(_ _)m
763login:Penguin:03/10/18 12:49 ID:IGCw3kyP
glibc2.3 から __ctype_b_loc になったらしい。

764crazy_u:03/10/18 13:12 ID:7lDIA8F7
>>760
古いBuildのifcを使用してませんか?
現在は,
Intel(R) Fortran Compiler for 32-bit applications, Version 7.1 Build 20030922Z
です。('ifc -V'で確認。)
これでは,/opt/intel/compiler70/ia32/lib/で 'grep _ctype_b *'としても
'_ctype_b'の文字列を含むファイルは無いようですね。
(つまり,_ctype_bという関数は無いし,これを呼ぶ関数も無い。)
ちなみに,赤帽9のglibcも4/9にupdateされているので,念のためにこちらも最新版にして試してはどうでしょう。
rpm -qa | grep glibc
glibc-2.3.2-27.9
glibc-devel-2.3.2-27.9
glibc-kernheaders-2.4-8.10
glibc-common-2.3.2-27.9
765login:Penguin:03/10/18 21:11 ID:CkgLH2F4
変だな,LINUX版のFORTRAN90とC++は永久利用可能ライセンスではなかったの?
766lolo:03/10/18 23:40 ID:Z3ahupM2
早速のご教授さりがとうございます。m(_ _)m
ifcのバージョンを調べたら

Intel(R) Fortran Compiler for 32-bit applications, Version 7.1 Build 20030307Z
Copyright (C) 1985-2003 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY

GNU ld version 2.13.90.0.18 20030206
Supported emulations:
elf_i386
i386linux

と返ってきました。ifc自体、本家USのFTPサイトからではなく日本のFTPサイトから
ダウンロードしました(ダウンロードはおとといしたのですが...)。
日本とUSではFTPサイトに置いてるバージョンが違うってことなのでしょうか?
USサイトから再度ダウンロードしてみます。
ちなみにglibcは

glibc-common-2.3.2-27.9
glibc-profile-2.3.2-27.9
compat-glibc-6.2-2.1.3.2
glibc-2.3.2-27.9
glibc-devel-2.3.2-27.9
glibc-debug-2.3.2-27.9
glibc-kernheaders-2.4-8.10
glibc-utils-2.3.2-27.9

でおそらく最新のものがインストールされていると思います。
767lolo:03/10/19 00:48 ID:PaB7azw1
本家USのFTPサイトでも非商用のbuildバージョンは20030307Zで同じでした。
crazy_uさんのBuildは9/22付けになってますね。もしかして私とダウンロード
したFTPサイトが違うのでしょうか?よくわかりません...
768login:Penguin:03/10/19 01:31 ID:JSi7Tbwa
やり方忘れたがpremiere supportに登録すれば最新版にアップデートできますよ。
もちろん非商用でも。intelから来たメールをよく読めばわかるとおもわれ。
769lolo:03/10/19 09:38 ID:LtxhQsCl
Penguinさん、crazy_uさん、たびたび有用なコメントありがとうございます。m(_ _)m
早速登録し、最新版をダウンロード->インストールしました。
ようやくRH9&ifcでコンパイルできました。

それから、Build20030307Zの方でもオプションで-i_dynamicalと付けて、-xWを
外すと一応コンパイルできることが判明しました。RH8&ifc7.1(Build20030307Z)
では何の問題もなくコンパイルできていたので、RH9&Build20030307Zで-xWが通らない
理由は全くわかりません。

まだまだ、私は勉強不足のようですね。
770login:Penguin:03/10/19 14:44 ID:7cV4PSHw
8.0βって使用期間付きだったので登録やめた
771login:Penguin:03/10/19 16:58 ID:zu7Q35mU
クラックパッチはどこにあるん?
772login:Penguin:03/10/19 17:20 ID:/U5ZQ/Z8
>>771
朴?、李?、それともチ(ry?
773ot22:03/10/20 12:02 ID:acsuXBEh
>> 769
どうもlibstdc++あたりのバージョンとの問題が強いようです。
i686以上でtuningしたものだと関数のentryがないといって叱られる場合が多いようです。
i486でmakeしたものだとあまり問題が生じないというのが経験則です.
P.S. 他のコンパイラですけど, glibcはこっちを使いなさいとくっついてきているのもありました.
774login:Penguin:03/10/21 13:12 ID:7H3t5fat
インテルから送られてきたメールのサイトでダウンロードすると、
ファイル名が、「l_cc_p_7.1.006」なのですが、FreeBSDのportsは、
l_cpp_p_7.1.030を要求してきます。

l_cpp_p_7.1.030は、どうやったら手に入るのでしょうか?
775login:Penguin:03/10/21 13:20 ID:7H3t5fat
>>774
自己レスです
Premierに登録すれば良かったですね。
あと、ファイル名がチョコット間違えてましたごめんなさい。
776login:Penguin:03/10/25 05:30 ID:cExatsue
ちょっと前に Build 20030922Z のRPMを
インテルのサイトからとってきて入れた。

ディレクトリのパーミッションが
大半 rwxrwxrwx になってることに今、気がついた。

# find ${intelcompiler} -type d | xargs chmod 755
777login:Penguin:03/10/26 11:18 ID:VW7fW/4m
777
778login:Penguin:03/11/02 19:17 ID:MGHTobIw
premiere supportって1年たったら有料みたいなことかかれてるよう。
でも登録しないと最新版DL不可なのね。。。
779login:Penguin:03/11/02 21:48 ID:JjTRDZwI
>>778
嘘!!何処に書いてるの?
780login:Penguin:03/11/03 08:38 ID:juP364vf
>>779
いまURLはわからないけど、レジストするとくるメールにかいてある場所。
781login:Penguin:03/11/03 08:41 ID:juP364vf
ttp://www.intel.com/software/products/support/index.htm
あった。ここの Intel Premier Support

When your 1-year support service expires, you will need to renew that
support at a discounted price to continue receiving those services.

と。。。よみちがえてるかな?
782login:Penguin:03/11/03 17:54 ID:8Yc9P4g+
ううむ。旧いものは無料でintel以外のサイトでも再配布されているのだが、
最新版は、配布物そのものでなく、'support'に後々課金されていく、つうしくみなのかね。

まあ今まで散々ばら蒔いて、そこここでiccが使われてきたから、カネ稼ぎを始めるころかもね。

違う手だけど、solaris x86でSUNがやってたね。
散々ばら蒔いてから「x86やめちゃうよ、嫌ならカネ払ってね」って。

SUNが脅しならこっちは騙しだな。


で、この辺について、intel関係者か詳しい人の降臨キボン。
783login:Penguin:03/11/04 01:02 ID:7KTVtMUT
GNU の F90を作る計画はうーーーんと遅れて今日に至っている.
SGIのFORTRAN90コンパイラ部品をベースにGPLなコンパイラを
という話も一時期あったが,なぜかポシャったみたいに見える.
FREEなFORTRAN90,95のコンパイラが無いことは,非常に残念である.
開発や教育に使う場合には,最適化は程程でよいから,軽くて
バグの無い,FREEなコンパイラが欲しい.
784login:Penguin:03/11/06 22:53 ID:vzXLPe+j
ifc8betaを使ってみたけど,ifc7に比べてhimeno benchでは15%も遅い!
これが一般的な数値だと思わないが,ifc8betaはまだまだ使えない...
785login:Penguin:03/11/07 13:52 ID:jL8a1oqO
>>778-782
Intelのソフトウェアは、
・購入後一年間のテクニカルサポート付き
・購入後一年間の最新版へのアップグレード付き

だから、プレミアサポートも有料だろ。

無料版だとどうなるのかは知らない
78668 ◆Hplra7cWGo :03/11/08 22:49 ID:SWFTT6ZN
>>508
同意

ところではなしは変わるけど、携帯ゲーム機"プレイステーションポータブル(PSP)

 久夛良木氏は,“PSPはゲーム業界が待ち望んだ究極の携帯機”として説明。「ここまでやるかと言われるスペックを投入した」という。
 発表によれば「PSP」は,曲面描画エンジン機能を有し,3Dグラフィックでゲームが楽しめる。
7.1chによるサラウンド,E3での発表以来,クリエイターたちにリクエストが高かった無線LANも搭載(802.11)。
MPEG-4(ACV)による美しい動画も楽しめるという。これによりゲーム以外の映画などでのニーズも期待する。
 外部端子で将来,GPSやデジタルチューナーにも接続したいとする。
また,久夛良木氏は,繰り返し「コピープロテクトがしっかりしていること」と力説。会場に集まった開発者たちにアピールしていた。
 さらに,ボタン設定なども明らかにされ,PS同様「○△□×」ボタン,R1・L1,アナログスティックが採用される。

この際、スク・エニもGBAからPSPに乗り換えたらどうでしょう。スク・エニの場合、PSPの方が実力を出しやすいような気がするんですが。
任天堂が携帯ゲーム機で圧倒的なシェアをもってるなら、スク・エニがそれを崩してみるのもおもしろいですし。かつて、PS人気の引き金となったFF7のように。

突然こんな事書いてスマソ……
GBAと比べてみてどうなんですかね?(シェアの事は抜きで)
787login:Penguin:03/11/09 02:48 ID:c7tPjf2d
GBAとPSPと比べてIntel Compilerがどうなのかってこと?
788login:Penguin:03/11/09 17:58 ID:RvQ6Azzq
>>787
誤爆ってことかと...
789ot22:03/11/09 18:01 ID:MMYg5VhY
>> 783
gcc-3.5のCVSには取り込まれていますね. gfortran という名前で
F95を目指しているみたいです。
790crazy_u:03/11/11 22:15 ID:oAWQ/DMc
ifc 8.0 betaを使ってみたが,7.1に比べて>784と同様に遅かった。
FEMのデータ読込み部だと50〜100%遅かった。
解析部分で15%程度遅い。
最適化レベルを上げると計算が壊れる部分があるし.....
(P4で赤帽9及びItanium2で赤帽AW2.1)
正式リリース時には速くなるのか?

RedHat Enterprise Linux 3.0でIntel Compilerを動かした人はいますか?
ifc8.0 betaは動くけど,7.1は動かないんだけど他の人もそうかな?

Fedora Core 1 では正常に動作してます。
791crazy_u:03/11/15 11:28 ID:46HMbLQc
ifc7.1をBuild 20031103Zに更新したら,RHEL3.0で正常に動作しました。
(11/14にIntel Premier Supportからのメールで更新の案内有り)
792login:Penguin:03/11/19 22:44 ID:Uw9KSyAu
報告乙
793FIREWELL:03/11/20 01:53 ID:ZQHTsu3z
ああ、このFORTRAN90やC++コンパイラのクオリティでもって
AMD64対応のコードも吐いてくれたらいいのに。AMDは
AMD64のアーキテクチャーをインテルなどの他社にも無料公開
して市場拡大を目指すべきである。それが本当の恩返し。
794login:Penguin:03/11/20 07:38 ID:DOEUPilW
>AMD64のアーキテクチャー
数年前から大公開中ですが何か?
795login:Penguin:03/11/21 02:36 ID:VOn/rI5d
無料公開というのは、パクっても特許ロイヤリティも取らなければ、訴訟も
しないということだけど、そうなの?
796login:Penguin:03/11/21 04:23 ID:N6po1X8l
>無料公開というのは、パクっても特許ロイヤリティも取らなければ、訴訟も
>しないということだけど、そうなの?

君の辞書にはそうなってるのかもしれないが、
世間一般にはそうではない。
797login:Penguin:03/11/22 21:43 ID:rUD1L6k3
3dnowの時の失敗をamdは生かすことが出来るのか。>x86-64
798login:Penguin:03/11/23 23:31 ID:yv1r1wan
むりぽ
799login:Penguin:03/11/24 00:05 ID:i0Ku7SEH
だいたい「無料」公開ってなにさ?
800login:Penguin:03/11/24 12:15 ID:1ACrxng9
トランスメタの技術を使えば、64ビットのINTELイタニウムやCRAYの
ベクトル計算機のマシンコードを,32ビットのx86 CPUで実行したり、
AMD64の回路ハードウェアをわずかに改造したもので実行したり
できると思う。
トランスメタ自身が、種々のCPUをエミュレートする汎用のCPUと
その上のトランスレーターソフトを作ればいいのに。
801login:Penguin:03/11/24 12:27 ID:FjcP3KX0
Z80コンパチのGHz級PCを開発したらトランスメタは神
802login:Penguin:03/11/24 22:45 ID:XFV3AcIV
なんのために、という動機が必要。トランスメタも
企業だからね。x86-64コードをCrusoe上で動かす
CMSは、AMDとトランスメタが出してたね。
商売になりそうなのはJava-Chipエミュレータかな。
803login:Penguin:03/11/26 02:18 ID:8aZUyRny
IBMのメインフレームの命令セットをトランスメタ風に
エミュレーションできれば、なにか嬉しいことがないでしょうか?
804通りすがり:03/12/04 01:32 ID:kNU/oW5D
亀レスですが。

>>785さんの補足(?)


For those customers using our non-commercial products,
you can still register for product support from the Premier Support site
but the services you receive will be limited.

とあるので、何が制限されてるかは知らないけど、
登録できる様です。

805login:Penguin:03/12/09 18:50 ID:2d8A2JmZ
ifc 8.0が出たみたいだね。どのあたりが売りなのかな。
今ダウンロードしている所です。
806login:Penguin:03/12/10 02:06 ID:QoIBA7Ti
売りはvisual fortranとの互換性なのかなぁ。
スレの上のほうの8.0betaユーザの報告ではパフォーマンスが…
というかんじだったけど。正式版での報告キボンヌ。
807login:Penguin:03/12/10 09:02 ID:sroqBqpo
これのコンパイラと開発ツ-ルの提供はAMDに対するインテルの牽制だろうね。
AMDがいくら良いCPUを作っても、コンパイラなども含めたト-タルなサポ-ト
とくに開発環境とサポ-トに関しては、金力のあるインテルが数倍上だから。。。
808login:Penguin:03/12/10 10:08 ID:TiL7MpLh
ifc8
Release noteを見た感じでは、Prescot新命令対応が中心みたいですね。
Pentium4用にも-xWの他に-xNというオプションが追加されたようです。
それから今後コマンド名はifc(ifl)ではなく、ifortに変えるとか
(このバージョンでは両方使えます)

まだチューニングしていないので何とも言えないのですが、Win版で
試した限りでは、7.1より少し遅い感じがします。
-Cオプションの一部機能が動かないなど、年内出荷に無理矢理合わせ、
これからブラッシュアップしていくつもりではという印象を持ちました。
CVFの後継なのかなと思ったら、Win版はVisual.NETが入っていないと
動かないとか(これまではCVFが入っていれば動いた)。あんな重い
ソフトむやみに入れたくない!価格も重量級だし。

と言うことで4日前に発表された7.1の最終バージョンを入れ直して
しばらく様子をみようと思います。
809login:Penguin:03/12/10 22:12 ID:p/JFC5ch
icc8が出たけど、Premier Supportからは取れないな。
Non-Commerical Licenseだと icc Version 8は取れないのかな?
810login:Penguin:03/12/10 23:19 ID:GiTuTJ3u
>>809
メジャーバージョンアップだから
普通にintelのサイトから8.0のサポート無し版を落として
プレミアに製品の追加登録するんじゃないの?

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

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

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

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

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

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

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

VTuneはバージョン低いスギだしw
 
Redhat9を Kernel 2.4.18に下げたらパニックしてダメだったので、
VTune側でRedhat9に対応して頂きたい所存(切実
820login:Penguin:03/12/13 00:32 ID:6ENh9c3+
で,ifc8ってどうよ?
ifc7に比べて遅いんだけど.
821809,811:03/12/13 01:29 ID: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くらいの数字がちらほら出るので一定してない。
明確にどっちがいいとも言えないなぁ。
822login:Penguin:03/12/13 11:37 ID:6ENh9c3+
>>821
2.6Cの割に数値が低いね.win版?
823login:Penguin:03/12/13 14:44 ID:Ro2jdgnU
>>822
いや、ソースを拾ってきて icc for Linux on Redhatでコンパイル。

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

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

# もしかして既出?
825809,811:03/12/14 18:47 ID: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も性能低すぎるような。
そして、姫野ベンチのランキングに乗ってるマシンは何であんなに速いんだろ?
カーネルのチューニングとかも必要なのだろうか
826懲りずに姫野ベンチ809:03/12/14 19:45 ID: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……。
小手先の改良じゃまだ追いつけないな。
何か足りないか設定変なのか(;´д⊂
827login:Penguin:03/12/14 22:02 ID:lf80yPW7
>826
私も姫野benchをwindows xpでバイナリとiflでコンパイルした物を両方
動かしてみましたが、バイナリでは600を超えるのにiflで造った方は350前後
しか出ませんでした。(ifl7.1,8.0/P4-3GHz)
やはり何か工夫が必要なのでしょうかね。
体感的にはこの数字ほどiflが遅いようには思えないのですが。
828login:Penguin:03/12/15 08:07 ID:cbcpH3vl
>>825

-tpp7を-tpp6でやってごらん!
829三つの女の子:03/12/23 11:14 ID:QCWtAyCy
ifort (ifc8) でlapack 3.0のコンパイルの仕方を教えてください。
特に make.inc の書き直し方。
MKLとどっちがよいでしょうか?
830login:Penguin:04/01/01 01:21 ID:po+KK1Hr
atlasをがんばって生成するより、libgoto使ったほうが効果てきめん。
ただ、IA-64用のlibgotoはZHEGVでエラーが出る。よろしく後藤さん!!
831login:Penguin:04/01/04 14:52 ID:HKxDF7PC
ifcはUnsupported版あるけど、MKLは30day evaluationのみなのね。なんだか生殺し。
LAPACKもなかなか構築できんし。>>829 さん有用な情報が入手できたら教えて下さい
832login:Penguin:04/01/04 21:59 ID:60Guqh70
>>831
atlasじゃだめなの?atlasはlapack+blasですよ。
833login:Penguin:04/01/06 17:54 ID: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をサポート!
これなら まぁまぁ新しいのでインストールに耐えるような
834831:04/01/07 22:47 ID:TrdAH3pz
>>832
勿論atlasは使用可で、速度を求める時は良い選択肢ですが、もっとしょーもない
所で悶々としてます。

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

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

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

・AMD CodeAnalyst? Performance Analyzer
・AMD Core Math Library

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

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

Pentium4: 128本
Athlon:   70
Pentium3:  60

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

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

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

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

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

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

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

>>852
ifc7 -parallel だと、プロセスはフォークするけど実行は1cpuのみで、
topでみても cpu は合計でも最大 100% の user 時間
ifc8 -parallel だとちゃんと2cpuで実行する。topでみると cpu の state は
合わせて 170% とかになってる。
857login:Penguin:04/01/27 12:54 ID:ManW0tcR
himenoBMTでifort -parallel付けてもコアを吐くことは無いけれど,
2CPUで計算している様子は無い.
858login:Penguin:04/01/28 00:42 ID: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
859login:Penguin:04/01/29 01:30 ID:PQwhYO8S
複素対称ですか? エルミート対称ではなくて? なんだか大変そうだな。
860login:Penguin:04/01/29 11:44 ID:6+2++KnT
複素数の対称行列って意味だけど??
モノは普通のバンド計算のハミルトニアン。

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

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

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

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

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

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

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

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

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

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

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

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

私も前者ですね。安定性を取ります。そして、PC本体以上のお金をネットワークに
注ぎ込む。Infinibandかmyrinet、金が余りすぎていたらQsNetかな。
いずれにせよ、大規模クラスタはPC本体よりネットワークに金がかかる。
ギガビットイーサじゃ16台以上のクラスタでお話になりません。
888login:Penguin:04/02/20 17:31 ID:II/TPAcB
IA-32e≒AMD64なのを知って、K8WとOpteronを衝動買いしてしまった。
ifcでコンパイルしたコードが高速に動きますように、な〜むぅ〜。
-O3 -xW -tpp7 でオッケーかしらん。
889877:04/02/20 21:10 ID:1CBoErdx
>888
暇があったら、-fast(-staticと-ipo)も付けてみてください。
さらに暇があったら、GCCでの結果も希望。
さらに金があったらPGIコンパイラでの結果を希望。
890login:Penguin:04/02/21 04:06 ID:38g5+MVb
64bitOS上ではOpteronやItanium2が速いのはわかるけど、
32bitOSではどんな結果になるんだろ
ttp://www.spec.org/cpu2000/results/res2004q1/
891876:04/02/21 14:30 ID: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
892876:04/02/21 19:55 ID:8HsAQALQ
おまけ.
himenoベンチ,small版でテスト.

Pen4 3.4Ghz 801.47 Mflops
Prescott 3.2Ghz 1494.31 Mflops

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

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

894877:04/02/21 23:11 ID:jfxu6FCf
>892
himenoベンチは、キャッシュ容量が大きい方が有利なので
傾向は正しいけど、1.86倍も高速なのは驚きですね。クロックも低いのに。
プレスコット最適化オプション-xWNはどうですか?
また、姫野ベンチは-tpp6の方が速いです。
時間があったらトライしてみてください。
895876:04/02/22 12:45 ID: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の本領が発揮されていない気がします.
896877:04/02/22 13:05 ID:E0CmsZKJ
>895様
早速のご報告ありがとうございます。
しかも、3.2XEまで付けてくださいまして。お金持ちなのですね。

3.2XEはあまり良くないですね。3.4GHzと比較してわずか50MFLOPSしか変わらない。
これで、5万以上の価格差があると考えてしまいます。L-3はレイテンシがかなり遅いんでしょうね、
Prescottの大容量L-2が1.4倍ものスコアを出しているのがそれを物語ってる気がします。
897login:Penguin:04/02/22 22:06 ID: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 で
コンパイルしてみた。
とても速い。びっくり。
898877:04/03/02 19:42 ID: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回行ったが傾向は同じ)
恐るべし・・・
899877:04/03/03 01:13 ID:kXEuxeA0
>898
どうでもいいけど 877は私です。

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

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

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

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

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

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

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

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

そういう意味で他の人の評価は知りたい
906login:Penguin:04/03/06 16:29 ID:ElyP7wq7
おお、速いね。Lサイズもプリーズ。
SSE3の水平加算が効いてるのかな?
907876:04/03/06 21:59 ID:Z82muOUR
>>905
それは無いよ.
でもバイナリバージョンのが何でコンパイルされているか知ってる人いない?
absoftのものだとずっと思っているんだけど.勝手な想像で.
908login:Penguin:04/03/06 22:46 ID:bRkosRDc
>>907
バイナリバージョンって姫野ベンチWINDOWS版の?
いまstringsしてみたけどCompaq Visual Fortranぽい
909907:04/03/06 23:48 ID:Z82muOUR
>>908
ムム.
言われてみれば,確かにソースファイルの方にも
Visual Fortran用のオプションがあったが・・・
Visual Fortranで試したんだけど,バイナリ版の値と違うことがあって違うと思ってしまった.
910login:Penguin:04/03/07 00:24 ID:G3X0GupN
姫野ベンチのソース見てみたけど、メモリアクセスのスピードで
決まってしまうような気がする。
911907:04/03/07 01:00 ID:Pa2HfQiU
>>910
科学技術計算では,メモリアクセス速度は重要よ!
912login:Penguin:04/03/07 02:12 ID:G3X0GupN
メモリ帯域幅をはかるベンチでいいんじゃねーの?w
913login:Penguin:04/03/07 09:19 ID:HTsVo8S6
おまいらメモリの帯域幅なのかレイテンシなのかはっきりしる

ちなみに姫野ベンチはstreamベンチとあんまり相関なかった記憶があるけど
streamはメモリ帯域測定ベンチマークね
914877:04/03/07 19:46 ID:xbMHGdvr
>913
同じマザーや、メモリを使って、姫野ベンチを測定すれば、
メモリバンド幅は同じでしょ、northwoodでもprescottでも。
だから、キャッシュのレイテンシの話になっていると思うのですが。

streamもメモリバンド測定ベンチと言われているが、ようは使い方。
同じメモリバンド幅で、CPUを変えて測定すればレイテンシの影響が測定できる、
メモリバンド幅も変わってしまうような環境間で使えば、
それは、メモリバンド幅を相対的に測るベンチとなるんでは?
915login:Penguin:04/03/07 20:26 ID:HTsVo8S6
>>914
そうなんだ。
895と同じ3種類の環境でstreamやったらCPU変えても結果まったく変わんなかったけど
もしかして使い方間違ってるんかな。
メモリはDDR400ね。
Function Rate (MB/s) Avg time Min time Max time
Copy: 320.0000 0.1125 0.1000 0.2000
Scale: 320.0000 0.1250 0.1000 0.2000
Add: 480.0000 0.1625 0.1000 0.2000
Triad: 480.0000 0.1000 0.1000 0.1000
916login:Penguin:04/03/07 20:33 ID:HTsVo8S6
もしかして配列サイズとか調整しないといけないのかも。
だれか知ってる人がいたら教えてください。
917login:Penguin:04/03/08 18:07 ID:y866kTB2
で、結局Prescottがどういうケースで速くなって、どういうケースでは
速くならないのか考察してみたヤシはいないの?
今んとこ姫野ベンチ以外に具体例が無いから、いまいち信用できん。
速くなったケースではどんな問題を解いてる?
918login:Penguin:04/03/08 18:41 ID:4MF2nt8+
>>917
水平加算でマトリックス系は全般的に速いんでない?
元々メモリ帯域は広かったし。
919login:Penguin:04/03/08 19:45 ID:y866kTB2
>>918
メモリ帯域が変わらないのに速くなったってことは、
プリフェッチまわりが単純なマトリックス演算向けに
チューニングされたとか、そういうことかなあ。
920login:Penguin:04/03/09 07:44 ID:gY50bzfC
Opteron+SuSE x86_64にicc,ifort (ia32)入れたんですけど、
ライブラリをリンクするとき怒られまう。
もしかして32bit用のOSにしないといけないんですか?
921login:Penguin:04/03/09 12:10 ID:CLV88Ryc
>920
質問するならエラーメッセージくらい(ry

RH9でifc7が動かなかった問題と同じなら、動きそうなバージョンの
glibcを持ってきてそっちにリンクさせれば行けるかも。
http://softwareforums.intel.com/ids/board/message?board.id=11&message.id=34
922login:Penguin:04/03/09 20:29 ID:kiQ4+HHf
>>920
リンカにi386アーキテクチャだよって教えてやればよかったはず。
うろ覚えだが、-Xlinker -melf_i386 とかでどうよ?
923login:Penguin:04/03/15 13:23 ID:8aCHZpBX
ifc 8 (ifort?) の評判が芳しくない様ですが、常用するには 7.1 の方が良いの?
今から登録するんで、7.1のダウンロードができるかどうかわからんですが、、、
偉い人教えて下さらないでしょうか?
924877:04/03/16 23:35 ID:3osCDUTp
>923
7.1と8は共存可能なので、両方をインストールして
安定した方を常用するのがベストだと思います。
925923:04/03/17 01:29 ID:nVb2lKwj
>>924
了解です。どうもありがとう!
926login:Penguin:04/03/23 17:41 ID:MZPvskmd
age
927jj:04/03/31 12:02 ID:7a9Jd4Eb
すみません,Debianのところとの追加(?)書き込みになりますが,
こちらが最適な掲示板のようなので,Intel Fortran Ver. 7.1について教えてください.


これまで,Pentium(初代)の古いLinux機(debian 3.0, kernel 2.2.20,libc2.2.5)に
IFC7.1をインストールし,普通に使えておりました.
MPICHなども動いています.

が,新しいPentium4,3.0GHzのPCに,やはりDebianをインストール,
(先述のPC共々,stableの最新の状態です)
同じファイルからIFC7.1をインストール(rpm→deb)しましたが,
コンパイルができないという現象が出ました.

コンパイルは,write文ひとつのものでもできず,
「Compiler Internal Error」というものが発生します.
もちろん,同じプログラムが前述のPCでは通ります.

OSの状態は,パッケージも含めほぼ同じで,CPUやらが違うだけです.
(キャラクタベースで計算のため,余分なモノもいれていない)

何か考えられる原因がありましたら,ご教授頂けないでしょうか?
928jj:04/03/31 13:12 ID:7a9Jd4Eb
927のものですが,その後,
(確認ですが,pentium1機では普通に動いて,MPICHなども使えています)

ifc test.f90 -axiMKW
とすると,エラーメッセージが下記のように変わりました.


program TT

4 Lines Compiled
*Compiler Internal Error* : Please report to Intel(R) Corporation
compilation aborted for tt.f90 (code 1)
929jj:04/03/31 22:19 ID:7a9Jd4Eb
927の自己レスです.
カーネルを2.4,24にアップデートして無事解決しました.
(Pentium1機では動いていたのが謎ですが)
930login:Penguin:04/03/31 22:22 ID:NtEOVCsn
P4 で動かせば コンパイラは P4 に最適化した
オブジェクトを吐こうとしますよね。
コンパイルオプションで 66Mhz Pen 用の
オブジェクトにさせてはどうでしょうか。
また、4行は大きいので 男はだまって
END 文。だけではどうでしょう。
931login:Penguin:04/05/03 18:06 ID:OjQ7fltM
保守あげ
932login:Penguin:04/05/04 00:20 ID:rW1+GBOA
保守あげ
933login:Penguin:04/05/08 11:56 ID:006/DMWD
Prescott2.8Ghz+ifc8でhimeno_sベンチなんだけど1400Mflopsぐらい出ます.
でも自作コードだとPen4 2.8Ghzに1割以上負けちゃうんだよな〜
なかなか扱いが難しい.
それと3.0Ghz程度にオーバークロックしてもhimenobmtの数値が
ほとんど上がらない傾向にあるんだけど,なんでだか分かる人います?
そんな経験ないっすか?
934crazy_u:04/05/08 15:40 ID:2NlHAOCN
久しぶりの書き込みです。
v8.0でコンパイルするとI/Oが多い部分が極端に遅いので,マニュアルを調べてみたら
-assume nobuffered_io
がデフォルトだった。
-assume buffered_io
にしたら速くなった。I/Oが多い部分でv8.0は遅いと感じてる人は試してみると良いと思います。
FEM解析のソフト(チューニング済)では,IA64用に関しては
v8.0(l_fc_pc_8[1].0.039_pl044.1)は
v7.1(l_fc_pc_7[1].1.040),v8.0(l_fc_pc_8[1].0.046)よりも速かったです。
(自宅にHP ZX6000 1.3GHz(中古)が来たので色々試している最中です。)
935login:Penguin:04/05/09 22:53 ID:gV+1zjGH
>933
姫野ベンチは、演算も重要だがそれ以上にメモリ周りが効いてくる。
プレスコットで姫野ベンチが早いのはL2大容量(+SSE3)と思ってますが、
オーバークロックしてメモリの周波数が下がったら、それらの恩恵は
薄まるのでは?
オーバークロックしてメモリの周波数が下がってない?
あと、sサイズだとプレスコットではキャッシュインしている可能性がある。
キャッシュインしたら、オーバークロックしてメモリの周波数が上がったとしても、
そんなにスコアはあがらないと思う。
姫野ベンチはメモリ-CPU間を計っているようなもんだからなぁ。。。
936crazy_u:04/05/20 23:59 ID:A5bDFvnH
428, 430, 431と同じテストを行ってみました。

Itanium2 1.3GHz (zx1 chipset)
efc7.1, Build 20040310
block size: usr sys wallclock % : GFLOPS: 理論性能値比
mb=1:313.470u 0.243s 5:14.11 99.8%: 1.061: 20.41%
mb=2:128.245u 0.247s 2:08.56 99.9%: 2.593: 49.87%
mb=3:129.956u 0.237s 2:10.26 99.9%: 2.559: 49.27%
mb=4: 78.585u 0.242s 1:18.86 99.9%: 4.228: 81.23%
mb=5: 82.121u 0.228s 1:22.38 99.9%: 4.047: 77.83%
mb=6: 86.212u 0.245s 1:26.46 99.9%: 3.856: 74.15%

Itanium2 1.3GHz (zx1 chipset)
ifort8.0, Build 20040101 Package ID: l_fc_pc_8.0.039_pl044.1
mb=1:315.175u 0.241s 5:15.86 99.8%: 1.055: 20.30%
mb=2:130.405u 0.236s 2:10.72 99.9%: 2.550: 49.04%
mb=3:131.009u 0.235s 2:11.59 99.7%: 2.534; 48.72%
mb=4: 83.629u 0.250s 1:24.41 99.3%: 3.950; 75.95%
mb=5: 84.566u 0.229s 1:24.84 99.9%: 3.930: 75.57%
mb=6: 90.751u 0.237s 1:31.05 99.9%: 3.662: 70.41%

Itanium2 1.3GHz (zx1 chipset)
ifort8.0, Build 20040416 Package ID: l_fc_pc_8.0.046
mb=1:540.660u 0.232s 9:01.71 99.8%: 0.615: 11.84%
mb=2:129.862u 0.234s 2:10.15 99.9%: 2.562: 49.26%
mb=3:130.882u 0.242s 2:11.19 99.9%: 2.541: 48.87%
mb=4: 83.520u 0.241s 1:24.06 99.6%: 3.966: 76.27%
mb=5: 85.637u 0.236s 1:25.89 99.9%: 3.882: 74.65%
mb=6: 89.692u 0.240s 1:29.93 99.9%: 3.707: 71.29%
異様にmb=1の場合が遅い!!
937crazy_u:04/05/21 00:00 ID:3JbcJqkU
続き
Pentium4 3.06GHz (i850E chipset)
ifc7.1, Build 20040310
mb=1:488.470u 0.560s 8:09.40 99.9%: 0.681: 22.26%
mb=2:218.320u 0.540s 3:38.97 99.9% 1.523: 49.76%
mb=3:159.510u 0.610s 2:40.51 99.7%: 2.077: 67.88%
mb=4:139.200u 0.500s 2:21.07 99.0%: 2.363: 77.23%
mb=5:176.180u 0.550s 2:57.01 99.8%: 1.883: 61.55%
mb=6:180.060u 0.550s 3:00.61 99.9%: 1.846: 60.32%
938crazy_u:04/05/21 00:06 ID:3JbcJqkU
このテストではefc7.1速いが他の大次元の部分固有問題(SubSpace法)では
IA64に関してはifort8.0, Build 20040101 Package ID: l_fc_pc_8.0.039_pl044.1が
他のversionよりも1割ほど速かったです。
OSはRHEL3.0ASです。
RHEL3.0AS_update2ではglibc_develのバグでifort8.0はリンクできません(IA64)。
939login:Penguin:04/05/23 02:15 ID:luj+XkrJ
Version 8.0 で-axNPや-xNP のオプションでコンパイルすると

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
test_prog(※←プログラム名です。) 08530327 Unknown Unknown Unknown

Stack trace terminated abnormally.

となるのですがこれはベクトル化不可能と考えてよいのでしょうか。
940login:Penguin:04/05/29 02:18 ID:ltoFE3kC
どうだろか、もう8.0 は十分に信頼に足りる程に安定になったと言えるかな?
以前出始めの頃に、コンパイルの間違いと性能の劣化で、しばらく手を出さないで
置いたのだが、どうですか?
941crazy_u:04/05/29 03:03 ID:f7tpPT3A
私はIA32ではNorthwood coreのP4を使用してますが,
v7.1用にチューニングしたコードではv8.0は性能が全然でません。
それまでVectorizedされていた部分が,のきなみPartial vectorizedになってしまって
全く×です。使い物になりません。
v8.0でVectorizedになるように書換えるのはあまりにも多くの作業が必要で(数値計算ライブラリが50万ラインある)やってられません。
ですから,
IA32: v7.1
IA64: v8.0
で使用してます。
Prescott coreを使用している人の情報をお願いします。
942login:Penguin:04/06/10 10:46 ID:SdhbSpW1
Linux magazine 7月号
>今回評価したAbsoft社のFortranは、一部のプログラムでは
>GNU Fortranより低い性能しか出せませんでしたが、

おいおい
943login:Penguin:04/06/18 11:17 ID:wHS4VoNn
MKL6.1 for Linux の30日体験版を落としたんだけどこれって製品版から
BLASとかの中身が省略されているものなんでしょうか?

今までのMKLだとコンパイル(リンカ)が通ってたプログラムが定義されてない関数が残ってるっていうエラーはいて止まる。
それ以前にライブラリ自体が見つからない。libmkl_p4.aなんかはlibmkl_p4.soにファイル名が変更されてたけど・・・
944login:Penguin:04/06/19 17:05 ID:hcBGH92p
MKLのクラスタ向きバージョンがリリースされた模様。
ScaLapackをサポートしたらしい。

インテルのIA32の64ビット拡張アーキテクチャー向きのコンパイラは
いつでるのだろうか? それはAMD64用にはうまく動かないように
なっているのだろうか? はたして。。。
945login:Penguin:04/06/20 12:40 ID:VDbqbQOf
>943
なんかいろいろと変化がある模様。
私はとりあえずコンパイル時に
ifort source.for /opt/intel_fc..../lib/32/libmkl_lapack.a /opt/intel_fc..../lib/32/libmkl_ia32.a /opt/intel_fc..../lib/32/libguide.a
としてうまくいっている様子。
場合によっては-staticオプションが必要かも。
コンパイラーのオプションがDec Fortranと違いすぎ。
誰か簡単な一覧作ってくれ。
946945:04/06/20 19:00 ID:1lntWs6/
というわけでどうもライブラリを-lで指定するのではなくソースコードと同じように並べるみたい。
Intelのサイトのどっかにmklの使い方のドキュメントがあったはず。
それより誰か実行時デバッグのオプション教えてくれ。
947login:Penguin:04/06/22 00:44 ID:4JCCOPeW
AMDもフリーでコンパイラ出してくれりゃいいのに。
948login:Penguin:04/06/22 00:49 ID:4JCCOPeW
シングルスレッドのプログラムをマルチスレッドに勝手に
コンパイルするコンパイラってない?
949login:Penguin:04/06/22 00:58 ID:eaI6uk3j
( ゚д゚)ポカーン
950login:Penguin:04/06/22 08:19 ID:Fmm7hwss
>>947
コンパイラは知らないけど、ライブラリかなんかは出してなかったっけ?
951login:Penguin:04/06/22 18:15 ID:fOI6gFpm
>>947
う〜ん、ifort でコンパイルしたやつもはしるけど激オソ。
行列の対角化のルーティンだと Opteron 1.4G の速さは
Northwood 3G の半分くらい。ifort の x86-64版が出ると
差は縮まるのかな。
952login:Penguin:04/06/22 21:58 ID:js8bRpl7
>>948
あることはあるけど…
953login:Penguin:04/06/23 10:19 ID:Hm7j1sae
( ゚д゚)ポカーン
954login:Penguin:04/06/23 16:18 ID:Hm7j1sae
ちょっと伺いたいんですが...

Ver.7の方がVer.8よりも高速ということなんで過去に入手していた
Intel(R) Fortran Compiler for 32-bit applications, Version 7.1 Build 20030307Z
をインストールしたんですが...

>>761のような症状が出てしまいました.そこで,>>766のような対処をしようと思うのですが.

パッチが見つかりません.Premier Supportには登録してあるのですが,なぜかCコンパイラのアップデートしかでてこないのです.

#Cコンパイラの非商用版

どこか,Premier Support以外でパッチを落すことが可能なサイトがあれば,教えていただけないでしょうか?

また,Intelにクレームを送りたいのですが,メールアドレスを御存じの方もいらっしゃれば教えていただけないでしょうか?

よろしくお願いします.

ちなみに,Ver.8は以下のような構成になっています.
Intel(R) Fortran Compiler for 32-bit applications, Version 8.0 Build 20031231Z Package ID: l_fc_pc_8.0.039

955login:Penguin:04/06/23 18:46 ID:0yt+eUt6
[email protected] にメールおくるよろし
956crazy_u:04/06/23 20:14 ID:E8xxt/69
>>954
Premier Supportに入ると"What's New"にまず入りますが,
左のリストの"File Downloads"に入ってProduct欄で
"Intel(R) Fortran Compiler for Linux"

"Intel(R) C++ Compier for Linux"

"All"
を選択して"Display File List"ボタンを押すと2004年1月からのが現れる.
最新のFortran v7.1はl_fc_pc_7.1.040.tar (3/17/2004)
最新のC++ v7.1はl_cc_pc_7.1.038.tar (5/21/2004)
957957:04/06/23 20:39 ID:Hm7j1sae
>>955
>>956

さっそくにレスありがとうございます.

>>956さんがおっしゃるとおりにすると,C++コンパイラの更新情報は出てくるのですが,
Fortranの方が出てこないのです.Fortranの方も登録してあるのですが...

#現に, 3月の時点では件のパッチのお知らせがメールで届いているんです.

じつをいうと,4月でメールアドレスが変更になっていて,それをPremier Support
の個人情報に反映させてはいるのですが,それが原因なのかもしれません.

いずれにせよ,>>955さんから教えていただいたアドレスに問い合わせを出してみようと
思います.

#英語で書くのが欝出し...

958login:Penguin:04/06/25 11:10 ID:KGqHK0Va
Intel Fortranでオーバーフロー時に止まるオプションってありませんか?
compaq Fortranで -fpeみたいなの。
ユーザーズガイドでは見あたりませんでした。
959955:04/06/29 12:51 ID:MmwrCOQy
>>957
下のに必要な分(XXとか名前とか)をいれて送るよろし
Dear Intel premier support:

I registered Intel Fortran Compiler for Linux XX month ago.
But, I could not find it in the product list on Premier Site.
Can I update the software?

Regards,
あなたの名前
960login:Penguin:04/06/29 18:58 ID:0kjj/IXp
intel fortran compiler 8を使用しています。

DO I=1,3
K_DASH(I,1)=KV(I,1)-KV(4,1)
ENDDO

上のような計算をベクトル化やSSE等で高速化するにはどうすればよいですか?
自動ベクトル化してくれるように、ベクトル化するように明示的に指示すればよいのか、
それとも、そもそもこういったループはベクトル化できないのかアドバイスをください。
961crazy_u:04/06/29 22:42 ID:rev7DWWT
>>960
ベクトル化されるが,
loop長が3だったらベクトル化しないで,手でloop unrollingする方が良い。
ベクトル化したいならマニュアルのコンパイルオプションの項をよく読めば分かる。
この手の演算はメモリーへの書き込み速度がボトルネックになるので,積和演算ほどは高速化されない。
私は,以下のようにしてる(Pentium4 Northwood用)
FFLAGS=-tpp7 -xW -unroll16 -O3 -prefetch -scalar_rep -prec_div -auto -fno-alias -fno-fnalias -ip -lib_inline -nobss_init -Zp8 -lowercase -Vaxlib -vec_report3 -V
962login:Penguin:04/06/30 01:15 ID:SFMofoeJ
EM64T付きXeon、ついにリリースされましたね。Intel compilerももう対応してるんでしょうか?
963login:Penguin:04/06/30 16:00 ID:AiTFd2p9
>>962
以下によれば、コンバイラは7-9月期になるそうだ。
ttp://www.itmedia.co.jp/enterprise/articles/0406/29/news070.html?nc30
964login:Penguin:04/06/30 18:15 ID:NHxw14f6
巨大メモリ空間が魅力で、数値計算用にOpteron*2を検討してたけど、
Noconaがえらく早い&安いで登場しちゃって困惑してます。

>>885-887 と若干かぶりますが、今から非クラスタ構成な数値計算マシンを導入
するなら、「ちょい待ち」を差し引いてもコンパイラの観点でNocona有利なのでしょうか?
それとも初物ということで見送りが吉?
識者の方々の御意見を伺いたく存じます。
965login:Penguin:04/06/30 22:40 ID:kw1wLLxo
>>964
お、うちもほぼ同じ状況(^^;で、うちはもうちょっと新Xeon関係のベンチが出揃うまで待ちとなりますた。
個人的にはOpteron希望なんですが、数値計算関係でガチで比較してるサイトがあったら教えてください。
966login:Penguin:04/07/02 03:21 ID:iy/dn6d5
AMD64 を 32bit モードの環境で使用している人に尋ねたい。
インテルのコンパイラで何か不自由がありますか?
性能はインテルの物よりも落ちますか? (CPUクロックが同等の場合)
967957:04/07/04 12:44 ID:LOPpPOnO
>>959

ありがとうございます.なんと御礼を申してよいものやら...

さっそくに,コピペして送ります.

多謝
968crazy_u:04/07/08 22:04 ID:2IJ/hjjI
MKL v7.0に追加されたPARDISO(sparce matrix direct solver)を試した人はいますか?
試した人がいたら情報をお願いします。極めて高性能ならMKLを導入してみようと思います。
969名無しさん@そうだ選挙に行こう:04/07/11 16:09 ID:v7VsnVj5
すみません、少々お聞き致します。
現在製品版「Intel Fortran Compiler 8.0 for Linux」と
「Intel c++ Compiler 8.0 for Linux」のインストールをしております。
XLSOFTの日本語マニュアルにはライセンスはCD-ROMの中についているとありますが、
それぞれのコンパイラの付属マニュアルにはWebで登録してライセンスを取得して
ください、とあります。
C++のインストールの際、実際CD-ROMの中のライセンスらしきファイル
(CTA EULA for Linux C Compiler (8_x).RTF)では
インストール途中のライセンス認識させる画面で弾かれてしまいました。

やはりWebからユーザ登録してライセンスを取得しなければいけないのでしょうか?
インストール経験者の方などいらっしゃいましたら、どうかお教えください。
970969:04/07/11 16:10 ID:v7VsnVj5
すいません、sage忘れました。
ご容赦ください。
971名無しさん@そうだ選挙に行こう:04/07/11 17:22 ID:FyG8UizM
製品版なら発売元に聞けば?
972名無しさん@そうだ選挙に行こう:04/07/11 17:59 ID:XEz7xY/p
ライセンスのファイル名は
l_cpp_xxxxxxxx.lic
l_for_xxxxxxxx.lic
の様な感じだった気がする。
973login:Penguin:04/07/12 03:56 ID:CLt2NmVs
>>969
>Webからユーザ登録してライセンスを取得しなければいけないのでしょうか?
うん
974login:Penguin:04/07/13 01:14 ID:H9mTzxBu
>>971-973
ありがとうございました。
確かにオンライン登録してから送られてくるライセンスが必要でした。
本当に助かりました。
975login:Penguin:04/07/13 12:48 ID:s0dP6oks
fftw3 を icc,ifc でコンパイルしているのだが、lib*so ができない
a はできるんだがなあ、何が悪いんだろう
976login:Penguin:04/07/14 17:02 ID:Ex/vFHL6
--with-shared-libsとか--with-static-libsみたいなのを忘れてるとか
977975:04/07/16 12:52 ID:Ef8V7ImJ
>>976 ./configure --enable-shared --enable-threads CC=icc F77=ifc

なんだけどね、gcc,g77 じゃできるので、不思議。でも

checking for Fortran 77 libraries... -lm" -L/usr/local/intel/compiler70/ia32/lib -lm -L/usr/lib -lintrins -lIEPCF90 -lF90 -limf -lirc -lcxa -lunwind
checking for dummy main to link with Fortran 77 libraries... unknown
configure: WARNING: *** Couldn't figure out how to link C and Fortran; switching to --disable-fortran.

ってあるのが、心配。
978login:Penguin
autotoolsがiccでのPICの作り方を知らないから。
libtool-1.5で作り直さないと。