1 :
login:Penguin :
01/11/29 17:53 ID:5k7yf0ai intel 社の Web ページ
URL:<
http://developer.intel.com/software/products/eval/ >
の、"Non-Commercial Unsupported Software(非商用、サポート無し)" から、
RedHat系Linux 6.2 または 7.1 に対応した IA-32 や IA-64向きの
最適化C++,Fortran9x用のコンパイラ(version 5.0.1) が無料で
ダウンロードできるようになっています。
(詳しいライセンス条件は、ダウンロード時に表示される文書を
参照してください。)
intel 自身が作ってますので、インテル系のCPUの資源を活用できる
実行ファイルが生成されるます。(AMD の Athlon も Pentium III と
みなしてコンパイルオプションを選べばMMX機能などを使うことが可能です。)
以下は、「無料永続版」を入手した後で、それを実際に使えるようにする
ための設定方法の記述です。
C++ と fortran9x を両方ともインストールする例を書いていますが、
どちらかだけしか必要ない場合は、片方を省略することができます。
例は RedHat6.2 系統向けになっていますが、7.x 向けの場合でも大体同様です。
(Web ページからダウンロードしてくるファイルが違うだけです。)
ダウンロードする際に入力したメールアドレスにインストール時に必要となる
ライセンスキー情報が送られてきます。
2 :
2 :01/11/29 17:56 ID:u2JQMD7w
2get
3 :
login: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 のコンパイラを入れる。 たずねてくるディレクトリパスなどはデフォルトを選んでください。変えることもでき ますが、その場合はあとの説明はそれに伴って多少変わります。
4 :
login: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 ------------------ おわり といったぐあいです。 (ライセンスのキーの番号は実際とは変えてあります。)
5 :
login: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 ----------------------------------- 説明終り ------------------------------
6 :
login:Penguin :01/11/29 17:59 ID:5k7yf0ai
御清聴ありがとう。それではHappyHacking!
宣伝?
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を使っているユーザーなんてゴミみたいなもので、 誰も関心なんかないんだよ。
下手な煽りだな(藁
12 :
:02/01/12 16:22 ID:9PdOKLGW
age
13 :
login:Penguin :02/01/12 17:14 ID:WmNIzC2/
これでKDEとか片っ端からコンパイルし直したら 動作早くなるの?
14 :
login:Penguin :02/01/13 00:40 ID:xXzex+Lk
pgccよりはやい?
15 :
login:Penguin :02/01/13 01:07 ID:w26vCzhJ
コンパイラオプション見ると、MMX命令を吐くとかSSE命令を吐くとか 細かく指定できるね。 だれかベンチマークとか取った人いないかな
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
18 :
login: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
19 :
login:Penguin :02/01/13 04:10 ID:E8w4+80x
暗号関係のコードは、iccやはりかなり早くなるんだけど、俺が試した限りでは iccでコンパイルしたOpenSSH(+OpenSSL)は落ちまくりで使いものにならな かった。
20 :
login:Penguin :02/01/13 04:17 ID:ZL7ol7tm
21 :
login:Penguin :02/01/13 16:15 ID:lTcEUkeD
貴重な情報だ。 休み明けに試してみるよ。 f90がただだなんてうれしい。
22 :
login:Penguin :02/01/13 16:47 ID:ZL7ol7tm
SunのForteよりはgcc用のコードのコンパイルしやすいね。 動かない事が結構あるのはForteと同じ。
ごめんな。
25 :
23 :02/01/13 19:03 ID:8S0ngHZJ
あ、わかった。gcc拡張を利用したコードを、ってことだな?
>>25 そそ。あとお馬鹿なconfigureやMakefileをだます手間とか。
27 :
login:Penguin :02/01/13 20:33 ID:E8w4+80x
誰かiccでmozillaコンパイルして漏れにクレage
28 :
login: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でも動いた。
31 :
login:Penguin :02/01/14 03:20 ID:02BADL4c
どうだった?>30
32 :
30 :02/01/14 03:36 ID:MfJpktDa
>>31 取り敢えず手元にあったblaslapack(出どころ不明品)をifcで -O3 -tpp6 ぐらいで make
してみてこれまた手元にあったプログラムでDSYEVで100x100実対称行列
対角化してみたら激オソ。つか止まらん。
ちなみに同じ事をtitpackっていうのでもためしてみたが、-O3より-Oの方が
速かった。たぶんソースとニラメッコかつコンパイルオプション手探り
の可能性あり。
ただし行列の掛け算見たいな単純なDOループのを-O3 -tpp6 でやってみると
2倍高速化。
取り敢えず途中経過まで。
33 :
32 :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からじわじわ攻めていきます。
34 :
login:Penguin :02/01/19 00:04 ID:9x31aMrp
blas,lapackとも無料でintelから 出てるね。math kernel library (mkl)として。pgfortranのlapack より2倍はやい(p4 rambusで)。
35 :
33 :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向けのコードも出せるようにすればいいのにね。
37 :
login:Penguin :02/01/19 08:35 ID:CcBGA9H/
どーもな、Fortran のほうはたまに Pentium IV 最適化 すると internal error で落ちる。Pentium III にすれば コンパイルはとおる。 ATLASはgccで十分っていうかソースがアセンブラみたいな感じやからな。
38 :
login:Penguin :02/01/19 08:39 ID:CcBGA9H/
>>30 Lapack コンパイルしましたが。
なんかな、コンパイラの責任かどうかしらんが、
止まらないルーチンがある。今調査中。
複素数対角化だったっけルーチン名は失念。
g77 (gcc-2.95.3) だと一応結果は出たけど。
おりゃ不安定だと思ってるが。
39 :
login:Penguin :02/01/19 09:06 ID:CcBGA9H/
40 :
34 :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 をリンクしないと正常に動かない。
41 :
login:Penguin :02/01/19 11:13 ID:/efnsvv4
>>40 試してみる前ですまぬがこれってintel fortranの
オブジェとリンクはできますよね。
マジ感謝してます。ありがとう!!!!!
mkl とってこないとだめかぁ。
がんばりまっす。
(私FreeBSD の方が好きだからできればFreeBSDでも
出してくれないかなぁ...)
42 :
login:Penguin :02/01/19 11:20 ID:/efnsvv4
今ダウンしてる。ほんまに感謝してます。 しかしながらatlasの方が速いと聞くとちょっと やっぱりなんちゅうかそちらの方を使いたくなりました。 しかし安定度が低い。
43 :
login:Penguin :02/01/19 11:46 ID:/efnsvv4
44 :
login: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が十分最適化されていたからと 思われ。
45 :
login:Penguin :02/01/19 13:02 ID:/efnsvv4
>>44 これはすばらしい。
こっちは万単位の対角化ですわ。だからシビアなんですよね。
直接ではないけど。
とりあえず、atlasは結構バグっぽいんで使いたくない。
最近真面目にベンチは取っていないが g77 コンパイラフラグを
いろいろがんばればよいみたいなのを知って。gcc-3.0.xは
最適化は最近はどうなったかご存じですか?そもそもLapackとかでも
対角化はあまり最適化が効かないみたいですね。笑うのがg77で
最適化を全部取ってしまうと一桁以上計算時間がかかる。
pen4+rambusですか。すごいっすね。こっちはPenIIIなんすよ。
なんかデスクトップにあるようなしょうもないやつのほうがpenIVで、
今ならこっちが速かったりして :-)
アライメントの問題どうしてます?(すれちがいですまそ)
46 :
login:Penguin :02/01/19 13:22 ID:9j0IMkFv
最適化のoptionはあまりまじめにいじって ないんだけど、ifcだと -O3 -tpp7 というようにcpuごとに最適化するのがありました。 pp7はpen4でpenIIIはpp6だったかな? compaqの-tune ev67のようなものですね。 直接対角化でないというと、lanczosですか? ところでアラインメントの問題とは?
47 :
login:Penguin :02/01/19 13:51 ID:/efnsvv4
48 :
login:Penguin :02/01/19 13:52 ID:/efnsvv4
腹減ったのでめし食ってきます。
49 :
login:Penguin :02/01/19 14:12 ID:/efnsvv4
カレー食ってきた。カレーくさいぞ。うおおおおお。
pen3 で mkl使って実対称行列400x400対角化をやってみたけどg77とあまりかわらないよな… pen4買えってことかな。このIntelの商売上手(とか言ってみる ifcでモンテカルロ(Ising)やってみたらこっちはg77にくらべて1.5倍以上は出てる。
51 :
44 :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がただで
手に入るようになったわけでうれしいです。
52 :
login:Penguin :02/01/19 15:48 ID:9hT/dXby
>>47 alignmentのリンク先、みました。2年位前に、
alpha 21264 + CFLAで行列計算をさせていたとき、
行列の大きさを大きめにとると、とたんに計算が
速くなったことがあり、不思議だなと
思ってたけど、このためかもしれませんね。
どうもありがとう。
しかしファイル名を1文字から8文字用意して
ベンチを取ってから走らせなきゃいけないのかあ。
53 :
50 :02/01/19 15:51 ID:umOrHyJq
失礼。pen3の場合今のところmklよりg77のほうが1.5倍速いです。 私も >おかげでf90がただで手に入るようになったわけで と言いたかったのですが…。 取り敢えず今まで通りvf90使っておきますか。 選択肢が増えたわけだからそれぞれの癖さえ掴めばいいのですかね。
54 :
login:Penguin :02/01/19 17:03 ID:/efnsvv4
>>
基本的に4bytesのアラインだからやねんな。
mallocで取られるcとはちがい、fortranの場合は
大きな配列をスタティックにとってというはなしになるから
結構致命的になると思う。sbrkなんか使うなよなぁ。
訳解らん。
>>53 RH7.1 のgccってそんなに高速なんだ。知らなかった。
HPCのページを見てると不当にg77の評価が低くて、
かなりむかついた。それ以来あそこのデータは信用したくない。
というか、チューニングなんてマニアがごりごりやったやつと
何も考えずに組んだやつだったらそりゃちがうだろう。
どうせチップとか作ってるわけじゃないのにえらそうに。
なんだか嫌なやつらだ。
ま、ベンチとってくれてありがとう、とは思うけど。
55 :
login:Penguin :02/01/19 17:06 ID:/efnsvv4
さらにg77も出てそんなに経っても無いのに。 あ、僕があおられているだけか。 ところでRHのBLASはコンパイルはそのままで 手は加わってないんだよね?なぜATLASより遅いんだろう? あんまり知らないですが。知ってたら教えてください。 やっぱPenIVなんやろうな。
>>54 Vine-2.0に(おまけで)付いてた富士通のフォートランはそのころのg77より
ずっと速かった覚えがあるけど、
>>51 ではg77が速いって言ってるから、
多分g77の性能が上がったんだと思う。
あとそのころでもgccと富士通のCコンパイラとは互角の性能出てた。
もちろん計算の種類にもよるだろけど。
57 :
login: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でのカキコは疲れるな。
58 :
login:Penguin :02/01/19 22:16 ID:CcBGA9H/
ふーむ、RH7.1付属のBlasはどーやってコンパイルしたか 分かるのでしょうか? 僕は FreeBSD or make を そのままするんでよくわからないんです。 フラグは? レファレンスインプリメンテーションのコンパイル? ううううーむ。ちょっと信じられない。 分かる範囲でよろしければ教えていただくとうれしいです。
59 :
login: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のパッチは参考にする。
60 :
login: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 こんな感じ。
61 :
login:Penguin :02/01/19 22:51 ID:1EgeSYjk
62 :
login: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 はなぜこんなにがんばれる? うおーなぜだー!死ぬ程しりたい。 ちょっと風呂入って来る。
>>62 >>61 はただ lapack が blas を呼んでいる程度の意味だと思うが。
ここはATLASスレですか?
いや、lapackスレ。
ちなみに
>>30 >>32 は漏れ。ちょっと責任感じてみたり…。
最初の目的は有名どころのコードをmakeしてみてicc ifc の癖掴もうと思ってたんだが…
66 :
login:Penguin :02/01/19 23:26 ID:CcBGA9H/
まだ風呂にははいっておらぬ。 すまぬ。Intel Compiler スレだ。 しかしながら、icc, ifc は最適化に優れていると聞くが どの程度なのかはコードの実行スピードを見ない限り分からないではないか。 とりあえず、BLAS, LAPACK は、数値計算ライブラリとして重要な 位置を占めておる。それらの最適化はそれこそ我々の飯の種なのだ。 ということで、ちとマニアックな話+ifc に関係ない話をするかも しれないが、やはりifcの性能は気になっておるんだ。 まぁ結論はなかなか出ないと思うがきいてやっておくれ。
67 :
login: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はそのままだと思う。
自分のプログラム(行列の積、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。
69 :
68 :02/01/20 00:01 ID:tTEZ7bJ8
>>67 そうですか。私のblas、lapackのmakeの
仕方が悪い(-march=i386 -mcpu=i686というオプションを
つけてないと思います)のかもしれませんね。
lapackを自分でmakeしたときnetlibの
汎用のを使いましたが、もっとintel系のlinuxに
適したものなのかな?
とりあえず、g77,pgfortran,ifcでやってみて一番
速いのを流すという方針がいいんですかね。
70 :
65 :02/01/20 00:16 ID:248hne5/
>>69 そですね。各コンパイラでコンパイルオプション適当に振って、
一番できのいいのを探して、それを使うのが結果として時間の
節約かも知れませんね。
ところで少し気になることは、ifcで、blasやlapackのように相当作り込まれ
たコードをコンパイルしてもそれほど効果無いようなのですが、自前の
ヘボコードなどをコンパイルすると2倍程高速化しているような気がします。
僕の場合はまず自分の腕を上げることのほうが先のようです…トホホ
71 :
login:Penguin :02/01/20 00:25 ID:5whqLm3T
風呂からあがってきました。
>>70 研究者の方ですか? そうやったら別にいいのでは。可読性のほうが
重要ですよ。二倍程度の高速化やったらコンパイラに任せた
ほうがいいかも知れませんよ。頭の体操にはいいかもしれませんが。
>>69 いろいろ流し直すのって面倒じゃないですか。だから噂程度で
ifc 万歳とか思ってたんですが、g77もがんばるわけですねぇ。
ううーむ。
72 :
69 :02/01/20 08:43 ID:K/B4TT8A
自分の計算は数カ月単位の シミュレーションなんで、 結果がでてくる時間がオプション、 コンパイラで大分違うんです。 前にalpha 21264 で、手製の lapack-blasをcxmlに変えたら 劇的に加速したこともあり、 以来、色々と試すことにしてます。
73 :
login:Penguin :02/01/20 11:39 ID:5whqLm3T
>>69 アラインメントは?
2ヵ月と4ヵ月では全然違いますよね。
74 :
69 :02/01/20 13:32 ID:0V/4SmC4
>>73 4月と2月で違うのって、
nelibのlapackですか。
もっと古いかも。そんなに
違うと思ってなかったんで、
無理に最新にしてなかった。
機能までアラインメントも気にして
なかったし。まだまだ、
やること、ありそうです。
75 :
login:Penguin :02/01/20 15:33 ID:5whqLm3T
>>74 すんません。数ヵ月単位のジョブと言うと2ヵ月が4
ヵ月というのが全然違うということです。
アラインメントは重要です。PentiumIVならもっと
違うかも知れません。Intel の compiler ならそういうのを
しれっとやりそうですが。
76 :
74 :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
というようにコンパイラ、コンパイルオプション
ごとに、実行ファイル名を変えていたのですが、
これはまずいですね。月曜日から、いろいろと
することがありそうです。
77 :
76 :02/01/20 16:12 ID:Zx6TOajk
自宅からsshして試してみたところ、 g77,ifcはファイル名を変えても実行速度が あまり変わりませんでしたが、pgfortran は16%ほど、速いファイル名とそうでない ファイル名と分類できてしまいました。 g77はf90に対応してないので、f90は 仕方なくpgf90でやってましたが、 これからはifc,pgf90の両方で試し、 かつ、ファイル名をいろいろと変えて 走らせることにします。 幸い、自分の今の計算は長い計算を 一回というのでなく、反復計算が 多いので、このファイル名を変えるというのが 実現可能です。
78 :
login:Penguin :02/01/20 16:23 ID:5whqLm3T
>>77 なんだか混乱させるようで悪いですけど。問題は
ファイル名だけではないのです。スタックのアラインメントの
問題だから、シェルの種類やもしかしたらコンディションで
変化するかも知れないのです。詳しくは僕も分かりませんが、
シェルが子プロセスを走らせるときのアラインメントが違えば
ファイル名だけで対処することはできません。
LinuxとFreeBSDだと微妙にアラインメントのブレは違うのですが、
これまた大きな問題です。Cの場合は適当にスタックを
変化させるように最初にいれておけば問題は無いですが、
Fortranの場合はどうしたらいいもんか?
いろいろがんばってみましたが、FreeBSDはカーネルパッチ
があって、なんとかコミットされたらと思いましたが
コミットされる前にページ毎消えちゃいました。
はぁー。
79 :
login:Penguin :02/01/20 16:31 ID:5whqLm3T
>>77 とりあえずこのスレの僕の書き込みでURL示してるのがあるので
ちょっと見てみてください。
80 :
login:Penguin :02/01/20 17:31 ID:C3Sbw68k
>>47 のリンク先ですね。
実行するごとに微妙(0.2 秒)
くらい、実行時間が変わるのは
環境のためでしたか。
一つ分からないのですが、
ファイル名を1文字、2文字、、、、と
8通り作ると、pgfortでは実行
時間が15秒と18秒のものに
きれいに分かれるんです。
もちろん、コンマ1、2秒の
誤差はありますが。
g77, ifcでは10秒なので、
pgfortの最適化があまいのは
明らかなのですが。ちなみに
実行時間の測定は2回ずつ
行ないました。
81 :
login:Penguin :02/01/20 21:00 ID:5whqLm3T
i386 gcc には 最近から -mpreferred-stack-boundary ってオプションがあるんですが、gcc-2.95.3 では効かなかったんですよ。 最近のRHは効いているのかも知れません。ちょっと真面目にチェックする 必要ありですね。
アラインメントなんて知らなかった。 明日ifcで試してみよう。 (((( ;゚Д゚)))ガクガクブルブル
83 :
login:Penguin :02/01/22 20:53 ID:wJXZKWBH
>>82 たぶんこれはIFCでは直ってるはず。
というかアセンブラのソース見るわ。
なんだかあおってすまん。
84 :
:02/01/29 23:03 ID:PECJA2Mi
商品版(高い!)と無料DL版との違いはどこにあるの?
85 :
login:Penguin :02/02/03 18:11 ID:lkEkFcBp
商品版なんてあったのか。 知らなかった。
86 :
login: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は何を使っているの?
88 :
login: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
ただ、ただなのは、まだテスト中の製品だったりするからだったから じゃないのかが不安だ。将来は無料版はなくなるのではないか?
91 :
login:Penguin :02/02/14 08:21 ID:qBCCIPAv
g77とか違うコンパイラやマシンで結果が一致するか調べたら ええんとちゃうか。出来ればGNUに統合されて欲しい。
92 :
:02/02/16 01:17 ID:P37gR3ZU
インテルが商品であるICCとかIFCのソースを公開するかなぁ?
コンパイラをGPLにしたとして それで失う利益よりもPentiumの売上が増える効果のほうが大きければ、 ビジネスとして正しい選択技でしょ。
95 :
login:Penguin :02/02/18 12:42 ID:X/HQdXYC
>>93 そのうち g++,g77 が icc, ifc より高速になるYO!
96 :
login: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で確認)。
98 :
login:Penguin :02/03/08 09:38 ID:0oVxicVH
age
99 :
login:Penguin :02/03/16 20:17 ID:jeTKf9Ot
Intel Fortran 6.0 beta が出るらしいな。 いつになるかわからんけど。
100 :
login:Penguin :02/03/17 16:27 ID:Y0L5kwur
101 :
login:Penguin :02/04/01 23:00 ID:MIY3lWi0
>>100 というわけで4/1にはりこんでみたがまだだった(当然か)。
gccってしょぼくねぇ? 最適化とかにはあんまこだわってないのか?
103 :
名無しさん@お腹いっぱい。 :02/04/02 00:41 ID:BCv0vzPu
こだわっているのは、CPUサポートと言語サポートなんじゃないの?
>>102 ふつーに「カナディアンクロスコンパイル」できるのって、gccくらい
でわ?
# XってプラットホームでYで動くZ用クロスコンパイラ作ることね
# <カナディアンクロス
# Linuxで、MinGW/gccコンパイルして、Winのダイアログをコンパイル
# できたときは、ちょっと感動した。(カナディアンじゃないけど)
どこぞで、「おかげでプロセッサに特化した最適化は遅れがち」って
書いてあったぞ。まぁ、だからegcsとかも出てきたり。
でも、「とりあえず、gccは動くだろ」って安心感は、デカイよな。
HP-UXをたまに使うから、つくづく思う。
そーいや、「WindowsでLinuxカーネルコンパイル」とかも理屈上は
できるハズだな。だれか挑戦しない?
「カナディアンクロスコンパイル」って プロレス技みたいだな。なぜカナダ?
GCCはたいていの環境で動いているからGCCよりレベルの低いコンパイラは無く なる方向になる。とするとGCCが最低レベルのコンパイラになるよな。 # GCCにはコンパイル速度のほうをもっと頑張ってほしい。インライン関数と # かテンプレートとかたくさん使うと使うとやってられない。
107 :
名無しさん@お腹いっぱい。 :02/04/02 23:23 ID:BCv0vzPu
>>106 全てのコンパイラを全順序に押し込むわけ?
108 :
login:Penguin :02/04/03 00:51 ID:aLlZ/CTX
GNU Autoconf/Automake/Libtoolより 「『カナディアンクロス』の名前は、3つの異なる種類のシステムが つかわれているような、最も複雑なケースに由来しています。その ような問題が顕在かしてきた当時、カナダには3つの国民政党があった ので、このように呼ばれることになりました。」 だそーだ。cygnus用語かな?
109 :
login:Penguin :02/04/03 05:21 ID:2DUVTyBB
>>106 ifcで-O2 -tpp7とかやってみ。g77の数倍は時間かかるぞ。
110 :
login:Penguin :02/04/03 23:15 ID:FRqVmuPz
XFree86をコンパイルしようとしたけど なぜかプリプロセッサがビミョーにちがうのか、エラーになってしまう (昔のことだから、メッセージ残ってないしスマソ) あとオプション変える必要あったりな。 -fPICは-kpicに、-Wl,rpathは知らんのでリンクだけはgccで... でも前述のエラーとかでできなかった(へたれ)
漏れはsnesを…インラインガセンブリ…
113 :
login:Penguin :02/04/19 01:13 ID:c5m+sLvD
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < 早くしてよね > 6.0 \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
114 :
login: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 でユーザー登録とかをしてみてもだめ)
116 :
login:Penguin :02/04/25 17:20 ID:s0tjalkG
117 :
login:Penguin :02/04/26 11:09 ID:ybIjNGS+
118 :
login:Penguin :02/04/26 11:52 ID:pSUh8qyn
XEONお持ちの方自動並列化のレポートキボンヌ
119 :
6.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 などにより、簡単な使い方が分かる。 以上終り)
120 :
login:Penguin :02/04/26 14:45 ID:9G9h10f6
隊長!Debian potatoにはインストールできません
122 :
login:Penguin :02/05/09 00:58 ID:mt4hx9Cg
>>210 超亀レスだが、alienパッケージを入れたあとに普通にinstallスクリプトで
インストールってことが5.0では出来たんだけど、6,0では出来なくなっている?
で、結局6.0は5.0と比べてどーなのよ? 速くなっているの?
俺Linuxで数値計算するから勢い込んで導入! って思ったらそんなに速く ないみたいね、ここ読んだ限りでは。NDA 問題ないから速いかと思ったのに。 そのうち気が向いたらにしよっと。
125 :
login:Penguin :02/05/10 06:52 ID:AeDox/td
>>124 君がどんな計算しているのかちょっとわからないけど、
僕の環境ではPentiumIII@1GでAlpha 21264@500MHzとだいたい
同じパフォーマンスだったよ。Pentium4@2Gならもっと高速です。
僕らはpentium4は持ってませんが。また使ってみてください。
数値計算はチューニングが必須です。
126 :
login: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の目玉機能は自動並列化だと思ってたんですが、試す環境にないのが
非常に残念。
127 :
login:Penguin :02/05/10 09:30 ID:up11SU+x
intel自身が作っている計算ライブラリーも使えば、高度な パフォーマンスが得られる場合があるだろう。ダウンロード してみたらどう?
128 :
124 :02/05/10 09:32 ID:S+u2Lx1o
>>125 サンクス。俺はFPU intensiveな対角化とか分子動力学とか。
今までgccでintelも使ってたけど、alphaには全く太刀打ちできなかった。
けどその話聞くと結構速いみたいね。またintel純正のコンパイラーで
がんばってみるか。
129 :
login:Penguin :02/05/13 11:23 ID:9l4vLaBH
>>127 これはMKLのことですか。BlasとLapackを配布していますが、
PentiumIIIではMKLが少し高速です。しかし、Pentium4では
atlasが高速でした。Lapackはよく知りません。
>>128 メモリのバンド幅はあげたほうがいいでしょう。
130 :
plamoユーザ :02/05/13 11:45 ID:c5nvN02Z
intelのコンパイラって、rpmでないとインストール出来ないんでしょうか? slackwareとかplamoのような非rpmなディストリビューションで動かしている 方いらっしゃいますか?
>>130 SlackやPlamoにrpmコマンドを入れればよかろうが。
ゴルァ!
132 :
plamoユーザ :02/05/13 13:18 ID:c5nvN02Z
>>131 そりゃそーなんだけどね。rpm-2.5.1をいれたら「これじゃ旧い」って
怒られるし、rpm-4.0を入れようとしたらライブラリが足らんって言われて
コンパイル通らんし。で、他に方法無いんかなと思って。
地道にやります。失礼しました。
133 :
login:Penguin :02/05/13 13:28 ID:9l4vLaBH
僕はFreeBSDな人なんですが、rpm2cpioとかいうのを 使って展開していますね。
134 :
plamoユーザ :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/
137 :
login:Penguin :02/05/14 05:13 ID:XO5C21R+
>>136 Pentium Pro以降のCPUにはPAEというアドレス変換機構がついて
いるので、64GBまでは扱えます。ただし、チップセットの制限に
引きずられますが。あと、変換のオーバヘッドがあるので、
パフォーマンスも悪化します。
Linuxでもこの機能はサポートされてます。
たぶん単一の計算でめいっぱい確保できるでしょう。
138 :
login:Penguin :02/05/14 05:47 ID:XDFbjSgq
パフォーマンスの低下がどの程度か気になりますが、大規模計算は できるのですね。参考になりました。
139 :
login:Penguin :02/05/14 06:10 ID:XO5C21R+
しかし、この手の使い方なら実績あるSolaris8とかが良いかと思われ
140 :
login: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
拡張を考えているようですね。
ではでは。
141 :
login:Penguin :02/05/16 05:17 ID:GYM8ysqy
5.0まではAMDのAthlonThunderbirdでFortranコンパイラがちゃんと 作動しましたが、どうやら6.0からは、Athlon上のLinuxでは コンパイラが動きません。セグメントエラーなどが起きる。
マジデスカ?
143 :
login:Penguin :02/05/19 22:26 ID:TA85Te6I
>>141 おかしいなと思っていたら、本日マシンはお亡くなりになって
しまいました。M.B.か、CPUがいかれていて、BIOS画面すら起動
しなくなってしまった。
144 :
login: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用にはどんなコンパイルオプションを使えばもっとも速い コードがでますかね。
146 :
login:Penguin :02/05/25 19:50 ID:7ZkaIBTb
>>144 にわかには信じられん。exp, sin, cos は数値演算プロセッサに渡している
だけだと考えられる。gcc側はへんなライブラリをかませているのか?
147 :
:02/05/26 02:34 ID:7Wq7WMOb
組み込み関数としてインライン展開されたり、MMX命令の類をつかって いたりするのかもね。パイプライン化に最適なコードを出しているのが 効くのかも。インテルのMATHライブラリーはすごく最適化していると 思う。
148 :
login:Penguin :02/05/26 06:59 ID:yJVR8li1
149 :
login:Penguin :02/05/26 10:25 ID:yJVR8li1
>>146 やっぱりよーわからん。多分インライン展開はgccでもやっとると思うが。
あー頭イテ。
151 :
名無しさん@お腹いっぱい。 :02/05/26 11:49 ID:ALTTjrt3
つーか、誰か-Sで調べてくれよ。
>>119 > (途中でKTERMの画面の標示の白黒反転が狂うのが欝。)
Vineのftpに解決法が載っていたような。moreがどうとか…
rxvtとかではならんらしいです。
激しくスレ違いだけど、
>>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ってのを使えってさ。
>>151 やってみたところで結果が理解できない自分を発見しますた
155 :
login: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倍はわからんが、 差はでるやろうな。
156 :
login:Penguin :02/05/27 22:13 ID:UHJ+0bj9
しかし、printf("%d\n",sin(3.14)); って笑うコードだな。すまん。間違えた。
157 :
login: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展開かね?
159 :
144 :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です。
160 :
login: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への最適化もされないよね、たしか?
>>159 できれば、テストしたソースもきぼーんぬ。
162 :
login: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の実体が変わったりするのかね。
165 :
login: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 を出していることがわかりました。
166 :
login:Penguin :02/05/28 22:52 ID:lr8zx0zz
167 :
144 :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効果なしです。
~
>>167 多分、インテルコンパイラは、外側のループ無くなってるな...
169 :
login:Penguin :02/05/29 11:36 ID:D7OquwsK
それとも、キャッシュがヒットするようにうまいことやってるのだろうか...
170 :
login: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 繰り返し数に対しても配列の大きさに対しても、計算時間は線形に増加します。
また、ループの中外を入れ替えても結果は変わりません。
171 :
login: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(){}
と等価だもんな...
172 :
login: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 % というわけで、誤差範囲。 もっと本質的なコードが必要だな...
173 :
login: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 を初期化していないや。すまん)
174 :
login: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
175 :
login:Penguin :02/05/30 11:53 ID:Q1DeRRtz
上のgccは2.95.3(FreeBSD)です。 まあそんなに変わらないでしょう。 icc は 二重ループをunrollしなかった。gcc は -funroll-loops を付けると二重ループも一部unrollする。 やはりもう少し本質的な例が必要だと思う。
176 :
login:Penguin :02/05/30 12:04 ID:Q1DeRRtz
>>170 なぜ線形に変化しているかと言うと、icc では 君のプログラムの場合
一つ目のループしかまわらないようなコードを出力し、
そして二つ目の(二重ループ)は消えるのだ。ということで
一つ目のループはまじめに実行するから線形に変化するのである。
僕が試した場合はexpでも同じ結果だった。つまりexpは計算されていない。
僕がprintfをはさんだのはそういう理由による。
また、僕のans = +sin(a[i]); はダメだ。かしこいオプティマイザ
だと最後の値だけ計算して終りだろう。
177 :
login:Penguin :02/05/30 14:18 ID:EoS08NAY
>>175 > やはりもう少し本質的な例が必要だと思う。
総合的な評価と、個々の部分の振る舞いの究明をわけて考える必要があるが、
後者の方が計算時間餓鬼には有益だと思うから、今の流れでいいんと違う?
178 :
login:Penguin :02/05/31 09:33 ID:a8/cq5U3
>なぜ線形に変化しているかと言うと、icc では 君のプログラムの場合 >一つ目のループしかまわらないようなコードを出力し、 >そして二つ目の(二重ループ)は消えるのだ。 私も、気になっていたから、ループ数と時間の関係を調べたけど、 内ループ数にも外ループ数にも計算時間は比例したけど?あと、 2つ目のループが回らないのなら、sinとexpで時間が変わるか? 言ってる事の意味が良くわかりません。 iccのmathが速いのは、SIMDバージョンのsin,exp等のためです。 従って、-axW -xWでかつP4上でないとgccと大きな差はでません。
179 :
login: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のコードが出なかったんだ。君の結果が
手がかりになるかもしれない。良かったら教えてちょうだい。
180 :
login:Penguin :02/05/31 17:19 ID:Ki/fe8PF
> やはりもう少し本質的な例が必要だと思う。 gccでもiccでもループが省略されていないことを確認しての比較だから 十分本質的だと思うけど? >そして二つ目の(二重ループ)は消えるのだ。 配列がスタックのローカル変数ならループ省略の最適化も可能です。 あなたが、わざわざループが消えるように書き換えたということになります。
181 :
login:Penguin :02/05/31 17:46 ID:25Um11/K
182 :
login:Penguin :02/05/31 17:51 ID:25Um11/K
>>180 アセンブラの出力を比較するってのはダメ?
183 :
login:Penguin :02/06/01 01:37 ID:d+BKIyIY
174のコードでも、167のコードでも-xWでないiccでgccと ほとんど変わらず、-xWのiccで3〜5倍というところです。 結論は、やはりSIMD版のexp,sin等は数倍速いということ でしょう。なお、tpp7とtpp6はほとんど違いがありませんでした。 アセンブラは私には解読不能ですので、見たことがありません。
184 :
login:Penguin :02/06/01 02:42 ID:LtyCCzWp
>
>>180 >アセンブラの出力を比較するってのはダメ?
ELF直読み?できるのか...すげぇ。
185 :
login: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やねんな...これも価値アリやろ。
でも時間かかりそうやし、ま、別口で試すわ。
>>185 > test.sってアセンブラの出力が出来るねん。
それは「アセンブラ」の「入力」である「アセンブリ言語」のファイル、
って揚げ足取りをしていると思われ
>>186 objdumpをつかえばアセンブラの出力も難なく比較できる。
188 :
login:Penguin :02/06/01 17:48 ID:4apHK27I
>>186 確かにそうだな。しもた。ま、でも解るでしょ? いや
わかって下さいー。今夜にはチェックしますわ。
>>187 おお、ありがとうございます!! 知らなかった。
189 :
login: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ついてるんだろ。
190 :
login:Penguin :02/06/03 00:58 ID:LXg220aY
もしかして、64bitの精度が得られたらいい、という前提で 相当はしょった計算をしてるのかもしれない。 fsinの消費クロックって高そうだし。 まぁでもSSE2ならば64bitの浮動小数点演算 二つ同時なので二倍速くなると考えるのがマシなんだけどな。 さらに高速ってことから考えるとfsinはビタ一動いてないか。 それならfsinを使わないライブラリをインラインで埋め込む 方がパフォーマンス的にはpentiumIIIでも得になるはず。 わざとライブラリに飛ばしているってやっぱ覗かれたくないのかな? ちっ、こんなこと深く考えるよりアルゴリズムを練ったほうが楽しいな。
191 :
login:Penguin :02/06/05 21:08 ID:DrdXg7fC
あげー
-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とあまり変らん……
196 :
login:Penguin :02/06/11 00:21 ID:/rWc+478
出来ればgccのバージョンも教えていただけませんか?
197 :
login: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最適化、常に両方試して見る価値がありそうです。
198 :
195 :02/06/11 03:41 ID:J030uHjr
199 :
login:Penguin :02/06/11 04:11 ID:2NczXlos
gcc 3.1 だと、ものによってはかなり速くなるよ。
200 :
login: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で登録したのにメール 来ません。結構時間かかるものなのでしょうか? まさか手作業でやってるとは思えないのですが。
202 :
login: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日評価版でしかメール送ってこないみたい ノンサポートのフリーバージョンはメールがこないみたいですね 要は買えということでしょうか。
んなこたぁない
206 :
くっそー :02/06/13 02:43 ID:/xEHZNiO
あるよ。100番台のレスでもそう書いてあった
207 :
login: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"
俺の所に来たメール全文。
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ってファイルが添付されてる。
メールアドレスやマシンを変えて何回かやりましたが 依然としてメールきません。直でメールしてみようか な、英語書くの苦手ですが。
きました
近代的巨大企業イソテルとしても、やはり半導体不況なので 使えない中年はリストラ候補室へ送還されるわけです。 若い社員にパソコンが使えなくて馬鹿にされた中年が、 一日中書類を書いてシュレッダーへGo!という仕事をやっていたり、 一本指タッチでユーザから来たメールにOEで返事を書くという仕事 をやっていたりするわけです。 そんな中年の都合でメールの返信にはラグがあるのです。
とりあえず、30日版とフリーでは送信主のアドレスが 違ってたからサーバーの設定ミスか込んでたかどっちかでしょうな
213 :
login:Penguin :02/06/14 07:58 ID:VA/sHuIR
>>209 expire されたということだったので、再申込してみましたが、
僕の環境でもメールが来ませんでした。
リストラ中年でもなんでもいいですからお返事欲しいです。 LAPACKやBLASまで無料ということで楽しみにしてるんですが。
215 :
login:Penguin :02/06/14 15:49 ID:4CsOaoRm
217 :
login: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のファイル名のマクロ名になるの?
219 :
login: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で指定されているファイルのパーミッションが適切かどうか 調べるべし。またまだファイルがなくて作るはずであるときには、 ファイルを作るべきディレクトリーのパーミッションが適切か どうかも関係するだろう。
221 :
login: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 にオンラインマニュアルのパスを追加すれば できあがり。
223 :
login:Penguin :02/06/17 17:16 ID:FMDFl0W+
今朝 Intel C Compiler の登録をやってみたらすぐメールが来た。
>>223 たぶん、リストラさやたおやじが増員されたと思われ。
225 :
login:Penguin :02/06/17 22:49 ID:SbfYKQK5
もう一度やってみるか
227 :
login:Penguin :02/06/21 18:35 ID:ES86Qcyi
f90のモジュールの定義を探しにいって見つからないとifcコンパイラが 叫ぶのだが、どうやってそのありかを教えてやればよいのだろうか?
>>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 で最適化されたコードは吐けないのでしょうか?
230 :
login:Penguin :02/06/24 12:15 ID:rHq3ABnU
>>229 うちではCeleron(SSE1)でPentiumIVのコード出してるよ。
で、走らせると、不正命令例外がでる。ははは。
> 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 は消えました。お騒がせ致しました。。。
>>229 うちpen4だけどそのwarning出てる…
これが普通かと思ってたYO!
234 :
login: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_' とでる。なんで
237 :
236 :02/07/06 11:25 ID:5iU21Jdu
-Vaxlib が必要ですた
238 :
login:Penguin :02/07/11 23:49 ID:B7+v1hA6
Ver. 6.0.159 (C++, Fortran)でましたね バグが取れてるらしいです。
239 :
login:Penguin :02/07/11 23:53 ID:QIx7nZro
で、みんなが何度も言ってるがmozillaをコンパイルするとどうなのよ? 俺も気になる。とりあえず体感速度を測る基準になると思うから誰か試してくれ。
240 :
login:Penguin :02/07/12 00:38 ID:rpitGA5v
タダあげ
241 :
:02/07/13 10:43 ID:JsMJx7IZ
Celeron1.7GHz(Northwood)で、1.2GFLOPSの性能が出たよ。 スゲ―。
242 :
login: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 姫野ベンチですかえ?このマシンにも慣れてきたので計測してみようかな。
>>241 Celeron1.7はwillaでない?
244 :
:02/07/16 03:02 ID:DsBWghMA
Linuxカーネルがぼろいと、1GBまでしか使えないことがあったかも。 コンフィグレーションをためしてみましょう。
>>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
apache2とPHPをiccでコンパイルできた人います?
249 :
:02/07/24 01:14 ID:wMW1B8XR
250 :
:02/07/25 00:14 ID:pZH6nQCZ
251 :
としお :02/08/07 10:37 ID:pSGhuFam
>>251 そんなことよりicc,ifc6.0の日本語マニュアル早く出してけろ
253 :
login:Penguin :02/08/08 02:17 ID:PIXsN0v5
XeonにIntel fortran for Linuxを使っている時、 Hyper-Threadingを有効にしている? 俺は、無効にしてる・・・
>>253 並列化しても得るものが無かったし、並行処理しても効率悪かったので
もの凄い勢いで無効にしますた。
もしかして数値計算向きの技術ではないってことかなぁ?
そもそも、multi thread化が効果のある領域の中でも、(これは単なるSMPでもよい) thread間の相互作用が結構頻繁にある場合に効果のある技術でしょ。
256 :
login:Penguin :02/08/08 09:00 ID:h5Ite4hL
>>251 無料版の方がいいに決まっているジャン。
257 :
login:Penguin :02/08/11 00:59 ID:s/OAym0W
XeonCPUって、Pentium4 CPUに比べて、何か特別優れているの?
258 :
login:Penguin :02/08/11 01:06 ID:fLq7R5Rz
www.hpc.co.jp/IA-Parallel/HP2SC-IAX4Gaussian98.htm Gaussianだと Hyper-Threading有効にしたほうが成績良い ですな。何か良いflagの立て方があるのだろう。
259 :
login:Penguin :02/08/15 01:25 ID:/0GLx8QN
OpenMPのコンパイラーディレクティブを入れてみている?
260 :
login:Penguin :02/08/22 00:49 ID:hok07Wzb
7.0になったら、f90のソースでモジュールをコンパイルすると モジュール名を大文字にしてサフィックスに .mod というのが つくファイルがオブジェクト以外に生成されるようになって しまった。 (.d ではなくて) work とか work.pcl とかも どこかにいってしまった。どうしたんだろう?
261 :
login:Penguin :02/08/22 08:06 ID:/FBXdmt+
262 :
login:Penguin :02/08/24 17:25 ID:PfaGDlQx
まだ、7.0はベータであります。
263 :
login:Penguin :02/08/30 03:54 ID:aneTlj2c
7.0 どこにあるんだ〜!!
264 :
login:Penguin :02/08/31 22:23 ID:Jrnphh7d
普通にregistしてれば知ってるはずだけどなー。
266 :
login:Penguin :02/09/03 07:17 ID:WnJhOOM2
>>264 ,265
無料登録ではでてこなかったです。
もしかして商品買われていますか?
267 :
login:Penguin :02/09/03 21:14 ID:Tq9T9U83
いんにゃ、買っていないよ。もしかして大学は別格?
268 :
login:Penguin :02/09/03 21:15 ID:Tq9T9U83
それとも、山ほどバグレポを送ったからかな?
269 :
login:Penguin :02/09/07 01:41 ID:c6bP3AxY
SX系のスパコンみたいにlinuxでもjobを管理するjsubのようなコマンドって ないんですかねー? intel fortranがめちゃ使えるのでlinuxでもスパコンとおなじようなこと できたらいいなー。
dqs pbs
うちはgnqsで十分
272 :
login:Penguin :02/09/07 06:37 ID:0xFRXbF3
dqs ってどこで配布してあります? 昔のバージョンをつかってるのですが。
274 :
login:Penguin :02/09/07 13:22 ID:0xFRXbF3
DQSの使い方解説してる所を教えてください
277 :
login:Penguin :02/09/08 06:43 ID:6UAJnaFt
うーむ、やっぱり connection refused です。 yahoo! からかなぁ。 276さんありがとうございます。
dqsってネタかと思った・・・
280 :
login:Penguin :02/09/08 14:33 ID:V+CyUlbE
ftp2.scri.fsu.edu に直接FTPコマンドでログインすればいけますね。 ブラズザからだとムリみたいです。 一応DLしましたが、インストールできるかな・・。 シェルの書き方などはどこを参照すればいいんでしょうか?
281 :
login: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 もちゃんといれてるのに?
282 :
login:Penguin :02/09/08 14:43 ID:7+JaCJ9p
>>281 PASV モードのコネクションが拒否されてる。
PASV では接続出来ないサーバなのだろう。
284 :
login:Penguin :02/09/08 16:35 ID:6UAJnaFt
>>282 ありがとう。たしかに passive mode やめたら get できました。
285 :
login:Penguin :02/09/11 16:45 ID:Ye+Ngz+T
日経Linux の記事読んだ? つーか、あんなプログラムの最適化 比較されたってなんにも解らんぞ。期待して損した。
itanium2ホスイ。。。
日経Linux 円周率計算でベンチマークテストでもやればよかったのにな
288 :
login:Penguin :02/09/11 22:48 ID:Ye+Ngz+T
ホンマ。めっちゃ無理な記事やんか。つーか、そんなバカなプログラム 書く奴いねーよ。そんな最適化なんぞ見たくもねぇ。 SSE2 使うところも、ライブラリで見せてくれんし。パイプラインを どう使いこなしているか、そんなんがみたかったんやけどな。 実は、見えにくいインストラクションの並びが実にペナルティが低いとかさ。
立ち読みしてガッカリだったね。 >日経Linux mozillaとかOpenOffice.orgとかコンパイルしてみてベンチマーク 取って欲しかったよ
290 :
login:Penguin :02/09/14 21:55 ID:nz4/+CVH
IA-64用のコンパイラは、C++もFortranも、まだまだ64ビット用 CPUのものとしてはできそこないだ。 LP64モデルを採用しているが、配列の添え字式の計算がIntで32ビット らしく、2GBを越える配列が取れないなど、さまざまな問題点がある。
291 :
login: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であるので、このオプションを指定するまでもなく そうなっているなど、理解に苦しむものが多い、わけがわからん。
292 :
login:Penguin :02/09/14 22:15 ID:xbXyt3h1
来月、LinuxMagazineでもベンチマーク結果載せるみたいだけど、 これも期待できないかな? Intelが、日経とアスキーに同時に機材貸し出ししたのが丸見えで萎え。
293 :
maho :02/09/15 12:18 ID:7i0e2a3c
>>291 御意。Alpha の gcc やったらどうなんでしょ? どなたかご存知?
>>292 ある意味どういう最適化をしているかというのがバレるからあまり
書きたくないのかも知れないですね。意味ねーじゃん。
OpenOffice.org のコンパイルはまだ厳しいしょう。gcc でも compiler の
バージョン依存の問題が多いので。Xはコンパイルできて然るべきですが。
294 :
login: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 ...
295 :
maho :02/09/19 09:02 ID:+RmgTTgR
新しい ifc, icc でたな。bugfix らしい。また ports 更新かよ。 つかれた。
まほたんが荒んでいく……
297 :
login:Penguin :02/09/21 00:24 ID:b0RwualT
ifc や icc はポーツには入れられないでしょう?
298 :
login:Penguin :02/09/21 00:52 ID:b0RwualT
Celeron1.7GHzで、MKLライブラリーを使って、ある種の行列積を計算 させました。単精度で3.4GFLOPS、倍精度で1.7GFLOPS近い値がでました。 ifc で同等のプログラムを書いて最適にコンパイルしてみると、 1割ないし2割それよりも低い性能ですが、まあ満足のいく速度がでてます。 最近のPC用のCPUは早いですね。
299 :
maho :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のほうが速いと思います。最近バージョンアップして入れ替わったのかな? どっちにせよ、パフォーマンスは
似たりよったりでしょ。
300 :
login: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からだったかな。
301 :
maho :02/09/21 08:25 ID:viZ9mmJo
>>300 スパコンはさわったことがないから、
直接は気持がわからんですけど。KUBOTA の TITAN かな 高校の頃。
まぁ僕も昔しょぼいパソコンでいろいろ計算やってました、ほんと、遅かったです。レイトレーシングなんか何日もかけてという感じでしたね。
だから、なんとなく気持はわかります。
でもスレちがい...
302 :
login:Penguin :02/09/21 15:22 ID:+UfjVmmp
誰か、gnqsのスクリプトファイルの書き方教えて・・・。 cshとかって使えるの?
>ごく安物のCPUで、結構な性能がでるようになって、結構な時代に >なったもんだとはおもわんかね。 結構なこって。 んで。その分、解析精度の要求が高まる罠。 まだまだ性能あがってくれないとねー。
304 :
302 :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ではないのでしょうか?
305 :
302 :02/09/23 19:25 ID:XpJsF3mg
スクリプトを工夫して解決いたしました。 板よごしてすみませんでした。
306 :
ldb :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++プログラム特有の文を書くとだめになる?
307 :
maho :02/09/25 00:05 ID:WbD3HXSr
結局 ports は更新した。以外と簡単に済んだよ。commit もすぐ済んだし、
まぁ意味があるかどうかはしらん。/usr/ports/lang/ifc って
だれが使うんだろう?
もうこわれてないよ。
>>306 なるべく最新のものにしてみれば?
308 :
306 :02/09/25 14:56 ID:mzUu5Ze3
>>307 これは最新ものです。正確に言うとバージョン6.0.1-304です。
mahoさんはバージョンいくつでしょうか?
そして同じプログラムでエラーが出ませんか?
309 :
maho :02/09/26 08:22 ID:I4VU93X1
>>308 debugger は FreeBSD では使えないのです...お役に立てなくて残念です。
310 :
304 :02/09/26 10:56 ID:N9OG6F/V
>>309 そうですか…。わざわざありがとうございます。
311 :
login: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 の方式が採用されるようです。 (今のベーター版ではそうなっている)
313 :
login:Penguin :02/10/02 12:34 ID:Fljz+3D+
ifc6-6.0-140からifc6-6.0.1-304にアップグレードしたんだけど、 パフォーマンスが数パーセント落ちているような結果になってる。 ちょっと寂しい。。。 Windows版はもう正式にifc7が出てるみたいだけど、Linux版はまだかな? それに期待したい。
314 :
314 :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. お返事お待ちしています!!!
315 :
login:Penguin :02/10/13 20:44 ID:6hhGXCde
PGPLOTってなんでしょうか?
可視化ライブラリ
317 :
login:Penguin :02/10/16 14:59 ID:PYlI20eA
あそびでxscreensaver(with-gl)をiccでこさえてみました。 笑っちゃうくらい速い。
318 :
x :02/10/16 15:04 ID:9AlnI0Ke
319 :
login:Penguin :02/10/18 22:17 ID:q1kWLUal
iccでkernelやXをコンパイルできた人いますか?
320 :
login:Penguin :02/10/19 00:04 ID:yEObizWo
笑っちゃうくらい速いって、どうして笑うのですか? 体感何倍早いのですか?
321 :
login:Penguin :02/10/19 10:52 ID:BhEBgiKe
iccのclock()がうまく使えない。すべて0になってしまう。ANSIとどうちがうのでしょうか。
322 :
login:Penguin :02/10/19 11:51 ID:oME5iqrl
>>320 gccでコンパイルオプションをいくら変えてもはやくならなかったのが
iccではさっくり速くなったので。-O3 -tpp6 -axK -static.
323 :
login:Penguin :02/10/20 14:36 ID:7EbOELLI
324 :
login:Penguin :02/10/26 01:08 ID:753aeObx
325 :
crazy_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計算機やスーパーコンピュータを使ったことがある人はこれらは分かりますね)
326 :
crazy_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も効かせたいのですが計算が壊れることがあるので使ってません.
327 :
login:Penguin :02/11/02 19:16 ID:EdkYccpG
GNUと互換性を確保してkernelとかコンパイルできるようになるのだろうか?? どっちかっていうと数値計算向けのコンパイラ?
328 :
crazy_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を触るのは怖いので)
330 :
login:Penguin :02/11/04 09:56 ID:1FXAr5v4
ifc7.0は,athlonは対応しているんですかね? 過去のログでは,ifc6は対応していなくて,ifc5は対応して いるとありました. 新しいnforce2のチップセットで,DDR400のメモリ2枚刺しで, メモリのバンド幅が6.4GB/secというものに引かれて一台組み 立てたいと思っているんですが,ifcが使えないのでは意味ない ですから...
331 :
login:Penguin :02/11/04 10:11 ID:+kRs8LO6
自分で試せよ。 なんかずうずうしいな。 586互換なら大丈夫なんじゃねーの? ひょっとすると蹴られるかもしんないけど。
ビデオチップ搭載でない場合FSB帯域幅を超えるメモリ帯域は・・・
333 :
330 :02/11/04 14:34 ID:4afCMgT6
>>332 確かにシステムバンド幅を超えているスピードのメモリバンド幅って
いうのに、何かメリットはあるのかと考えてしまう。
が、HPのItanium2は、システムバンド幅6.4GBに対してメモリバンド幅は8.4GB。
何かいいことあんのかな。
>>333 メモリバンド幅はバーストした時のピーク性能だから、
実効値はずっとずっとずっと低い値。
335 :
login:Penguin :02/11/07 16:10 ID:e6eeEJ5O
icc6.0は、Athlon MPで動いたよ。 M/B Tiger MP CPU Athlon MP 1.2GHz SuSe 8.0
336 :
login:Penguin :02/11/08 01:25 ID:U6l7cdxw
Q1:HyperThreadを有効に使えた例あるかい? Q2:DebianGNU/Linuxでは intel Compiler はうまく使えないけど、 将来なんとかならないの?
337 :
login:Penguin :02/11/08 01:52 ID:3nm7+jZ5
A1:計算屋ですが、HT使ってもパフォーマンスは変わりませんでした。 なぜなのかは専門家じゃないのでわかりません。 A2:ifcならpotatoでもwoodyでも使えていますが?なにがどう上手くいかないのか 書いたら何とかしてあげられるかもしれません。
HTまともに使えるようになるのはkernel2.6まで待たなきゃならんと思うよ。 2.4後期でも一応の対応は出来てるかもしれないけど、 スレッド廻りがもともと弱いカーネルだし。 2.5ではある程度使えるという話しは聞くけど。
339 :
login:Penguin :02/11/08 11:44 ID:UuLgSvtg
HTってsmpとして使えるんでしょ?
340 :
login: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
は効かないということではないでしょうか。
341 :
login:Penguin :02/11/09 07:04 ID:IPBiP7vy
つまり、数値計算であってHT以前にもう性能がCPUの限界近い場合には HTを入れても整数は速くなるけど、FP演算は早くならないということですか?
342 :
crazy_u :02/11/09 10:07 ID:pvpo5FMk
343 :
login:Penguin :02/11/09 10:58 ID:IPBiP7vy
おお、よく分かりました。これはメモリのレイテンシーをマルチスレッド により(可能なら)吸収して、スループットを向上させようという 昔のデネルコア社のHEPという実験システムの延長線上にあるような 技術ですね。
344 :
:02/11/09 19:09 ID:cxRy6Ah9
ところで皆さん、高速化の為にコードを工夫したりしてますか? 詳しい人いたらノウハウ教えてください。
来週3.06HTがでたら"HT+icc人柱"大会をやりたいっす 現在サンプルコード募集中。
346 :
login:Penguin :02/11/10 14:57 ID:jAjpoqqV
まずは、Linpackベンチマークを見たいね。HTが、ページングやTLBミスの 待ち時間を果たしてうまく吸収して性能を上げることができるものだろうか、 とか。
すいません、HTの話が出たところで。 P4-Xeon SMP環境で使ってる人いませんか? 2ジョブ実行でどれくらいの並列化効率が得られてますか? 私のところは50%即ち、CPU1つのときと変わらんという結果です。 kernelは2.4.18-17.7.xsmpで、HTオンで/proc/cpuinfoに4つの CPU, HTオフで2つのCPUがちゃんと見えてます。 なお、ベンチの結果はHTオンでもオフでも変わりません。
348 :
crazy_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)でした
350 :
347 :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ファイル
同時コンパイルするという方法もあります。
351 :
crazy_u :02/11/10 23:20 ID:ifwKEp6r
>>349 有難うございます.参考になりました.
>>344 稼動するマシンが変わるたびに殆ど常にプログラムには手を入れています.
どの程度のことを知りたいのでしょうか?
例えば,
「RISC 超高速化プログラミング技法」(寒川光著,共立出版,1995年8月発行)
は現在の計算機でも役立つ内容だと思います.Pentium4もスーパースカラー計算機といえると思います.
寒川氏は情報処理学会の論文集へもこの手の論文を多数投稿している研究者です.
私も氏の論文は参考にしてきました.(私はもっぱらvector計算機を相手にしてきましたが)
他にも参考文献があったらお知らせします.
352 :
login:Penguin :02/11/11 00:23 ID:dXRwOR+k
低レベルな質問。仮にメモリ帯域を常に使い切っているようなプログラムがあったとして、これを
SMPマシン上でそれぞれのCPUに実行させることは意味がないと考えていいのでしょうか?
>>348 ifc6.0の自動並列化はほんとーに使えなかったんですけど、次のバージョンでも期待は
できなさそうですか?結局、にわかじこみのOpenMPで1割程度は速くできますた。
某所のccNUMAマシンの自動並列化には感動した覚えがあるんですが。。。
353 :
crazy_u :02/11/11 21:48 ID:9ykjmpF9
354 :
347 :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]
355 :
347 :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の数より多くして性能向上を 狙うのはなかなか難しそうです。
356 :
login:Penguin :02/11/12 01:03 ID:9up4JSu9
ページングしまくりの時には、効くと思われるけど、どうでしょう?
357 :
347 :02/11/12 12:27 ID:Uq+VTKXL
>>356 そう考える理由はなんでしょう?ページングが発生すると
一般に、CPU利用率は激減するので、1CPUでも十分だと思います。
間違ってるのかな?
358 :
login:Penguin :02/11/13 00:20 ID:vH9lO9Qf
ページングしまくりのときに、マルチプログラミング(マルチプロセス)が 効くはずなので、そう思ったのですが、もっと粒度が細かい場合である、 ひとつのプロセスの中でスレッドがキャッシュミスしまくりの時にも、 よく効くのかな?
一つのスレッドがメモリやディスクのI/O待ち状態に なったときは、マルチスレッドが有効だと思います。 ただ、これは普通の時分割のマルチスレッドやマルチタスク で済む話で、HTが有効に働く局面ではないんじゃないでしょうか。
360 :
login:Penguin :02/11/16 11:46 ID:p4ZGg3L2
行列計算でVC++6を使ってましたが、Intel C++(Windows版)の購入を検討してます。 行列計算で両者の速度体感の差を経験された方がおありでしたら、教えて下さい。 また、Linux版とWindows版(Win2kで使用予定)の速度体感に大きな差はみられる でしょうか? スレ違いですが、プログラム技術@2ch掲示板に行っても「そんなスレありません」 でしたので。
362 :
Galois :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)が不具合を起こしているような気もしますが,原因が不明です。
>>362 ifc -O0 xxxxxx.f90
として出てきた答えがまず正しい。g77とも比べてみれば?
最適化のため、計算の順番を入れ替わったりして、答えが変わる
ということがあり得ます。
364 :
login:Penguin :02/11/17 01:45 ID:roKdiGN4
メモリアクセスのパターンが完全にわかっている行列演算の多くにおいては、 HTを有効に使える気がする。ひとつのスレッドを、メモリーのアクセス パターンに沿って先行させてページロードをさせたりメモリーをキャッシュから 取り込む作業に割り当てる。すると、もうひとつのスレッドが演算に必要な データが丁度メモリ内にあるいはキャッシュ内に用意が済んでいるという、 据え膳状態になるようにできるだろう。
365 :
crazy_u :02/11/17 02:09 ID:q3FHpQqg
>>362 最適化レベルを最高にすると計算が壊れることがあります.(コンパイラのバグ)
まず、
>>363 の指摘を行ってみることです.
その上で,計算が壊れているサブルーチンをみつけて
1.そのサブルーチンだけ最適化レベルを下げる.
2.コンパイラが正しく読解可能なように明快なプログラムにする.
3.コンパイラが正しく読解可能なようにサブルーチンを更に分割する.(1つのファイルになっている場合は-ipオプションはつけない.)
のいずれかを試行してみるとよいと思います.'2', '3'は試行錯誤的になりますが全体のパフォーマンスを落としたくなければ努力してください.
計算の壊れたいくつかのプログラムで共通に使用しているサブルーチンや同様なロジックの部分から調べるのが近道でしょう.
(私も何度か計算が壊れる目にあってます.)
366 :
crazy_u :02/11/17 03:00 ID:q3FHpQqg
>>362 それと,一度はデバッグのオプションをつけて潜在的なプログラムのバグを潰しておくことをお勧めします.
367 :
Galois :02/11/17 08:29 ID:6pVouLNZ
>>362 の問題に対するいくつかの答えをいただき,ありがとうございます。
早速,いろいろと試しながらやっていきたいと思います。
368 :
login:Penguin :02/11/17 08:55 ID:7kzAUYhk
369 :
Galois :02/11/17 09:58 ID:D45BaIqk
>>367 -O0 と -O3 でも(-x**無しで)結果が異なります。
-tpp6と-tpp7の違いはありません。
(別のプログラムの出力したバイナリ-ファイルを使っているので
,g77で試すのはすぐには難しい状況です)
プログラムに問題があるようです。
一般的になにかヒントがあれば教えてください。
-mpをつけても何も変わりませんでした。
>>369 一般的なことは、365にも書いてありますが、シミュレーションに際して
問題になり得るのは、丸めとか桁落ちです。アルゴリズムが良くないと、
丸めの影響が積み上がって大きな誤差になることがあります。また、これ
はコンパイラや最適化に依存します。特に単精度では顕著です。
あとは、変数の初期化ですかね。多くのコンパイラでは最適化レベルを
上げるとスピードアップのため変数の初期化を省略します。当然、プロ
グラム中で明示的に初期化しておかなくてはいけないところで、忘れて
いてもコンパイラ(とオプション)によってはちゃんと動いてしまう
ということもあり得ます。
371 :
crazy_u :02/11/17 15:31 ID:q3FHpQqg
>>369 >>370 の指摘が原因であった場合は -doubletemps や -save -zero や,現在,単精度なら-r8として倍精度にあげてみることを応急処置として試してみたらどうでしょうか.
変数の初期化が原因なら-O0の場合も結果は信頼できないでしょう.(ifcはデフォルトでは初期化しない)
あくまでも応急処置なので,早めにソースコードを修正(場合によってはアルゴリズムの変更)をするのがベターです.
蛇足ですが,あとは地道に要所要所で中間結果をダンプしてどこで計算がずれているか探すしかないでしょう.
372 :
Galois :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では不一致だったからどうなる不安ですが。
373 :
Galois :02/11/17 19:04 ID:6pVouLNZ
>>371 372に書きましたが,lf90で(windows版です)倍精度で一致しました。
一般に,倍精度で一致した場合,プログラム修正なしで単精度で最適化して
実行しても危険ないんでしょうか?Monte Carlo simulationなので誤差が
蓄積するようなものでもないと思うんですが。
あと,単精度で不一致の場合,プログラムを書き換えることで
単精度で一致するようになるものなんでしょうか?
倍精度で実行すればよいというものでもないのでしょうか?
374 :
login: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 とか使っていませんか。
375 :
Galois :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)なら使っています。
376 :
363,370 :02/11/17 19:53 ID:wvVtn5jg
私はモンテカルロ法は使ったことないですが、整数の疑似 乱数をRAND_MAXとかで割った答えを丸めるか、切り捨てる かで違いが出てきてもおかしくないと考えます。 最適化レベルを上げると、処理が「丸め」から「切り捨て」 に変わってる可能性があります。 強制的に丸め(四捨五入)を行わせる、-fp_portを試して みたらどうでしょう。 一般に、単精度計算の際には、この最後の桁の問題について 気をつけないといけません。
377 :
363,370,376 :02/11/17 20:12 ID:wvVtn5jg
FORTRANではrandは実数型ですね。いずれにしても、浮動小数点化した 乱数の最小桁の取り扱いが問題になっている可能性があります。
378 :
crazy_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) にしないと微妙なところで結果が変わることがあります.
379 :
login: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 情報落ちとか桁落ちの問題はないのではと思っていますが,
いっそう気をつけたいと思います。
380 :
Galois :02/11/17 21:19 ID:6pVouLNZ
379はGaloisが送信したんですが。 login:Pengguinさんになっています。 (何か私が間違えたかもしれません。お詫びいたします)
381 :
363,370,376,377 :02/11/18 00:35 ID:QriAUUOr
変数に単精度を使っていても、内部の計算はたいてい、倍精度で行われます。 この辺は処理系やコンパイラによって違いがあるとは思いますが、ifcやg77では 倍精度なんではないでしょうか。結局、これまでに分かっていることから、 1.倍精度で行った計算の結果をそのまま使うか、単精度のメモリ内容を 再度ロードするかの違い 2.倍精度で行った計算の結果を単精度に型変換するときのやりかたの違い のいずれか、または両方が原因であると考えられます。 解決としては、全体または部分的にでも倍精度変数にするというのがいいのでは? 私は、いろいろ注意するのが面倒だったりするので、常に倍精度でプログラムしてます。
382 :
Galois :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 はすべて一致しました。 プログラムの致命的なエラーでないこともわかり, 解決策も見えてきました。 とりあえず報告です。
383 :
crazy_u :02/11/18 10:17 ID:1JE+mn0o
>>382 良かったですね.
将来のメンテナンス性からも
>>381 の提案のように全て倍精度化するほうがベターだと思います.
(計算時間やメモリー容量がシビアな状況なら何とか単精度対応を考える.)
時間に余裕があって,精神的苦痛に耐えられるなら,丸め誤差に弱い部分がどこなのかを調べておくと良いでしょう.
いつか,その知見が役立ちます.
384 :
login:Penguin :02/11/18 12:18 ID:McP4WlkF
イソテルのCPUは、倍精度で計算しちゃうんだから。 単精度は負荷以外の何物でもないような気がする。
385 :
363 :02/11/18 13:38 ID:NKF8mUk6
計算が倍精度で行われるとして、単精度の変数を使うと、 一般に、 1. 型変換の負荷が加わる。 2. メモリ転送量が半分になる。 3. メモリ消費量が半分になる。 メモリ帯域がボトルネックになっているプログラム では速くなることもあります。 以上、参考までに。
386 :
crazy_u :02/11/18 14:57 ID:1JE+mn0o
>>384 , 385
単精度は単精度です.自分で試してみましたか?スペックを読んでみましたか?
少なくとも,単精度でSSEと倍精度でSSE2ではほぼ計算時間は倍違います.
自分で簡単なコードを書いて試してみると良いです.(-doubletempsのオプションは無しです.)
387 :
crazy_u :02/11/18 16:32 ID:1JE+mn0o
>>384 ,385
>>386 では大変失礼しました.
「x87 FPUデータレジスタ」と「x87 FPU データ型」の記述を確認をしたところ大変な勘違いをしていました.
その後キャッシュに入りきる大きさの問題で追試したところ,単精度の方が遅いです.
キャッシュに全然入りきらない問題では,CPU⇔メモリーの転送量が効いて,単精度の方が速いです.
せっかくご教授くださったのに
>>386 で失礼なことを書いて申し訳ありません.
389 :
Galois :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が負かそうでないかというような判断ですが)
を頻繁に行っています。このようなところから,誤差の問題で
結果が少しづつ変わってくるものと思われます。
いろいろな指摘ありがたいです。
390 :
363 :02/11/19 00:16 ID:hgj0uiuu
FORTRANは最近全然使いませんが、 IMPLICT REAL*8(A-H,O-Z)とやった後、 REAL A とやってない? 私は、IMPLICIT NONEとした後に、使う変数をすべて REAL*8で定義してます。
391 :
login:Penguin :02/11/19 01:40 ID:Mxyeoxo1
>>389 xとyがほぼ等しいときに減算を行ってはいけないのは、桁落ちが
起こって有効数字が著しく減ってしまうからです。そのような正
負だけを知りたい時は問題ありません。
# 基本的な数値計算の本を読みませう
モンテカルロ法で重要なのは乱数の生成だと思いますが、どんな
乱数生成を使っていますか? 標準関数のrandでは、科学技術計算に
耐えられるような質の良い乱数を生成することは不可能です。
乱数生成については色々と論文もありますから漁ってみて下さい
392 :
crazy_u :02/11/19 08:48 ID:T1RR6mEl
既に知っているかも知れませんが,ここで,サーチしてみたらどうでしょう.
http://www.netlib.org/ (Netlib is a collection of mathematical software, papers, and databases)
394 :
login:Penguin :02/11/19 22:10 ID:Hxr/Pgqa
インテルコンパイラ8.0はやくでないかなぁ。
395 :
login: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の乱数を使わしてもらって,
この依存性を調べて見ようと思ってはいますが,目先のことに追われて
ばかりで…。
396 :
login:Penguin :02/11/21 16:47 ID:3MfEdJo4
Intel Fortran 7.0 for Linux 正式版が出たようです. いつもバージョンの数字が大きく変わりますが, 何が変わったのか私には不明... # ログインIDもパスワードも忘れると,一度登録メールアドレスでは, # 再登録は不可能?
397 :
login:Penguin :02/11/22 00:45 ID:fdqnnMUD
インテルコンパイラ8.0betaはやくでないかなぁ。
398 :
login: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
399 :
login:Penguin :02/11/22 01:28 ID:2D9K7JEY
(金)に関するちょっといい話
あるテレビ番組で徳川埋蔵金発掘という番組があってその中でショベルカー
でいくら探しても金が出てこなかったが 野中 土井 亀井 中川 の4人組
の身元を洗ったところ大量の金が見つかりました
裁判所で4人はこの金は金正日さんから接待されたときにもらった金ですと自白しました。
この情報をスクープしたのは週刊金曜日『ちくし哲也をはじめとする金正日の工作機関雑誌』
金の使い方っていろいろあるね。 お金に関する雑誌ができました。
http://book.2ch.net/test/read.cgi/zassi/1036797442/l50
7.0入手ついでに400getさせていただきます。
401 :
login: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 だとコンパイルできます。なんでかな〜〜〜〜〜
>>401 なんでcrt1でてくんの?
見に行くライブラリ間違ってない?
>>401 iccの方ですが、私の環境でも出ますね。
もっとも引数無しでを実行したときに表示されるだけなので、実用上支障はありませんが。
環境は redhat8.0 + glibc-2.2.93-5。
この環境だとVer6がうまく動かなかったので7.0の登場は嬉しい限りです。
404 :
login:Penguin :02/11/24 01:53 ID:AQbo0hie
>>398 contains ではない関数にしてみたらどうなりますか?
あるいは、integer::ret=0 をやめて
integer::ret
ret=0
と毎回retに0を入れてみるとどうですか?
405 :
crazy_u :02/11/24 04:04 ID:9k5WSccy
>>398 integer::ret=0はinteger,save::ret=0と同じコードになります.(-Sオプションでアセンブリをだしてみると分かる.)
初期値設定はあくまでそのプロセスの初期値なので、値を変更すると(save変数になっているので),その後の呼び出し時には変更された値になります.(DATA文でも同じ)
Fortranの言語仕様なのか,業界標準かは分かりませんが,たいていのコンパイラはそうだと思います.(富士通も同じ)
406 :
login:Penguin :02/11/24 12:07 ID:6nxAFq7p
>>403 そりは、引数ナシだとリンカモードになってしまい、ランタイムライブラリだけから
a.outを生成しようとする、おバカなドライバ(icc)の仕様です。
gccみたいにシンプルに"No input files"と文句をいって欲しかったです。
>>406 6.0だとちゃんと、下のようにでるよ。
ifc: Command line error: no files specified; for help type "ifc -help"
408 :
398 :02/11/25 23:33 ID:011nOYQa
>>404 ,405
呼び出すごとに初期値が設定される訳じゃないんですね。
ありがとうございました。
409 :
login:Penguin :02/11/27 03:03 ID:HhmqaFh8
なるほど、どうやら昔のFortranでData文をつかって REAL A DATA A/0/ と分けて描く変りに、一部の拡張仕様Fortranでは REAL A/0/ などと書けていたけど、それが REAL::A=0 とFortran90で書くようになったというだけのことなんだね。
410 :
login: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の規格を厳密に実現できる ものがあるが、そうでないのが標準のものや、コンパイラオプションで 実現できたりしたなどである。
411 :
crazy_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 カーネルをビルドすることができます。」
と説明がありました.「ごくわずかな修正」を調べてみます.分かったら報告します.
412 :
login:Penguin :02/11/28 01:16 ID:Aj/Ka3kq
カーネルとモジュールとライブラリがビルドできて、相互に取り混ぜてつかえ たらすごいな。インラインASMの部分などは、無理だろうから、デバイス ドライバーなどは、全面書き直しするしかなかろうと思うけど。 がんばってOSカーネル丸ごとチャレンジして欲しい。 クロックがあがったように体感速度が上がれば素晴らしい。 SSE命令などを使ってデーターのバッファー転送を高速化したり、 サウンドドライバーが音質が向上したり、 XーWindowsが飛ぶように速く動くようになればめでたい。
bind samba openssl openssh apache2 と icc7 でコンパイルに成功したけど、 emacs で遂に挫折。
415 :
login:Penguin :02/11/28 17:18 ID:rzTXVehE
416 :
login:Penguin :02/11/29 00:00 ID:CcQhIMOA
カーネル最適化してもなぁ...
417 :
login:Penguin :02/11/30 05:16 ID:LPoU/MM7
-vms オプション付けても、VAX FORTRAN 拡張の 関数・サブルーチンは使えないのかな。
418 :
login: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 の恩恵にぞくせてよかったかも。
>418 Pentium4コアのC1 stepping以降はhardware prefetchのバグ(errata P46)が 直っているはずですぞ。Xeonも同じです。
420 :
crazy_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"に書いてある.
421 :
crazy_u :02/12/01 19:18 ID:Q5N6niNl
>>418 性能を向上しようと思ったら,コンパイルオプションもそれなり設定してコンパイル時のメッセージとかも見て,
最適化制御行を入れたり,コンパイラが理解できる(最適化しやすい)ようにコードを書き換えたりしないと性能はあがらないよ。
422 :
login:Penguin :02/12/03 09:57 ID:EIrgZrpN
P4-2.26でifc7を使い、自分のコードだがvector化するだけで実時間が1/4になった。 dtimeの計測では同じ数字なのだが、うれしいがわけわからん。
423 :
login:Penguin :02/12/03 10:35 ID:5aayB2ks
数値計算用に dual athlon 買う予定なんで興味あるのですが、athlon でもかなり効果ありますか? それとも P4, Xeon*2 (高いんで手が出ないかも)にすべきなのでしょうか? 過去スレ読んだつもりですが、イマイチはっきりしないので。
424 :
login:Penguin :02/12/03 10:45 ID:X1BM48vg
>>423 intelが敵に塩を送るようなことはしないと思われ
425 :
login:Penguin :02/12/03 11:17 ID:5aayB2ks
>>424 と、常識的には思ったんだが、使えるみたいだし。
あと、intel 用に optimize したら意外と athlon でも行ける、という
こともありうるかな、と思って。(意図的に intel 専用のコードを使って
壊すとかしなければ。)
kernel 2.5.45付近でintel compiler用patchって文字があったんで、 お手軽にコンパイルできるのかと思ったけど、そういうことではないのね。 dependency fileのフォーマット違いを適当に変換してcompileしてみたけど、 include fileがらみで止まったので、とりあえず放置中。
427 :
login: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 が効くとおもうんだけどなぁ。
長文失礼。
428 :
crazy_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%性能が上がると思います.
429 :
login:Penguin :02/12/04 05:11 ID:nRFkxlL9
>>428 GFLOPS換算だと、どういう性能値になるのかな?
430 :
crazy_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
431 :
crazy_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では全くダメだ ったりして試行錯誤の繰返しです.
432 :
login:Penguin :02/12/04 23:39 ID:pg0evXMe
433 :
login:Penguin :02/12/05 06:46 ID:/JxgZHh9
マルチジョブ環境ではない、シングルジョブの環境では、 user+sys を演算にかかった時間とするというのは、 たとえばスワップなどの待ちが発生していない場合には、まあ妥当だと 思うが、現実の計算させている側からみると、user+sys よりも 現実にかかったWallClock(実時間)の方が意味を持つ。 メモリーサイズを越えた計算を行う場合には、user+sys の時間と くらべて実際の時間はうんと長くなることはよくある。
434 :
login: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 に比べて速くなったか…は分かりませんねぇ…。どうやって比べればいいのかな?
>>434 21.2で試してみたけど上手くいかなかった。残念。
temacsは出来たけど、ldd temacsすると
/usr/bin/ldd: ./temacs: No such file or directoryと言われる。
リンクにミスってるのかな。もうちょい調べてみます。
436 :
435 :02/12/07 15:20 ID:Ui0kbuxO
/lib/ld-linux.so.2がリンクされてなかったのが原因でちた。
とはいえ、確かに速くなったのかサッパリわからんですねえ(w。 とりあえずMule-UCS込みでemacsをdumpするほうを頑張ろう……
438 :
login:Penguin :02/12/07 21:10 ID:fP7YPqYN
>>437 M-x hanoiで時間計ってみてら?
>>438 おお、なるほど。
elpでみると、一割弱ぐらいicc版のほうが速いかなといえなくもない感じですが、
実行の度にバラつきが大きいので、きちんと統計とらないとなんとも。
……という程度の違いぐらいでしたw
遅ればせながら私も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オプションを取っ払っても同様にエラーが出ました。 どのような原因が考えられますでしょうか?
>>440 どんな Hello world 書いたのかまずは晒せ
442 :
30 :02/12/10 15:16 ID:Ws55tYEe
linux版ifc6.0=>7.0に乗り換えたのですが、長時間計算させていると adress errorというものが出るようになりました。これはなにが 原因なんでしょうか?
443 :
login: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を使ってるんだったら、そこを集中的に見てみるといいんじゃないかな。
444 :
login:Penguin :02/12/10 20:29 ID:WQilySMD
どーも intel の人が FreeBSD にも興味を示し始めてるらしい。 出るといいな。そんな感じのメールが今日僕のところに来ました。
445 :
30 :02/12/11 00:57 ID:KREW2anI
>443 なるほど。pointerは使っていないので、原因はよくわかりませんね・・。 2週間くらい落ちずに計算してほしいので、6.0に戻すことにします。 ありがとうございました。
ソースうpしる!!
447 :
440 :02/12/12 14:02 ID:fC7hqe+l
>>441 すみません。どうも、2.2系列のkernelで実行していたのが原因のようです。
2.4系列のマシンで試したところ、ちゃんと動きました。
>>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))))
ってところかな。
>>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 に微妙に重さを感じるような環境だと、
あるいは体感で違いが出るかもしれないなーという感じかも。
451 :
login:Penguin :02/12/19 17:03 ID:5E3T5r1w
ライセンス送られてこねーよ バージョン7って6の時のやつ使えますか?
>>451 自分で試せることあるなら先にやってから愚痴言えばいいじゃん。
453 :
login:Penguin :02/12/20 12:29 ID:GkB+B9PY
>>442 CPUが過熱しているのでは?浮動小数点計算回路は、相当に熱を出すので、
浮動小数点計算をフルに稼動させると、そうではない場合にくらべて
かなり冷却をまじめにしなければいけなくなります。
CPUの温度が上がると、回路の動作可能速度が落ちてしまい、
回路がクロックについていけなくなるのです。
454 :
login: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
455 :
login: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
456 :
login:Penguin :02/12/20 13:36 ID:/crymO6Z
>>455 書き忘れた。l_cc_p_7.0.065 からの icc の修正点です。
457 :
login: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
>>457 ?? 一人、一つのバージョンにに関して 1 つのライセンスしか
取れない、って書いてあるけど??
460 :
crazy_u :02/12/24 21:05 ID:OYox6oQQ
461 :
login:Penguin :02/12/25 00:49 ID:uv9cjelH
iccで環境構築している人っています?
462 :
login:Penguin :02/12/25 17:00 ID:abtISU62
>>460 でけた.
更新されてなかっただけ見たい.
ありがとう!
463 :
login:biginer :02/12/25 17:07 ID:q3QDBWTa
こんにちは 質問なのですが。 当方IntelPentiumIIIProsesscer800Mhzを使用して、 OSにRedHatLinux7.2Valhallaを使っているのですが このような環境でもiccの効果は見込めますか? Pentium4でなくてPentiumIIIの場合gccと比べて一般的にはiccでも高速化する傾向があるのでしょうか? 以上、かなり初心者ですが、質問に返答いただけましたら幸いです。
464 :
login:Penguin :02/12/26 23:59 ID:G0YkL98D
>>463 30%ほどの速度向上が見込めるそうです。
465 :
login:Penguin :02/12/27 14:38 ID:GXP8e78Y
だれか、カーネルとライブラリー、モジュールを iccで再構築に成功した人いないの?
466 :
login:Penguin :02/12/29 00:22 ID:4wQu8ATx
ifcで計算した結果をバイナリで出力したデータを テキストに変換すると、精度がe-44のデータが出るのですが、 このようなゴミみたいなデータをゼロにするにはどうしたら いいでしょうか?ちなみに、変数はreal*4で指定してます。
467 :
466 :03/01/02 19:57 ID:+EkiIDCE
解決しました。 汚してすみませんでした。
468 :
login:Penguin :03/01/06 13:29 ID:Do2PTvNh
教えて偉い人 *.licって別のマシンで使い回し出来なかったけ? HostIDとかとってる?
469 :
crazy_u :03/01/06 14:33 ID:JaWhyWax
>>468 偉くない人だけど考えを書きます.
*.licは別のマシンでも使いまわしできるけれども,
2台以上のマシンへ同時にインストールするのは商用用途なら絶対にしてはならないことです.
自分もソフトを書いて仕事をしている以上,他の人のソフトの権利も守るべきです.
マシンを載り換えるならOKだと思います.
470 :
login:Penguin :03/01/06 15:03 ID:HQfFIc8m
>crazy_u thanks いや、正月を機会に速い箱に乗り換えてiccをインストールしようとすると インストーラに撥られるんです。前の箱は解体したので研究が進みません。 契約は守っていますので一応。
471 :
ot22 :03/01/06 18:15 ID:5PqBTGEN
一応iccだけでカーネルはできました(linux-2.4.21-pre2)。 gcc3と思わせればできてしまいました。早くなったのかどうかはわかりません。 ライブラリはやってみようとしましたが、gccべったりの作りで断念しました。
lmgrdを使ってライセンス管理する某ソフトは NICのMACアドレスを見ていたりするのだが、 今はそういう問題じゃないんだよね。
>>472 ああ、入らない。
その某ソフト(octaveの親御さん)が入っていてFLEXlmがそっちを見ていそうです。
/opt/intel/licensesじゃなくて/usr/localな方を見ているとか。
474 :
login:Penguin :03/01/06 21:52 ID:Np8sVtCA
>>471 >ot22
>一応iccだけでカーネルはできました(linux-2.4.21-pre2)
すばらしい。コンパイルオプションはどうしました?
475 :
login:Penguin :03/01/08 20:11 ID:mhZesDiw
Intelの新しいチップセットE7250を使ったMother Board はRed Hat 7.1が動きますか? ifc7をP4-3.06で動かしたいんですが, 850EでPC1066の方がいいでしょうか? シロートの質問で申し訳ありません。
476 :
crazy_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;
となっているか確認してみると良いと思います.
477 :
473 :03/01/08 20:51 ID:dtFQPFK8
>>476 >crazy_u
>ライセンスの置いてあるディレクトリを聞かれませんか?
いや、「ライセンスはどこだ?INTEL_LICENSE_FILE=/opt/intel/licenses参照」
といってインスタレーションスクリプトが閉じちゃうんですよ。でFLEXlm
使ってるMATLABが走ってるんでそれがいたずらしているのかなと。
相変わらず仕事が止まったままです。欝。
478 :
crazy_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は非常に羨ましい!!
479 :
login:Penguin :03/01/08 21:18 ID:Nu006fMN
>>475 ここも参照されたらいかが
www.hpc.co.jp
あたしは数値計算に最適化されたカーネルのパラメータとか知りたい。
480 :
crazy_u :03/01/08 21:30 ID:FGrvqAXs
MATLABを使用している人は
>>477 を助けてあげてください.
installファイルの中を読んで調査するしかないかも....
中で使用されている変数名のどれかが既に他で定義されてしまっているのかもしれない.
それさえ分かれば臨時に別の変数名に書き換えてしまえばよいのですが…
力になれなくてごめんなさい.
481 :
crazy_u :03/01/08 21:56 ID:FGrvqAXs
>>477 もしかして,*.licをftpで転送してませんか?
binaryかasciiかどちらかは忘れましたがモードを間違えるとviで開いても見た目は分かりませんが壊れています.
保管してある(でしょうきっと) *.licをフロッピーディスクにいれて移してみてはどうでしょう.
482 :
ot22 :03/01/08 22:50 ID:NeqYyahG
>> 一応iccだけでカーネルはできました(linux-2.4.21-pre2) パッチらしきものを希望される方は多いでしょうか? 多そうだったら public にアクセスできるところに用意しようかなと思ってます。 P.S. モジュールが出来ているような出来ていないような
483 :
login:Penguin :03/01/08 23:14 ID:U/R7YQLN
>>482 > パッチらしきものを希望される方は多いでしょうか?
ぜひぜひお願いします。これは面白い♪
>crazy_u
ううたしかにbinaryで転送して壊れている可能性も...
あとで報告します。
なんと
2
2chブラウザ以外からは見れないようにすれば軽くなるんじゃないの?
ひろゆき好きです(ポ
ひろゆきって男前だよな
>>440 そんなに寄付集まらないと思うぞ。
利用者に月1万円って現実的ですか?
僕の肛門もIP記録実験です
ゲハ板なんかは大人しくなりそうだな・・・
>>157 裁判上不利になるから、大きいところではもう無理だろうな。
だから2ちゃんでいい、という帰結もまたおかしいけれども。
これからは、IPが裁判で提出されるのが常識になりつつ、
それ以外の局面でどうIPが守られているか、とか
どれだけシステム上の信頼性があるか、とかが掲示板の人気に影響しそう。
493 :
login:Penguin :03/01/09 04:26 ID:o3zr6kVd
XFree86をIntelのCPUのアーキテクチャー向きに最適コンパイルしたら、 特に、MMXとかのベクトル的命令を多用するコードを吐けたら、 さぞや描画性能が上がるのではなかろうかと思うけど、あるいは Graphics Chip のドライバー性能がネックなのかな?
494 :
login:Penguin :03/01/09 08:35 ID:2OFBTc6l
>>478 赤帽8.0はifc7が動作しないと,ifc7のresellerのホームページに
書いてありましが,実際は動くんですか?
495 :
login:Penguin :03/01/09 10:22 ID:e/ruQh9v
>>493 gcc-3.2でオプション変更するだけでも効果があるから
期待できるでしょうね。
496 :
ot22 :03/01/09 11:27 ID:fZiQVJ4s
FlexLMウゼー
499 :
crazy_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モードの転送はファイルが壊れる目にあってます.
500 :
login:Penguin :03/01/10 01:02 ID:d3LQt9jT
>crazy_u やっぱFLEXlmの問題です。無理やりインストールして走らせてみましたが FLEXlmが管理するライセンスのところで引っ掛かりました。 Cotave clone(W のライセンスファイルを加工するです。あーやだやだ。
501 :
login:Penguin :03/01/10 16:31 ID:QDvvakyP
502 :
login:Penguin :03/01/12 23:05 ID:6n/fieKJ
>ot22 patch thx.うちも拵えてみました。
503 :
山崎渉 :03/01/15 11:23 ID:/OP2L6bf
(^^)
504 :
login:Penguin :03/01/18 20:29 ID:yibpzl2+
iccでgccをビルドできねー
このスレみてicc使い初めて数ヵ月。 コンパイラが2つあると、ビルドで失敗した時 もう一方でトライできるから楽。 最近はxvで、*.o はgcc版とicc版がチャンポンに なったがなんとか成功。
506 :
ot22 :03/01/19 00:44 ID:Z7H9vr9j
> 504 > iccでgccをビルドできねー make そのものは面倒なことはないのですけど(オズオズと) gccのソース以上のtextは吐けないので、makeしたgccの意味がよくわからない のですが… stage1のレベルのコンパイラが欲しいということでしょうか?
507 :
login:Penguin :03/01/19 01:16 ID:AqdOvBsU
>>506 いや、コンパイラコンパイラとして動くか試したかっただけ(w
>>507 > コンパイラコンパイラとして動くか試したかっただけ(w
コンパイラコンパイラなら、ふつーはyaccつかうのでは?
>>507 コンパイラコンパイラってのは意味が違うんでは?
510 :
505 :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
>>507 は何にも知らんただの厨房だろ
makeとか./configureするだけの香具師ね
512 :
505 :03/01/22 21:54 ID:4zktGZrC
>>511 まあそう言うな。
俺も何も知らんインストール厨なんで。
>>351 で cray_u さんが薦めてた
テキストみながらいろいろ試してみた。
早くなったり早くならなかったり。
物理レジスタの本数やキャッシュサイズかなり小さいパラメータが
一番はやかったりで結構謎です。
これから LU に挑戦します。
514 :
513 :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 のひとなのでこのへんの作法がよくわからないっす。
515 :
crazy_u :03/01/29 12:54 ID:BGnuMacz
>>514 私は,「Fortran77による数値計算ソフトウェア」(丸善)に収録されているベクタ計算機用のコードを使用してます.
一様乱数用のプログラム(コメント文込みで60行程度)をこの板に貼り付けますか?
(著作者を明記すれば自由に使用できたはず.確認します.)
516 :
login:Penguin :03/01/29 13:22 ID:ilG7zVvW
>crazy_u 一様乱数とかLUとかお願いします。一般的なコードだから 転載Okのはずです。 あとはCだなー
517 :
crazy_u :03/01/29 14:43 ID:BGnuMacz
>>516 今,会社で仕事中なので,家に帰ってから貼り付けます.
LUは多少長くなるので,貼付けると他の人の迷惑かもしれませんね。
どこかのサイトにあるはずだから,家に帰ってから探してみます.
518 :
crazy_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 * ************************************************************************
519 :
crazy_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
520 :
crazy_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
521 :
crazy_u :03/01/29 23:33 ID:VZTGGwTZ
522 :
513 :03/01/30 03:47 ID:nMBR86n0
いろいろどうもです。 FORTRAN って乱数は標準ライブラリとか使わないんですね。 それと、お名前も間違っていたようでごめんなさい。
523 :
login:Penguin :03/01/30 05:13 ID:8QLnsZcw
524 :
crazy_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用の直接法の解法として,改良しようと思っています.(不安定現象を扱っているので、反復解法は発散して使えない場合が多いので.)
525 :
crazy_u :03/01/31 19:09 ID:BwxWQL3f
gccでいうならlibg2c.aみたいにiccでもcで作ったライブラリとリンクすることってできないんですか? それっぽいライブラリが見つからないんですけど・・・
>527 すんません。意味わかりませんね。これじゃ。 言いたかったのは fortranのオブジェクトファイルとcのライブラリファイルをiccでリンクさせたいんですが そのような事はできますか? ということです。
529 :
crazy_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で受ける変数の型が同じである必要はありません.(ここを利用して型をキャストする利用もありかな.)
まあ,試しにやって見ることです.細かい部分はやりながら,修正していくべし.
530 :
crazy_u :03/02/01 11:07 ID:W/8HR9Dw
>>528 同じライブラリに入れたいということでしたか?
単純に,arコマンドで入れてしまえば良いでしょう.
531 :
crazy_u :03/02/01 12:45 ID:W/8HR9Dw
>>528 mainがCなら, LD=icc
mainがFortranなら, LD=ifc
>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のライブラリを参照できないんです。
534 :
crazy_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でリンクしてます.
535 :
login: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
536 :
532 :03/02/02 00:50 ID:2IbS21LR
>crazy_u どうもありがとうございましたm(_ _)m もう少し色々と試してみます。
537 :
crazy_u :03/02/02 19:22 ID:hawsmNOt
>>536 念のために
Fortran側からCの関数を
call abcd( 引数 )
とすると, abcd_ という名前の関数をコールしていることになるので,abcdというCの関数を呼ぶ場合は,
Cで abcd_ という関数を作ってその中で,本当に呼びたい abcd を呼ぶようにしないと使えません.
オプションで加工名のつけ方を指定すれば解決できるのかも知れませんが,移植性を考えて私は標準でこのようにしてます.
538 :
514 :03/02/05 15:57 ID:rIMlmH0y
遅レスですが、
>>526 ,533
情報どうもです。
行列演算のテスト用に乱数がほしいだけなので、
たぶんそんなに乱数の質は気にしなくても大丈夫だとは思います。
とりあえず、今日卒論の発表してきました。
このスレをみなかったらおいらの卒論はなかったよ。
どうもでした。
ま、卒論自体は
寒川さんの本の縮小再生産ってかんじだけどね。
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.
540 :
login:Penguin :03/02/11 20:50 ID:4i3cK38F
このスレの先頭の3,4,5の記事は既に時代遅れ。 今はもっと簡単にインストールできます。 ifc も icc もFreeBSD用のversion6 のコンパイラのパッケージも あるようですよ。今の最新版はVersion7です。
541 :
login: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 ";" とエラーを吐きます。 どうすれば回避できるのか、ご指導いただけないでしょうか?
542 :
541 :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に置き換えるとこの問題は解決されるっぽい。
ニヤニヤ(・∀・)
544 :
login:Penguin :03/02/20 04:24 ID:NjiabX2T
ニヤニヤ(・∀・)
545 :
login:Penguin :03/02/25 01:08 ID:uB5MBDWS
iccって個人使用ならまだ無料?
------------------------------------------------------- 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
547 :
login:Penguin :03/02/26 19:19 ID:MAjrYlXD
すみません、入手方法が分からないのですが、どなたか教えて頂けないでしょうか? buy か free evalution しかないように見えるのですが…
548 :
547 :03/02/26 23:39 ID:MAjrYlXD
549 :
login:Penguin :03/03/02 23:20 ID:LCrGqD3x
intel のコンパイラのソースコード公開希望。
ちょっと前にレイトレーシングの話題が出てたので一言。
昔、MSXで紹介されてたレイトレーシングのプログラムが
C++で復活してました。
本来Windows用なのですが他マシンでも使えるようにソースが公開されてます。
GCCの事例はあるのですがIntelコンパイラで試してみてください。
http://www5e.biglobe.ne.jp/~liquor/raytrace/ ここの掲示板で語られています。Itaniumのことも報告されています。
551 :
login: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 からのファイルと競合しています ... と言われるのだが、無理矢理つっこんで大丈夫ですかね? 名前がかぶってるだけじゃなくて実際ファイルの内容も違うみたい。
552 :
crazy_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をダウンロードして入れましょう.
553 :
login: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 の製品を買って登録しないとだめとか?
554 :
crazy_u :03/03/04 19:37 ID:B34pJ2VL
555 :
553 :03/03/04 23:24 ID:b9XWyKWE
<<554 なんだか申し訳ない感じ。。 license が付いてきたメールをちゃんと読んでなかったです。
556 :
login:Penguin :03/03/05 07:08 ID:88af8vjx
うまくLoginできない(ノД`)たすけて・・・
558 :
533 :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 を使えばできるかもしれないけど新しいのを取ってきたほうがよさげ.
559 :
557 :03/03/05 17:22 ID:bhMk2Z2E
>>558 (⌒0⌒)/わかりやすい説明アリガト〜、いまdownload中です。
良スレを汚しちゃってカナーリ(/ω\)ハズカスィ・・・
560 :
ot22 :03/03/06 18:39 ID:wmuEIwKz
561 :
login:Penguin :03/03/08 01:48 ID:/o6CinrA
562 :
login:Penguin :03/03/13 22:45 ID:MRYC6k3z
ニヤニヤ(・∀・)
563 :
ot22 :03/03/16 19:46 ID:5ASs5Vh9
Pentium Mって出ましたけど, 次のifc, iccってコンパイラオプション 増えるんでしょうかね? Instruction Schedulingが変わるだろうから… キャッシュが大きくなったのが効くのかどうか? はたまた, キャッシュを 意識したコーディングが必要になるのか? 頭は痛くなるばかりですね.
564 :
crazy_u :03/03/16 22:11 ID:dDd8YAG7
「頭が痛くなる」<「計算が速くなる期待でわくわく」 ではないでしょうか? それよりも,Itanium2系でdual Deerfieldを個人で賄える金額の計算機として期待してます(今年は1GHzで,かつ,L3 cacheが少ないので見送り). 来年出荷予定のhpのmx2 chipset搭載のドーターボード(32MBのon-board L4 cache)がとても魅力的です. (今,考えているアルゴリズムが活きそうなので)
VisualC++との互換性が最高だ gcc通らない香具師はコイツでコンパイルできる
566 :
login:Penguin :03/03/21 15:52 ID:5a5UYyOI
ニヤニヤ(・∀・)
567 :
login: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越えはまだまだ無理なのか。
>>567 関係ないが「3月 23」カコワルイヨ。なぜに「3月 23日」で表示できない?
570 :
546 :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
571 :
login:Penguin :03/04/02 06:25 ID:G+RkFIg+
572 :
login:Penguin :03/04/05 13:38 ID:hkP3eLct
ニヤニヤ(・∀・)
573 :
546 :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
574 :
Product 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
(´-`).。oO(日刊icc)
576 :
login:Penguin :03/04/11 17:29 ID:UMPCjAWO
ICCでカーネルコンパイルするには どうしたらいいのですか?
>>576 カーネルソースとiccを用意すればOKです。
578 :
546 :03/04/11 21:33 ID:tgLU/SfT
>>576 このスレ最初から読めば答えが見つかるかもしれない。
579 :
login:Penguin :03/04/11 21:47 ID:iBPAGJjQ
580 :
login: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はこれでコンパイルできるかも。 できるかなーできるかなー
--- /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> !!
+#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
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'
584 :
546 :03/04/13 21:51 ID:TLsIQjQR
>>581 なるほど、iccはsubstitute_headersディレクトリを
先に読むんですね。
あとgccに_GNUC_っていうモノ(なんて呼ぶのかな?)があるように、
iccには_ICCっていうモノが定義されていると。
勉強になるっす。
558 の手順を踏んでいるのに、
ttps://premier.intel.com にアクセスすると、
403 Forbidden: Access Denied
が出るのはなぜでしょう?
registration center にはログイン出来ます。
バージョンアップ通知のメールがむなしい...
何故に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
587 :
crazy_u :03/04/15 01:57 ID:OJCe6Mqy
>>585 サーバーが混んでいるらしくてそうなることがありますよ.
別の日にまたアクセスしてみたらどうですか.
588 :
山崎渉 :03/04/17 11:52 ID:KRn99/cy
(^^)
>>587 ども。それがこの半年間ずっとなんですよ。
今まで一度も成功したことがないんです。
色々と環境を変えて試してるんですけど...
590 :
login:Penguin :03/04/17 15:50 ID:QgET5h2K
ニヤニヤ(・∀・)
>>589 コピペ
Q : アドレスがhttpsから始まるページを見られません。
A : SSLの使用がブラウザの設定上許可されていない場合は、
閲覧することが出来ません。 ブラウザソフトの設定で、
SSLの使用を許可する設定を行って下さい。
またプロキシサーバーが設定されていると、
httpsから始まるセキュリティをかけたホームページが
閲覧できない可能性があります。
httpsから始まるURLを閲覧される場合、
プロキシサーバーの設定を解除して下さい。
592 :
546 :03/04/17 22:02 ID:jm+VbmCX
>>585 半年も悩んでいるなんて…
イソテルに(゚Д゚)ゴルァメール出したらどうでしょう。
私も同じような経験があり、
メールしたら、サクッと対応してくれました。
>>591 ども。SSL は registration center でも使われてますよね。
そちらにはアクセス出来ます。
cookie, java も許可してるんですけど。
>>592 ,594
Intel にメール出してアクセス出来るようにしてもらいました。
もっと早く出しときゃよかった...
結構対応が早くてびっくりしました。
みなさん、ありがとうございました。
>>印照 Good job !!
597 :
546 :03/04/18 22:01 ID:80K5uDQe
598 :
山崎渉 :03/04/20 05:53 ID:X64WTq1+
∧_∧ ( ^^ )< ぬるぽ(^^)
599 :
堕天使 :03/04/20 19:51 ID:b5ZjwhaX
601 :
crazy_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も検討しましたが,研究者用のプラットホームとしてはもう少しコンパクトな方がベターと考えました.)
603 :
crazy_u :03/04/26 18:56 ID:MiNXCyE+
>>602 情報ありがとうございます.
とりあえずそちらの板を見てみます.
なんやら、おもしろいことをやろうとしているのは分かるが 個人的な意見としては、もういい加減fortran見限ってほしい。 f90使ってまでobject化しなくてもいいじゃん…… (f90が中途半端にマイナーメジャー化するのが嫌かも。)
605 :
login:Penguin :03/04/30 03:02 ID:3+jGzA7G
C++はあまりにもぐちゃぐちゃな言語仕様で、コードの安全性が危ういし、 Cをベースにしているので、数値計算にはいろいろと不都合な点が多いし、 最適化が言語仕様上できにくいし、ヘッダーをインクルードするので、 プラットホーム独立性が低くて移植が手間だし、ポインターを多用する コードは、効率がトータルでよいとはいえない。
かといってf90がPost C++になりえるのかというと、
607 :
login:Penguin :03/04/30 21:11 ID:rdWVmHEP
f90でオブジェクト指向でプログラミング出来るのでしょうか? なんか「fortran オブジェクト指向」とかググっても有益な情報がヒットしません。 ウチの研究室では未だに77で・・・ 何かいいサイトor本があったら教えて下さいm(_ _)m
>605 >C++はあまりにもぐちゃぐちゃな言語仕様で、コードの安全性が危ういし、 言語仕様がぐちゃぐちゃなのは周知の事実だけど、 コードの安全性が危うい、までは言えないかと。 >Cをベースにしているので、数値計算にはいろいろと不都合な点が多いし、 たとえば、多次元配列を(メモリ上連続に)切るのとか若干面倒だねえ。 でも、どれもカバーできん領域の問題じゃないでしょ。 >最適化が言語仕様上できにくいし、ヘッダーをインクルードするので、 >プラットホーム独立性が低くて移植が手間だし、ポインターを多用する fortranだって変わらんやん。 プラットホーム変えれば、両方とも若干の修正が必要とされるし。 >607 組もうと思えば、普通にf90で組めると思うよ。 海外の数値計算のライブラリとかf90で組まれているのもいくつかあるし。 ただ、f77からオブジェクト指向化したいからf90ってなんか間違っている気がする。 f90使いたい人って、いまさらC++を学習したくない人ばっかしやん。 C++の言語仕様を覚えるよりも、 オブジェクト指向を体得する方が敷居が高いと思う。
609 :
607 :03/05/01 00:57 ID:mR+IhfD+
610 :
crazy_u :03/05/02 14:24 ID:La9MEaTu
f90が中途半端な言語仕様であることは十分認識した上での選択です. やや年配の方たちにはfortranオンリーの人も多く, その人達が現役で活躍できる期間の貴重な時間を(研究の本質ではない)C++の学習に使わせたくないという配慮です. (私はf90,C/C++とも使えます.念のため.) SMP用にする場合はどうしてもfortranとC/C++の混合になるので,いっそのこと全部C/C++でとは思いますが...
611 :
login:Penguin :03/05/02 23:43 ID:qE4h7Qxj
あまり崇高な議論ではないのですが、私の経験だと(数値計算) C++ ではあまり g++ 2.95.3 -O3 に比べてあまり有意なスピード差が Intel でも AMD でも得られないんですが、そんな経験している人います? C only だと dynamic allocation あまり使ってない場合は 3 割程度 速くなったこともあるのですが、使っている場合はあまり差が無い 場合もあるんですが…
613 :
login:Penguin :03/05/02 23:51 ID:yqBl63uC
f90のどのあたりが中途半端か教えて頂戴。
614 :
名無しさん@Emacs :03/05/03 00:50 ID:f7Aih6s7
そもそも、数値計算でオブジェクト指向するメリットがわからん。
615 :
login:Penguin :03/05/03 00:54 ID:Z7Ada4/X
多変数の系をプログラムするときに各変数をカプセル化しちゃいますが なにか?
>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
617 :
login:Penguin :03/05/03 09:17 ID:OqdU7aeR
>>614 Fortran で 10-20万行位の数値計算プログラムを見たら
げろってなるよ。OO 万歳とはいわないけど...
>>613 オペレータ再定義が貧弱。数値計算ではこれ重要。
クラス、テンプレートがない。コード再利用、拡張しやすいライブラリ書くのが困難。
必要ないと思う人はFortran90/95/2000使えばいいと思うが。
619 :
名無しさん@Emacs :03/05/03 12:37 ID:5Ul4S/7k
オペレータ再定義自体はオブジェクト指向とは関係ないんだけどね。
>>619 "関係ない"は言い過ぎです。
sytax sugarでmulti dispatchなmethodですから。
621 :
crazy_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 動かない!!! 要ダウングレードですか.....
624 :
login: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 ,. イ'
625 :
login:Penguin :03/05/03 23:16 ID:0wgreF57
>>623 7.2 7.3 8.0 9.0ときたけれど いまでも
なんもせんでもうごいてるぞぉー
626 :
602 :03/05/04 02:19 ID:gkG2Ia/9
>621 私が研究室でいじくっているものは都合によりg77でコンパイルできないと いけないので、OO化は敷居が高いです。 (allocateが使えない状況で省メモリが最優先(苦)) FEM3つ目の引退の理由が気になります。前2つのどちらかに機能移植が 完了した、とかでしょうか。 やっぱりシミュ板にスレ立てたほうが。
627 :
login:Penguin :03/05/04 11:49 ID:USuEh2C7
628 :
crazy_u :03/05/04 12:21 ID:aIbVqLoK
>>623 こちらでは,赤帽9で動いてます.
どう動かないのでしょうか?
どういうメッセージが出ますか?
link時に「○○○がありません」とでるなら,
/opt/intel/compiler70/ia32/libのなかの○○○が入っているライブラリを探して
明示的につけてやると解決するかも知れないよ.
629 :
crazy_u :03/05/04 12:36 ID:aIbVqLoK
>>626 FEM3つ目の引退は他の一つに機能移植が完了したからです.(f77の旧コード->f90化と新要素と新機能追加)
f90にしているのは,私が,ある日,突然,事故や病気で死亡しても,
fortranであれば「維持」位は周りの人員でできるだろうという配慮です.
(周りの人はC++を勉強もしたくないようです.)
>やっぱりシミュ板にスレ立てたほうが。
601でfreeのFEMについての情報を求めたところ,
こんなにintel compilerとは別の話題で伸びてしまいました.
以後,情報を求める場合は関連する板があるかよく調べてからにします.
>f90にしているのは,私が,ある日,突然,事故や病気で死亡しても, シビアっすな。たぶんCNETの記事で読んだ気がするのだけど、 きっちり文書を残し、引き継ぎを考えてくれる優秀な人間ほどクビになりやすく、 意固地にノウハウを秘匿している人間ほどクビになりにくいらしい。 まあ企業としても、近視眼的に将来設計すると当然そうなるでしょうね。 >以後,情報を求める場合は関連する板があるかよく調べてからにします. 個人的には、面白い話題だったので、気にしてないですよ。 というか、私も別スレに強制ソカーン?
631 :
611 :03/05/05 14:58 ID:jA0+5TWJ
忙しくて遅レスになりました。
>>614 数値コードといっても、私の場合 flexibility が重要なんで、
C++ の方が楽です。結局いくら速く走るか、より速く正しくコード
する方が大切なんで。(C++ がそう好きなわけでもないですが…)
あとSTLは重宝しています。
>>616 ヒントありがとうございます。徹底的には調べてないのですが、
tpp7 とか pentium4 とか指定しても( -O3 と一緒に)あまり
私の場合変わりませんでした。有意な差がないか、あっても数%。
何かおかしいことしたのかしらん。
ある程度は最適化を考慮してコードしているつもりです。(といっても
間違いをしにくいコード、見やすいコードを最優先していますが)
しかし、これは gcc, icc うまく行ってもともに速くなると思うので
どっちが相対的に利を得るかはわからないと思います。
632 :
login:Penguin :03/05/05 18:18 ID:H4Ye7vfX
ところで皆さんどんな数値計算ライブラリを使っていらっしゃるん でしょーか?iccで動く良いライブラリってどんなん? # ちゅーかiccで動くとか言う以前に良く知らんわけだが。
633 :
login:Penguin :03/05/05 21:40 ID:h9ijJ1I7
>>632 必ずしもコンパイラに依存した話ではないが、
lapack は使ってる。netlib は一般的に便利。
634 :
623 :03/05/05 22:25 ID:J+wEl3Uh
>>625 ,628
マジっすか。
__ctype_b がどうとか言うエラーがでて止まります。(今手元に環境がないのではっきりいえませんが)
で、intel のユーザーフォーラムに行ってみるとRH9のglibcでは動かないのでglibcはRH8に落とすように
とかアドバイスされてました。
635 :
crazy_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から呼んでいる○○○がみつからない」なら同様にして探してみてはどうでしょうか.
636 :
login:Penguin :03/05/09 09:36 ID:3nuHlbol
>>631 VTuneを使ってみたら?
Linux版もあるし...
637 :
login:Penguin :03/05/09 21:02 ID:Iw/mseMc
Vtune Linux版の使い方教えてけれ!!
638 :
動画直リン :03/05/09 21:13 ID:TPu648o8
639 :
login:Penguin :03/05/15 18:22 ID:Fcovmt4N
icc
ifc
641 :
login:Penguin :03/05/20 19:41 ID:PT3GBpGT
crazy_u さんなかなか大変ですね...お察しします。
642 :
山崎渉 :03/05/22 01:51 ID:VfjbtMwi
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
643 :
login:Penguin :03/05/22 05:35 ID:4+kUNQ7J
ニヤニヤ(・∀・)
644 :
login:Penguin :03/05/24 20:42 ID:ZoQ0LIhO
そのうちカーネルもiccでコンパイルできるようになるんかなぁ。
既に出来るし
646 :
login:Penguin :03/05/27 00:41 ID:w7lpIAps
(・∀・)renice!
647 :
山崎渉 :03/05/28 16:43 ID:3t6i6zxR
∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
648 :
login:Penguin :03/05/29 08:42 ID:ekZSounW
(・∀・)renice!
649 :
login:Penguin :03/05/29 09:03 ID:7Azvj9Ue
ifcを使っています。 pentium3では倍精度変数のベクトル化は出来ないんですか?
650 :
login:Penguin :03/05/29 09:49 ID:JNnRDsO7
XFree86はiccでどうよ?
Imake(?)のマクロが通らなかったような。
652 :
login:Penguin :03/05/29 11:10 ID:7Azvj9Ue
>>45 のアライメントの問題ってまだ存在するの?ファイル名の長さ変えても速度変わらなかったけど。
653 :
bloom :03/05/29 11:13 ID:pdJrRzE3
>>649 出来ません。そこがSSEとSSE2の違いです。
>>654 回答有難うございます。
ついでに、このような情報が載っているサイト等
教えて頂けないでしょうか?
657 :
654 :03/06/01 11:53 ID:6By+cE3x
658 :
login:Penguin :03/06/02 23:24 ID:bhT8EpXU
(・∀・)renice!
659 :
login:Penguin :03/06/14 19:38 ID:gyi/XUl+
Math Kernel Library 6.0 出てるね。 新しくDFTIっていうのが加わってるがスピードのほどは?
660 :
login:Penguin :03/06/19 18:54 ID:6G2kRFjD
板に膿む用のコンパイラは、64ビットアドレス用のコンパイラとしては 出来が今ひとつだ。
662 :
login:Penguin :03/06/21 01:19 ID:b/MChSwn
インテルのコンパイラ、8.0のベータ版が出たのだが、 うまくインストールできない。。
663 :
login:Penguin :03/06/22 20:04 ID:fT1pon5W
ifc7.0で-openmpのオプションを付けてコンパイルしたら並列化命令を書いて無くても segmentation faultになる…わけわからん
664 :
login:Penguin :03/06/23 10:58 ID:oeTTCU3d
663よ、もうとっくにバージョン7.1に切り替えなさいよ。
665 :
login:Penguin :03/07/01 00:41 ID:xLzamEeU
>>662 で,8.0はどんなもんなのか?
まだインストールできないんなら,俺がやってやるからクレ!
666 :
crazy_u :03/07/01 01:13 ID:ucIeuOlk
667 :
login:Penguin :03/07/01 01:41 ID:9GnTJF5h
668 :
login:Penguin :03/07/02 01:59 ID:VujfXoME
(・∀・)renice!
669 :
crazy_u :03/07/04 20:01 ID:pYjIxnBh
ifc8.0betaを動かしでみたが, 1. -I オプションが効かない。 2. -implicitnone オプションがあるとセグメントエラーでとまる. (-uと等価で,-uはデフォルトでonなので-implicitnoneは消した) 「1」は困った. icc8.0betaは修正パッチがあてられない。
670 :
login:Penguin :03/07/04 20:48 ID:oB31e1rv
ylugでカーネルからアプリまでiccで握ってみましたという 報告があった.けっこう強烈.
えっ Kernelもコンパイルできるの?
672 :
login:Penguin :03/07/08 00:36 ID:DtGnB79X
(・∀・)renice!
673 :
login:Penguin :03/07/08 00:40 ID:uaa14KHP
674 :
login:Penguin :03/07/09 00:09 ID:loVu+OLq
8.0ベータはパッチを当てて更新するしか方法がなくなってしまったが、 これは実際にはダウンロードしなければならないサイズは減ったかもしれない が、実際にパッチを適用したり、ヴァージョンを管理したりする手間というか 人間側の心理的手間は、絶対にむしろ大きくなったと思う。
675 :
n :03/07/09 00:21 ID:yzdABmxi
676 :
login:Penguin :03/07/09 00:42 ID:ZigCc05i
> えっ Kernelもコンパイルできるの? というレポートがあった. ちなみにカーネルをiccで握っても効果は無いらしい.
677 :
_ :03/07/09 00:43 ID:RRaEUYou
678 :
login: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+
681 :
x :03/07/09 18:03 ID:TL5iCd9+
682 :
login:Penguin :03/07/10 00:40 ID:+aTXKZa/
Xをiccでアーキテクチャー別に最適化してコンパイルしてみれ。
683 :
login:Penguin :03/07/14 02:40 ID:5XjH4O4S
age
684 :
山崎 渉 :03/07/15 11:17 ID:2JhhXBQM
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
685 :
login:Penguin :03/07/15 12:07 ID:Fo16Kpwc
(・∀・)renice!
686 :
login:Penguin :03/07/16 07:06 ID:2DXMWT9D
バッファーなどの内容をコピーしたりするのにMMX命令の系統を使えば、 能率がよくならないかな?
>>686 なるよ。
手間を考えるとペイしないような気がするけど。
つーか、それだけのためにCPU使うのはどうよと思うが。
>>686 iccって積極的にMMXとかSSEの命令使うんじゃない?
バッファコピーとか最適化してるのかな…誰か実証イボンヌ
689 :
login:Penguin :03/07/20 22:33 ID:mKHQx37j
Linusもgccはイマイチだと。
690 :
login:Penguin :03/07/24 11:04 ID:nNyOO5nT
(・∀・)renice!
691 :
login:Penguin :03/07/27 11:58 ID:Aq2rr+SO
(・∀・)renice!
∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
693 :
login:Penguin :03/08/02 10:35 ID:2rmp9gin
(・∀・)renice!
>>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でコンパイルすると、大幅に性能がアップするらしい。
695 :
login:Penguin :03/08/02 23:04 ID:yzUthQHd
RedHat Linuxのbeta版のsevernを試しに入れてみた. ifcは正常に動かなかった.(コンパイラの内部エラーでストップ)
696 :
login:Penguin :03/08/03 16:33 ID:9jMM4mta
RedHat Enterprise Linuxのbeta版のtaroonを試しに入れてみた. ifcは正常に動かなかった.(コンパイラの内部エラーでストップ) 正式リリース時には使えるようになるかな?
697 :
login:Penguin :03/08/03 17:04 ID:M4hhWC14
>>694 それ昨日のlinux seminarでやった奴でしょ?
698 :
GET! DVD :03/08/03 17:23 ID:KSrwZbRY
699 :
login:Penguin :03/08/03 18:04 ID:2rvL/V8H
700 :
login:Penguin :03/08/03 19:21 ID:LnwLtAl4
Cだと速くなるんだけど、C++ だとあまり g++ とかわらないんだけど。 いろいろオプション弄っても。俺だけかなぁ…
702 :
login:Penguin :03/08/05 01:14 ID:EFPrlYTw
性能がアップするモジュールのソースだけを、icc でコンパイルしたオブジェクト ファイルとして差し替えて、あとはGCCでコンパイルされたオブジェクトを リンクしてカーネルを作ればいいのでは?
703 :
login:Penguin :03/08/08 10:01 ID:oDy/Pk9K
Redhat9にIntel compilerをインストールする場合は, デフォルトのglibcのバージョンの問題のよう. glibcをバージョンアップしてからifcをインストールするとできるらしい
704 :
login:Penguin :03/08/10 01:36 ID:KIU12EYe
インテルがコンパイラのソースをGPLにしてくれればいいのにね。
阿呆か。
706 :
login:Penguin :03/08/13 00:59 ID:vZiKmtQp
昔試験的にインテルがGCCにインテルCPU向けのコードオプチマイズ の機能を高めるパッチを出していたことがあったが、一回そういうことが あったきりで、その後は無かった。
707 :
山崎 渉 :03/08/15 22:52 ID:ep0zwfOh
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
708 :
login:Penguin :03/08/15 23:45 ID:GfNK1qbf
(・∀・)renice!
709 :
login:Penguin :03/08/16 15:03 ID:rNtMNMvg
(・∀・)renice!
710 :
login:Penguin :03/08/18 22:36 ID:uzo2Kc6f
711 :
login:Penguin :03/08/26 18:03 ID:gFo6zh41
(・∀・)renice!
712 :
login:Penguin :03/08/30 01:49 ID:lnjLgl6n
CもFortranも8.0Beta版が出たのに書き込み無いのはどーよ、どうなのよ
713 :
crazy_u :03/08/30 11:00 ID:hGNBDF9C
>>712 Compilerとして安定してきたことで,
・特に大きな不具合はない
・出来上がるバイナリ-に目立つ部分で性能の向上は(7.1に対して)みられない
からではないでしょうか
実はItanium2上では最適化を上げると計算が壊れたプログラムがあり,バグレポートを送ってある。(まだ直ってない)
ここに書き込むことでもないので書き込んでない。
新命令が追加されたCPUがでれば書き込みが増えると思うよ。
714 :
login:Penguin :03/08/31 03:03 ID:Gl3sHcd+
AMDもインテル並みの努力をコンパイラやライブラリ、組込み用のライブラリ、 マルチメディア関連のライブラリ、開発チューニングツール類に割くべきだ。 CPUだけが早くて高性能だとしても、それを引き出すことができないのでは なんにもならない。サードパーティのコンパイラメーカーに任せてしまうのは コンピューターをトータルのシステムとして理解が不十分と思える。 (日本メーカーもWSやPCに関してはこの点でまったく論外だ。)
715 :
712 :03/08/31 21:36 ID:VcA2JGBq
>>713 とりあえず了解.大幅な性能向上を期待していたがそんなもんね.
smp環境下での自動並列化あたりを期待しているんだが...
特にHTあたりで有効になってほしいのだけど.
716 :
crazy_u :03/08/31 21:54 ID:+nx1nf0P
>>715 現在,私のところはsmp環境がないのでその辺はテストしてないです。
HTについては,私は科学技術系なので生かせそうもないです。GUIやデータベース,ネットワーク系だと生かせるのかな。
私自身は科学技術計算の並列化については(Intelに限らず)コンパイラには期待してないません。
末端での並列化はよほど問題にマッチしてないとオーバーヘッド部分でかえって遅くなると思うので,
より上位レベルで明示的に並列化のコードにしていく方がよいと考えています。
(一度苦しんで作りこめば,あとはマイナーチェンジで改良していけると楽観的に考えてます。
一つ作ればまた別のアイデアも湧くでしょうから........)
HTが科学技術計算では意味がないというのは経験的には
わかっているんですが、その理由はどう考えればいいんでしょうか?
>>715 正直OpenMPを勉強したほうが早いと思われ。仕様書なんて
数十ページしかないので覚えるのは簡単です。
719 :
ot22 :03/09/01 12:41 ID:Lc8gUGt5
720 :
crazy_u :03/09/01 20:39 ID:U4X17Unv
>>717 たいていは,CPUかメモリー帯域のどちらかが手一杯な状態なのでHTでの効果はない。
(FEM,流体,分子軌道法等でそうなってなかったら計算の遅い下手糞なプログラムでしょう)
個々の計算が軽くても,数がたくさんあるときはワークパイル式の並列化はHTでも効くと思いますよ。
それと,コンパイルするときはHTで良かったなとは思います。
サブルーチンが山ほどあるのでmake -j2 でコンパイルしている。
721 :
login:Penguin :03/09/02 02:19 ID:zMJC9gOv
ベクトル計算機のようなメモリ帯域をハードウェアで馬鹿金をつぎこんで 稼いでいるマシン向きの,あるいはそれにそっくりなコードを HTをやっても大して効かないでしょう. どうせメモリ転送ボトルネックだからです.
722 :
712 :03/09/08 01:27 ID:qWMNar0q
Pen4のメモリ転送6.4GB/Secってかなりの帯域にはなってる・・・ ベクトル計算機でも並列のパイプラインで10GBぐらい?
いや、帯域だけあってもねえ。所詮はDRAMなわけだし。
724 :
Tetrodotoxin :03/09/11 21:52 ID:jqiOSKxV
現在、Intel Fortran Compiler 7.1 for Linux を使ってfotran90を動かしたいと思っています。 非商用バージョンをインストールしたのですが、うまく動いてくれません。 どなたか詳しいインストールの仕方を知っている人がいたら、教えてもらえないでしょうか。 よろしくお願いします。
725 :
Tetrodotoxin :03/09/11 22:04 ID:jqiOSKxV
↑ちなみにRed Hat Linux 7.3を使っています。
727 :
login:Penguin :03/09/12 01:23 ID:1atZEiyI
最近のintelのコンパイラは何も考えなくてもインストール出来るようになってると思う. どこでつまずいているか書いた方が早いと思うが...
728 :
Tetrodotoxin :03/09/12 13:17 ID:fNfEoxzz
>>726 ありがとうございました。
>>727 rpmファイルをredhatのインストーラーでインストールした後、licenseをコピーして実行。
ここまではやったのですが、実行しようとすると、「f90はみつかりません」というようなエラーがでてしまいます。
729 :
Tetrodotoxin :03/09/12 13:19 ID:fNfEoxzz
rpmのインストール方法に原因があるのでしょうか。
>>728 予想1 パスが通っていない.
予想2 そもそもコマンド名がf90でない.ifc.
「rpmのインストール」でどんなファイルがどこにインストール
されるか確かめれば済むこと.
中途半端に訳して書くよりはエラーをそのまま書く方が良い.
今回のは
~$ f90
-bash: f90: command not found
これのことを言っているのだろうか.
731 :
Tetrodotoxin :03/09/12 17:05 ID:fNfEoxzz
>>730 ありがとうございます。
エラーの内容は以下の通りです。
[]$ f90
bash: f90: command not found
[]$ f95
serialization_error
何度も聞いて申し訳ないですが、お願いします。
>>731 >>730 さんの予想通りと思いますが,予想1,2はどうですか.
あと,licenseを手でコピーしたなら一応パーミッションを
確認.自分が読めるようになってます?
734 :
730 :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パッケージの中身を確認しては如何ですか.
735 :
crazy_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です。
マニュアルを読んでないように見受けられるので,ここで質問する前にマニュアルくらいは目を通して下さい。(他の人に失礼です)
736 :
crazy_u :03/09/13 14:01 ID:p4hAA4+6
>>731 連続ですみません。
環境はbashのようですね。パスがどうしても通らなければ.bashrcを編集するとよいと思います。
737 :
login:Penguin :03/09/19 11:49 ID:WROpUPEl
今現在はLINUX用には無料だが、いつか有料化されてしまうのではないかと 危惧を感じる。
738 :
login:Penguin :03/09/21 16:41 ID:7+FI9AMs
入手済のものが有料になる訳じゃないのでどうでもいい。
739 :
login:Penguin :03/09/21 18:52 ID:w6QJgY+P
しかし,新しい機能やバグが直っているのを使えないと,フラストレ-ション溜るよ.
Inelが非商用版を無料で配布するメリットはなんだろう? メリットがあるうちは無料だろうが,メリットが無くなれば有料化するのでは?
HPCユーザーに対するitaniumとxeonの販促じゃないの? AMDが死んだらメリットは減るんではないかな
742 :
login:Penguin :03/09/25 16:59 ID:FN6PNMc8
(・∀・)renice!
RedHat Linuxのbeta版のsevern beta2を試しに入れてみた。 ifc7.1, ifc8.0-betaともに正常に動作し,計算も正常に行われた。 RedHat Enterprise Linuxのbeta版のtaroon beta2を試しに入れてみた。 ifc7.1, ifc8.0-betaともに正常に動かなかった。(コンパイラの内部エラーでストップ) 正式リリース時には使えるようになっていて欲しい。
severn beta2でifc8.0-betaで作成したバイナリはifc7.1でのものより1割位遅かった。 まあ,beta OS上でbetaコンパイラだから.....
745 :
login:Penguin :03/10/04 23:49 ID:kpZzpAfH
(・∀・)renice!
pgplot(g77,gcc)とnetcdf(icc)の両方を使うコンパイルがでけた みそはlibg2cからs_stopを抜いたものを新しく作りリンクすること
747 :
login:Penguin :03/10/09 02:30 ID:qaV5l52p
8.0 ってまだまだバギーだよね?
748 :
login:Penguin :03/10/09 02:33 ID:qaV5l52p
Fortran9x の MODULEを作ったときに出来てしまう .MOD ファイルを UNIXの make と整合性あわせて, Makefile をうまく書くのが難しい. どこかにチュートリアルないだろうか? とにかくたくさん分割ファイルが あって,モジュールもたくさんあって,それらをいろんなところで引用 しているときの依存関係が,複雑怪奇になっている場合,どうすればいいのか わけがわからん.
>>747 私が使用している範囲では,IA32用は安定してますね。IA64用はまだバギーかな。
バグに見舞われたら,少々面倒でもIntelに連絡しましょう。製品版までに直ってくれれば安心して使えるので。
バグの程度にもよるけど,Intelの対応は良かったよ。
750 :
login:Penguin :03/10/11 03:36 ID:A6R3ZcJH
Intel への連絡方法は,ブラウザを使うやり方に限定されていて, WINDOWS上でに比べて,LINUX上だと,非常に面倒で不便. EメールにUUENCODEしたファイルをつける方が簡単で良いのに. (しかも,毎回同じマシンやシステムの環境などをいちいち手で 入力させられるので時間がとても食われる.)
>>750 私はバグに会ったプログラムから小さなテストプログラムを作成して,
メールに添付して送ったりしているので,
添付するものがないときも,連絡の初回はEメールで済ましている。
回答を見たり,その回答への返事とかはブラウザ上だけど。
752 :
llaco :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でやってます。
エラーメッセージをよく読め。
>>752 Read the error message.
755 :
llaco :03/10/16 11:51 ID:l4PsQU6v
"FLEXlm license"を"l_for_*.lic"のことだと思って、これを/opt/intel/licenses に置いたり、installファイルと同じ場所に置いたりしてたんですが、すでに間違ってますか? 前やったときは、ライセンスファイルは./install実行後に/opt/intel/licensesに置いた気がするので間違ったことしてるような気はするんですが・・・
>>755 INTEL_FLEXLM_LICENSE=/some/path/to/your_license.lic
757 :
llaco :03/10/16 21:28 ID:NNOmsNpx
>>755 です
体験版をDLしていたため、ライセンスが切れてるだけでした。
今度から非商用版を使うことにします。
>>756 ありがとうございました。
758 :
login:Penguin :03/10/17 12:04 ID:En50EzPk
8.0βってどこから落とせばいいんですか 教えてえらい人
>>758 過去ログを全部読むかそこから検索しる.
760 :
lolo :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のみでも全部あるみたいです。
761 :
lolo :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のみでも全部あるみたいです。
762 :
lolo :03/10/18 11:37 ID:uCSzffEf
すいません。操作ミスでおなじものを投書き込んでしまいました。m(_ _)m
glibc2.3 から __ctype_b_loc になったらしい。
764 :
crazy_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
765 :
login:Penguin :03/10/18 21:11 ID:CkgLH2F4
変だな,LINUX版のFORTRAN90とC++は永久利用可能ライセンスではなかったの?
766 :
lolo :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 でおそらく最新のものがインストールされていると思います。
767 :
lolo :03/10/19 00:48 ID:PaB7azw1
本家USのFTPサイトでも非商用のbuildバージョンは20030307Zで同じでした。 crazy_uさんのBuildは9/22付けになってますね。もしかして私とダウンロード したFTPサイトが違うのでしょうか?よくわかりません...
やり方忘れたがpremiere supportに登録すれば最新版にアップデートできますよ。 もちろん非商用でも。intelから来たメールをよく読めばわかるとおもわれ。
769 :
lolo :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が通らない 理由は全くわかりません。 まだまだ、私は勉強不足のようですね。
770 :
login:Penguin :03/10/19 14:44 ID:7cV4PSHw
8.0βって使用期間付きだったので登録やめた
771 :
login:Penguin :03/10/19 16:58 ID:zu7Q35mU
クラックパッチはどこにあるん?
773 :
ot22 :03/10/20 12:02 ID:acsuXBEh
>> 769 どうもlibstdc++あたりのバージョンとの問題が強いようです。 i686以上でtuningしたものだと関数のentryがないといって叱られる場合が多いようです。 i486でmakeしたものだとあまり問題が生じないというのが経験則です. P.S. 他のコンパイラですけど, glibcはこっちを使いなさいとくっついてきているのもありました.
インテルから送られてきたメールのサイトでダウンロードすると、 ファイル名が、「l_cc_p_7.1.006」なのですが、FreeBSDのportsは、 l_cpp_p_7.1.030を要求してきます。 l_cpp_p_7.1.030は、どうやったら手に入るのでしょうか?
>>774 自己レスです
Premierに登録すれば良かったですね。
あと、ファイル名がチョコット間違えてましたごめんなさい。
776 :
login:Penguin :03/10/25 05:30 ID:cExatsue
ちょっと前に Build 20030922Z のRPMを インテルのサイトからとってきて入れた。 ディレクトリのパーミッションが 大半 rwxrwxrwx になってることに今、気がついた。 # find ${intelcompiler} -type d | xargs chmod 755
777 :
login:Penguin :03/10/26 11:18 ID:VW7fW/4m
777
778 :
login:Penguin :03/11/02 19:17 ID:MGHTobIw
premiere supportって1年たったら有料みたいなことかかれてるよう。 でも登録しないと最新版DL不可なのね。。。
779 :
login:Penguin :03/11/02 21:48 ID:JjTRDZwI
>>779 いまURLはわからないけど、レジストするとくるメールにかいてある場所。
782 :
login:Penguin :03/11/03 17:54 ID:8Yc9P4g+
ううむ。旧いものは無料でintel以外のサイトでも再配布されているのだが、 最新版は、配布物そのものでなく、'support'に後々課金されていく、つうしくみなのかね。 まあ今まで散々ばら蒔いて、そこここでiccが使われてきたから、カネ稼ぎを始めるころかもね。 違う手だけど、solaris x86でSUNがやってたね。 散々ばら蒔いてから「x86やめちゃうよ、嫌ならカネ払ってね」って。 SUNが脅しならこっちは騙しだな。 で、この辺について、intel関係者か詳しい人の降臨キボン。
783 :
login:Penguin :03/11/04 01:02 ID:7KTVtMUT
GNU の F90を作る計画はうーーーんと遅れて今日に至っている. SGIのFORTRAN90コンパイラ部品をベースにGPLなコンパイラを という話も一時期あったが,なぜかポシャったみたいに見える. FREEなFORTRAN90,95のコンパイラが無いことは,非常に残念である. 開発や教育に使う場合には,最適化は程程でよいから,軽くて バグの無い,FREEなコンパイラが欲しい.
784 :
login:Penguin :03/11/06 22:53 ID:vzXLPe+j
ifc8betaを使ってみたけど,ifc7に比べてhimeno benchでは15%も遅い! これが一般的な数値だと思わないが,ifc8betaはまだまだ使えない...
785 :
login:Penguin :03/11/07 13:52 ID:jL8a1oqO
>>778-782 Intelのソフトウェアは、
・購入後一年間のテクニカルサポート付き
・購入後一年間の最新版へのアップグレード付き
だから、プレミアサポートも有料だろ。
無料版だとどうなるのかは知らない
>>508 同意
ところではなしは変わるけど、携帯ゲーム機"プレイステーションポータブル(PSP)
久夛良木氏は,“PSPはゲーム業界が待ち望んだ究極の携帯機”として説明。「ここまでやるかと言われるスペックを投入した」という。
発表によれば「PSP」は,曲面描画エンジン機能を有し,3Dグラフィックでゲームが楽しめる。
7.1chによるサラウンド,E3での発表以来,クリエイターたちにリクエストが高かった無線LANも搭載(802.11)。
MPEG-4(ACV)による美しい動画も楽しめるという。これによりゲーム以外の映画などでのニーズも期待する。
外部端子で将来,GPSやデジタルチューナーにも接続したいとする。
また,久夛良木氏は,繰り返し「コピープロテクトがしっかりしていること」と力説。会場に集まった開発者たちにアピールしていた。
さらに,ボタン設定なども明らかにされ,PS同様「○△□×」ボタン,R1・L1,アナログスティックが採用される。
この際、スク・エニもGBAからPSPに乗り換えたらどうでしょう。スク・エニの場合、PSPの方が実力を出しやすいような気がするんですが。
任天堂が携帯ゲーム機で圧倒的なシェアをもってるなら、スク・エニがそれを崩してみるのもおもしろいですし。かつて、PS人気の引き金となったFF7のように。
突然こんな事書いてスマソ……
GBAと比べてみてどうなんですかね?(シェアの事は抜きで)
GBAとPSPと比べてIntel Compilerがどうなのかってこと?
789 :
ot22 :03/11/09 18:01 ID:MMYg5VhY
>> 783 gcc-3.5のCVSには取り込まれていますね. gfortran という名前で F95を目指しているみたいです。
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 では正常に動作してます。
ifc7.1をBuild 20031103Zに更新したら,RHEL3.0で正常に動作しました。 (11/14にIntel Premier Supportからのメールで更新の案内有り)
792 :
login:Penguin :03/11/19 22:44 ID:Uw9KSyAu
報告乙
793 :
FIREWELL :03/11/20 01:53 ID:ZQHTsu3z
ああ、このFORTRAN90やC++コンパイラのクオリティでもって AMD64対応のコードも吐いてくれたらいいのに。AMDは AMD64のアーキテクチャーをインテルなどの他社にも無料公開 して市場拡大を目指すべきである。それが本当の恩返し。
>AMD64のアーキテクチャー 数年前から大公開中ですが何か?
795 :
login:Penguin :03/11/21 02:36 ID:VOn/rI5d
無料公開というのは、パクっても特許ロイヤリティも取らなければ、訴訟も しないということだけど、そうなの?
>無料公開というのは、パクっても特許ロイヤリティも取らなければ、訴訟も >しないということだけど、そうなの? 君の辞書にはそうなってるのかもしれないが、 世間一般にはそうではない。
3dnowの時の失敗をamdは生かすことが出来るのか。>x86-64
798 :
login:Penguin :03/11/23 23:31 ID:yv1r1wan
むりぽ
799 :
login:Penguin :03/11/24 00:05 ID:i0Ku7SEH
だいたい「無料」公開ってなにさ?
800 :
login:Penguin :03/11/24 12:15 ID:1ACrxng9
トランスメタの技術を使えば、64ビットのINTELイタニウムやCRAYの ベクトル計算機のマシンコードを,32ビットのx86 CPUで実行したり、 AMD64の回路ハードウェアをわずかに改造したもので実行したり できると思う。 トランスメタ自身が、種々のCPUをエミュレートする汎用のCPUと その上のトランスレーターソフトを作ればいいのに。
Z80コンパチのGHz級PCを開発したらトランスメタは神
802 :
login:Penguin :03/11/24 22:45 ID:XFV3AcIV
なんのために、という動機が必要。トランスメタも 企業だからね。x86-64コードをCrusoe上で動かす CMSは、AMDとトランスメタが出してたね。 商売になりそうなのはJava-Chipエミュレータかな。
803 :
login:Penguin :03/11/26 02:18 ID:8aZUyRny
IBMのメインフレームの命令セットをトランスメタ風に エミュレーションできれば、なにか嬉しいことがないでしょうか?
亀レスですが。
>>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.
とあるので、何が制限されてるかは知らないけど、
登録できる様です。
805 :
login:Penguin :03/12/09 18:50 ID:2d8A2JmZ
ifc 8.0が出たみたいだね。どのあたりが売りなのかな。 今ダウンロードしている所です。
806 :
login:Penguin :03/12/10 02:06 ID:QoIBA7Ti
売りはvisual fortranとの互換性なのかなぁ。 スレの上のほうの8.0betaユーザの報告ではパフォーマンスが… というかんじだったけど。正式版での報告キボンヌ。
807 :
login:Penguin :03/12/10 09:02 ID:sroqBqpo
これのコンパイラと開発ツ-ルの提供はAMDに対するインテルの牽制だろうね。 AMDがいくら良いCPUを作っても、コンパイラなども含めたト-タルなサポ-ト とくに開発環境とサポ-トに関しては、金力のあるインテルが数倍上だから。。。
808 :
login: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の最終バージョンを入れ直して しばらく様子をみようと思います。
icc8が出たけど、Premier Supportからは取れないな。 Non-Commerical Licenseだと icc Version 8は取れないのかな?
810 :
login:Penguin :03/12/10 23:19 ID:GiTuTJ3u
>>809 メジャーバージョンアップだから
普通にintelのサイトから8.0のサポート無し版を落として
プレミアに製品の追加登録するんじゃないの?
と思ったけど、新ライセンス送付のあて先にプレミアに登録したアドレスを
指定すると、自動的にプレミアサポートに製品情報が追加されてるぽ
よくわからん文章ですまん
>>810 うーん、www.intel.com -> software -> Intel C Compilerとたどっていって、
非商用サポート無しを登録した後に、premirerサポート見ても追加されないんですよねぇ。
なんか手違いしているのか、あるいは反映に時間かかるのかもしれないので、
二、三日様子をみてみます。
intelからのお知らせメールに記載の URLからダウンロードすると、 普通に version 8になってますた。メールを良く読まなかったワタクシの落ち度です。 これからなんか試してみます。
うーん、今更ながら Intel VTune Performance Analyzerを入れようとトライしてみたんですが、 手元にある Redhat Linux 9では入らず。どっかに古い Linuxの CD無いかな(つД`) 現在 isoイメージを入手出来て、VTuneを動かすのに最適な Linuxって何なんでしょうねぇ。 SuSEも見に行ってみましたが適当なイメージが見つからず、 RedHatも古いイメージは見つからず(つД`)
>>812 ダウンロード出来ねぇ。
ホンコン鯖にアクセスしたら、一度ダウンロードが始まったが、
半分位までいったところで突然ソースファイルが見つからないと叱られた。
こみ合ってるんだろうねぇ...
ところで、intelはwinな鯖を使ってるのだろうか...
何やかんやとあそこのサイトにアクセスしてるとトラブルが起こる。
816 :
login:Penguin :03/12/11 19:48 ID:2kSMVJY9
>813 XLsoftからの案内だとコンパイラも8.0からRedhat9に対応したと 書かれているから、VTuneも近いうちに新版がでるかも。 あとfortranはimslを含んだprofessional版が近日発売と書いてあったな。 ちなみにiccってgccよりもどの辺が優れているの?
818 :
login:Penguin :03/12/12 12:12 ID:A4ah+nvE
>817 少なくとも価格とか入手の容易さでは負けているよね。
>>816 Intelコンパイラが Redhat 9に対応って書いてありましたねぇ。
VTuneはバージョン低いスギだしw
Redhat9を Kernel 2.4.18に下げたらパニックしてダメだったので、
VTune側でRedhat9に対応して頂きたい所存(切実
820 :
login:Penguin :03/12/13 00:32 ID:6ENh9c3+
で,ifc8ってどうよ? ifc7に比べて遅いんだけど.
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くらいの数字がちらほら出るので一定してない。 明確にどっちがいいとも言えないなぁ。
822 :
login:Penguin :03/12/13 11:37 ID:6ENh9c3+
>>821 2.6Cの割に数値が低いね.win版?
>>822 いや、ソースを拾ってきて icc for Linux on Redhatでコンパイル。
ランキングとの比較で遅い気がして測りなおしたら icc版で 900程度出てますた。
ifc7, ifc8でも明確に差があったんで、週明けにでも書きます。
GCC用のパッケージ内の Makefileやconfigurer、.specファイルを ICC用に一括置換するスクリプト組もうと思うんですが、 オプションの違いが不安なので、その辺り教えて頂けると嬉しいのですが…。 # もしかして既出?
嘘ばっかで申し訳ない。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も性能低すぎるような。
そして、姫野ベンチのランキングに乗ってるマシンは何であんなに速いんだろ?
カーネルのチューニングとかも必要なのだろうか
827 :
login:Penguin :03/12/14 22:02 ID:lf80yPW7
>826 私も姫野benchをwindows xpでバイナリとiflでコンパイルした物を両方 動かしてみましたが、バイナリでは600を超えるのにiflで造った方は350前後 しか出ませんでした。(ifl7.1,8.0/P4-3GHz) やはり何か工夫が必要なのでしょうかね。 体感的にはこの数字ほどiflが遅いようには思えないのですが。
828 :
login: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とどっちがよいでしょうか?
830 :
login:Penguin :04/01/01 01:21 ID:po+KK1Hr
atlasをがんばって生成するより、libgoto使ったほうが効果てきめん。 ただ、IA-64用のlibgotoはZHEGVでエラーが出る。よろしく後藤さん!!
ifcはUnsupported版あるけど、MKLは30day evaluationのみなのね。なんだか生殺し。
LAPACKもなかなか構築できんし。
>>829 さん有用な情報が入手できたら教えて下さい
>>831 atlasじゃだめなの?atlasはlapack+blasですよ。
> 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をサポート! これなら まぁまぁ新しいのでインストールに耐えるような
834 :
831 :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 を書きました。
// しょーもない動機でスマソ。 同じ様な考えの方いらっしゃいます?
835 :
login:Penguin :04/01/12 01:10 ID:Tb0eKosV
コンパイラの出来はINTEL最高、MKLも良いし、チューニングツールも極めて よいものだ。だが、32ビットアドレスはもういい加減にせま過ぎる、 かといってイタニウムのシステムはコストパフォーマンスがWS並に悪い。 ではAMD64かといえば、こちらはコンパイラが高かったりまだボロい。 AMD64用のGCCもF77も大きな配列を(MALLOCなどでダイナミックに取る のではないかぎり)まだまともに扱えないバグがコンパイラにもリンケージ エディターにもある。なんといってもF90が無料で手にはいらない。。。
>>835 >コンパイラが高かったりまだボロい
ボロいのソースとかはある?それともまだ枯れてないっていう一般的な話?
# 断じて煽りではないです。念の為
AMDはソフトウェアが「無い」と思っていたんですけど、実はいくつか出てるんですね。 MKL/IPPなどまで揃ってる Intelに対して、AMDの、 ・AMD CodeAnalyst? Performance Analyzer ・AMD Core Math Library あたりってどーなんですかね。
>>837 ちょい話はずれるが、それよりも鉄板なコンパイラが欲しいよね。
ライブラリはnetlibからなんとかできなくもないし
>>838 んだねー、渇望されている通り、コンパイラがしょぼい。
gcc3.3.1はちゃんと動くバイナリを吐くけど、性能があんまり劇的にいい訳でも無いし。
そういえば、Athlon64で -m64でもパフォーマンス上がらないので
疑問に思い物理レジスタの数を調べてみたら、
Pentium4: 128本
Athlon: 70
Pentium3: 60
くらいあるらしく、そりゃユーザから見えるレジスタが増えたところで
パフォーマンスにはあんま関係ないよな、と思った今日この頃。
昨今の CPUは滅茶苦茶に手強い_| ̄|○
840 :
login: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を呼ぶしかない。
>>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 が使用可能。
844 :
831 :04/01/14 18:40 ID:+Zlg5/9m
>>842 おおー、いいページだ。早速やってみます。どうもありがとう!
845 :
三つの女の子 :04/01/14 22:41 ID:zTMOLIO4
2チャンにしては良いページでしょう。 うまく行かなかったらまた書き込んでください。 本当は自分のHPで板を作りたかったのですが、素性が分かってしまいますので…。 ifc7.1では static でリンクしないと駄目です(駄目ではないのですが -lg2c しなくても良いと言うことで)。
846 :
login: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 で配列がアクセスできるようになっているのって、あんまり聞いたことがない。
847 :
login:Penguin :04/01/21 14:45 ID:nsDVVSKG
これからマシンを組むのですが、 ifortはfedoraで動きますか?
新規インストールのfedoraにver8.0.039は入らなかった。 rpmを展開するところでコケる。 で、試しにver7.1の最新版1.038を入れてみたら入った。 コンパイルも無問題。実行速度はまだVer7.1が速いから 結果としてウマ〜でした。 しかし何でVer8の方が遅いのかなぁ...
RH9なマシンにver8を入れておいて、その後fedoraにうp。 Pen4 2.4C+kernel2.6.1smpで、ifort の -parallel オプションを 指定すると10〜20%速くなる。まだifc7.1より少し遅いけど 自動並列化ってスゴイのね。Hyper-Threadではなくて ホンモノsmpマシンなら期待できるのかな。 しかし time コマンドが smp に対応してないから user > real とかになってしまう。他のコマンドってあります?
smpに対応したtimeコマンドって何?
852 :
login:Penguin :04/01/25 11:52 ID:CmZotflg
>>850 ifc7で-parallel付けるとどうよ?
ifc8で-parallelの性能が良くなったってこと?
853 :
login:Penguin :04/01/25 17:55 ID:qimvXVp1
AMD64 用のオブジェクトを吐くようにはしてはもらえないかなあ、無理だろうな。
>>853 そら囲い込みのためにやってるのに、無理っしょw > AMD64
姫野ベンチに -parallelだとコア吐いてしぬ。
「こんな速くなるよ!」といういいサンプルないかな
>845 嶋ベンチはどう?
>>851 プロセッサごとの user time を表示するヤツとか。
>>852 ifc7 -parallel だと、プロセスはフォークするけど実行は1cpuのみで、
topでみても cpu は合計でも最大 100% の user 時間
ifc8 -parallel だとちゃんと2cpuで実行する。topでみると cpu の state は
合わせて 170% とかになってる。
857 :
login:Penguin :04/01/27 12:54 ID:ManW0tcR
himenoBMTでifort -parallel付けてもコアを吐くことは無いけれど, 2CPUで計算している様子は無い.
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
859 :
login:Penguin :04/01/29 01:30 ID:PQwhYO8S
複素対称ですか? エルミート対称ではなくて? なんだか大変そうだな。
複素数の対称行列って意味だけど?? モノは普通のバンド計算のハミルトニアン。 で、-parallel をつけても並列実行できないケースもありますね。 コンパイラが理解できるようにソースをイジらないとダメかな。
ifcって並列化のためにソースに埋め込むコンパイラ指示子ってあったっけ? ないならOpenMPのほうてっとり早いような。 自動並列と共存できるし。
862 :
login:Penguin :04/01/31 01:39 ID:jAz+y1nc
複素の対称行列の場合には、どうやって対格化するんですか? エルミート対称の場合はハウスホルダー法+帯2分法が使えますが。。。 そうじゃないと、ヘッセンベルグ行列と格闘しなくちゃいけなくなる。
普通のハミルトニアンだらハーミッチャンね。 プレミアにある最新パッチを当てたけど 速度はほとんど変わらなかった。 早く -xP オプションを試してみたい...
864 :
login:Penguin :04/02/03 09:26 ID:r050Aky7
複素数の対称行列(対称位置の要素の値が等しい) 「1 I とか 「I 1+I I 1」 1+I 2」 複素数のエルミ-ト行列 (対称位置の要素は複素共役になっている.対角は実) 「1 -I I 1」
865 :
login:Penguin :04/02/04 12:49 ID:v2Gz3VMd
ifcのバージョンによって計算結果が違うということを 発見した人いない?
ifortでGAMESSをcompするときに-nothreadsをつけないと P4のsmp環境で変な値になって計算が終了してしまう。
867 :
login:Penguin :04/02/04 21:08 ID:v2Gz3VMd
>>866 それは良くある。シリアル計算で経験した人居ない?
特にifc7.0と7.1の差とかで。
>866、867 俺もifc7.0はSMP環境で自作コードでよくコケた覚えあり。 ifc7.1や8.0では今のところ問題は出ていないです。 バージョンの差で思い出したが Linux版よりWin版の方が速いことが多い。
870 :
login:Penguin :04/02/11 16:59 ID:SOp8ep6l
ifortですが real(8) A(16384,16384) でエラーになってしまいます。 配列のサイズを 2147483647 バイト以上に とることはできないのでしょうか?
>>870 はい。kernel-2.4の制限です。2.6にして、64bitCPUを使えってことだ
872 :
login:Penguin :04/02/12 03:20 ID:e8ytX48l
Ifc or ifortの自動並列化が上手く行かないので OpenMPでプログラム書いているんだけど,イマイチしっくりこない. Segmentation faultでコケる. 大体,シリアルのコードで-openmpのオプションを入れるだけで Segmentation faultってのが悲しい... 一般的な原因って何?
873 :
login: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文を指定してないなら必要ないと思うけど。とりあえず
# 大学の教員や学生だとこの辺、結構疎かったりするし
>>871 やはりイタニュームにしなければダメなんでしょうか。
オプテロン+ifortで2Gの壁を越えられるのかな。
875 :
872 :04/02/13 19:52 ID:jUuueHLP
>>873 先生と呼んでいいですか?
配列で,動的割付けにしたら自動並列化(-parallel)の計算が出来た.
が,激オソ.ifc7もifc8も
Openmp化に挑戦するも,ホットスポットが複雑で並列化できていない.
firstprivateは勉強になりました
>>873
876 :
875 :04/02/16 20:45 ID:NS7IhB+L
単純なループ(例えば1次元配列の1重ループ)なんかでも並列化されると,非常に遅くなる. このあたりifcは並列化の判定って的確に行われていない気がする.
>875 遅くなるでしょそりゃ。 単純なループなら、ifcでベクトル化効くでしょ、1CPUで。 それを、並列化すると、CPUやメモリが競合する。その辺のオーバヘッドを 吸収できるぐらいループが非常に長くないと並列化しても遅いよ。 単純なループだとメモリバンド幅が速度を決めてるから、2CPUで計算すると 1CPUあたりのメモリバンド幅はむしろ小さい。そして、そのオーバーヘッドが あるからね。Xeon Dualじゃ2つのCPUがフルに動いたらメモリバンド幅は足らない。 世の中のPCクラスタがDualが多いのはコストの問題。本当はほとんどの人がXeonじゃなくて Pen4の1CPUで組みたいはず。 と言うわけで、多くの場合並列化して速くなるのはメモリバンド幅がボトルネックに ならないアルゴリズムかもしくは金に糸目をつけない高メモリバンド幅のベクトル機 です。
>単純なループなら、ifcでベクトル化効くでしょ、1CPUで 31段パイプラインのプレスコットでHTを切って使うのが最強ですか?
>>878 検証中だけどなんかぷれすこっと最強っぽ
880 :
876 :04/02/17 02:08 ID:M3p9TlaG
>>877 Intelのコンパイラは自動並列化の時に,並列化した方が速いか否かの
判定をやってないんじゃないかということです.
‘並列化できるところはすべて並列化’これじゃ自動並列化の意味はないよ.
881 :
877 :04/02/17 07:10 ID:DFESNBGH
>880 それはそうでしょ。 自動並列といってもコンパイラが、自分のシステム(CPUやメモリ)の速度を 考慮しながら並列化するほどインテリジェンスじゃないです。
882 :
877 :04/02/17 07:27 ID:DFESNBGH
補足 >‘並列化できるところはすべて並列化’ たぶんこれに近いことしてると思うよ。すべては言い過ぎかもしれないけど。 その辺の微妙なとことろはコンパイラのバージョンによりけりだから いまいち好きじゃない。だから、自動並列化の意味はないよって意見に賛成です。 個人的には、MPIでプロセス並列のみにして計算部分は単純にするほうが速いと思う。 共有メモリでOpenMP、分散メモリでMPIのハイブリッド並列しても全部MPIより返って 遅くなることの方が多いし。OpenMPや自動並列の実装は、各社まだまだです。
883 :
876 :04/02/18 00:59 ID:SlIfMtFY
>>882 自動並列化のコンパイラ,ちゃんとしているところはちゃんとしていると思う.
NEC,IBM,自社専用のコンパイラだが.
PGIはどうなんだろう.x86系のコンパイラでがんばっている.
884 :
877 :04/02/18 03:15 ID:c50dLcC0
>883 私はスパコン系では、IBM以外のコンパイラをほとんど使用していますが、 まだまだなものが多いです。NECも。(マイナーバージョンアップで並列されないループ ができてしまい、10倍近く遅くなった経験あり。 高々、マイナーバージョンアップで。。。。解決策は次のバージョンアップを待つしかなかった。) ちなみに、NECの自動並列はOpenMPベースじゃないらしい。 自動並列やめて、OpenMPやMPIをガリガリ書こうよ。 その方が速い。ガリガリ並列を書く人を最近はほとんど見かけない。
886 :
876 :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でメモリバンド幅が狭いことが難点.
計算には向かないと思う.
887 :
877 :04/02/20 01:15 ID:1CBoErdx
>866 NEC SXの自動並列は844に書いたように良くないですよ。 ただ、自動並列の中では一番まともかもしれない。 私は、自動並列はその件があって以来、ほとんど使いません。 OpenMPやMPIで書いてます。がんばれば、自動並列よりも高速です(それが楽しいわけだが 私も前者ですね。安定性を取ります。そして、PC本体以上のお金をネットワークに 注ぎ込む。Infinibandかmyrinet、金が余りすぎていたらQsNetかな。 いずれにせよ、大規模クラスタはPC本体よりネットワークに金がかかる。 ギガビットイーサじゃ16台以上のクラスタでお話になりません。
IA-32e≒AMD64なのを知って、K8WとOpteronを衝動買いしてしまった。 ifcでコンパイルしたコードが高速に動きますように、な〜むぅ〜。 -O3 -xW -tpp7 でオッケーかしらん。
889 :
877 :04/02/20 21:10 ID:1CBoErdx
>888 暇があったら、-fast(-staticと-ipo)も付けてみてください。 さらに暇があったら、GCCでの結果も希望。 さらに金があったらPGIコンパイラでの結果を希望。
891 :
876 :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
892 :
876 :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 です.
893 :
877 :04/02/21 23:08 ID:jfxu6FCf
>891 おお!素晴らしい。姫野ベンチの比較ありがとうございます。 PC Wa○chに載ってる比較よりも、姫野ベンチの方がとっても参考になります。 Prescottはキャッシュが大きいのでキャッシュミス無しは速い。 逆に言うとキャッシュが大きくレイテンシが大きいので キャッシュミスした時のペナルティも大きい。 予想通りですね。
894 :
877 :04/02/21 23:11 ID:jfxu6FCf
>892 himenoベンチは、キャッシュ容量が大きい方が有利なので 傾向は正しいけど、1.86倍も高速なのは驚きですね。クロックも低いのに。 プレスコット最適化オプション-xWNはどうですか? また、姫野ベンチは-tpp6の方が速いです。 時間があったらトライしてみてください。
895 :
876 :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の本領が発揮されていない気がします.
896 :
877 :04/02/22 13:05 ID:E0CmsZKJ
>895様 早速のご報告ありがとうございます。 しかも、3.2XEまで付けてくださいまして。お金持ちなのですね。 3.2XEはあまり良くないですね。3.4GHzと比較してわずか50MFLOPSしか変わらない。 これで、5万以上の価格差があると考えてしまいます。L-3はレイテンシがかなり遅いんでしょうね、 Prescottの大容量L-2が1.4倍ものスコアを出しているのがそれを物語ってる気がします。
ひさしぶりに 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 で コンパイルしてみた。 とても速い。びっくり。
898 :
877 :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回行ったが傾向は同じ)
恐るべし・・・
899 :
877 :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を真に理解できている効果ですね。
うーむ、そのご Prescott & ifc/icc 8 -tpp7の報告が続かないのが怖いw
ちょいと流れからはズレて恐縮ですが、、、 数値計算な皆様はどんなライブラリを使ってらっしゃるのでしょうか? 私は MKL+FFTW(既存のものとの互換用)+netlib みたいな体制ですが、 Absoft附属のIMSLみたく、suiteになっているのがちょっぴり羨しい今日この頃 # NAG高杉
>>900 続かないといわれても、姫野ベンチの報告はもうでてるわけだし。
各人のコードの結果を出してもあんまり参考にならないでしょ?
ちなみにわたすのコードもやっぱりPrescott+ifc8でずば抜けて速いでつ。
>902 おれんとこのコードではNorthWood比で5%くらいしか速くならなかった。 姫野ベンチだけの瞬間最大風速かと思ってたよ。 ちなみにPrescottでもifc7の方が速かった。
904 :
876 :04/03/06 00:07 ID:Z82muOUR
>>903 コードによって変わるのは当たり前のことだと思う.
要は自分のコードが速くなってくれるかどうかが一番重要なのよ.
ただ先人の評判を受けて,コードを見直すというのもまた賢いかも...
>>902 姫野ベンチ以外にもベンチは沢山あるし、
実用アプリケーションだって山ほどあるでしょ?
無いとは思うが、ifcが姫野ベンチチューニングした可能性だってあるわけだし(w
そういう意味で他の人の評価は知りたい
おお、速いね。Lサイズもプリーズ。 SSE3の水平加算が効いてるのかな?
907 :
876 :04/03/06 21:59 ID:Z82muOUR
>>905 それは無いよ.
でもバイナリバージョンのが何でコンパイルされているか知ってる人いない?
absoftのものだとずっと思っているんだけど.勝手な想像で.
>>907 バイナリバージョンって姫野ベンチWINDOWS版の?
いまstringsしてみたけどCompaq Visual Fortranぽい
909 :
907 :04/03/06 23:48 ID:Z82muOUR
>>908 ムム.
言われてみれば,確かにソースファイルの方にも
Visual Fortran用のオプションがあったが・・・
Visual Fortranで試したんだけど,バイナリ版の値と違うことがあって違うと思ってしまった.
910 :
login:Penguin :04/03/07 00:24 ID:G3X0GupN
姫野ベンチのソース見てみたけど、メモリアクセスのスピードで 決まってしまうような気がする。
911 :
907 :04/03/07 01:00 ID:Pa2HfQiU
>>910 科学技術計算では,メモリアクセス速度は重要よ!
912 :
login:Penguin :04/03/07 02:12 ID:G3X0GupN
メモリ帯域幅をはかるベンチでいいんじゃねーの?w
おまいらメモリの帯域幅なのかレイテンシなのかはっきりしる ちなみに姫野ベンチはstreamベンチとあんまり相関なかった記憶があるけど streamはメモリ帯域測定ベンチマークね
914 :
877 :04/03/07 19:46 ID:xbMHGdvr
>913 同じマザーや、メモリを使って、姫野ベンチを測定すれば、 メモリバンド幅は同じでしょ、northwoodでもprescottでも。 だから、キャッシュのレイテンシの話になっていると思うのですが。 streamもメモリバンド測定ベンチと言われているが、ようは使い方。 同じメモリバンド幅で、CPUを変えて測定すればレイテンシの影響が測定できる、 メモリバンド幅も変わってしまうような環境間で使えば、 それは、メモリバンド幅を相対的に測るベンチとなるんでは?
>>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
もしかして配列サイズとか調整しないといけないのかも。 だれか知ってる人がいたら教えてください。
で、結局Prescottがどういうケースで速くなって、どういうケースでは 速くならないのか考察してみたヤシはいないの? 今んとこ姫野ベンチ以外に具体例が無いから、いまいち信用できん。 速くなったケースではどんな問題を解いてる?
>>917 水平加算でマトリックス系は全般的に速いんでない?
元々メモリ帯域は広かったし。
>>918 メモリ帯域が変わらないのに速くなったってことは、
プリフェッチまわりが単純なマトリックス演算向けに
チューニングされたとか、そういうことかなあ。
920 :
login:Penguin :04/03/09 07:44 ID:gY50bzfC
Opteron+SuSE x86_64にicc,ifort (ia32)入れたんですけど、 ライブラリをリンクするとき怒られまう。 もしかして32bit用のOSにしないといけないんですか?
>>920 リンカにi386アーキテクチャだよって教えてやればよかったはず。
うろ覚えだが、-Xlinker -melf_i386 とかでどうよ?
ifc 8 (ifort?) の評判が芳しくない様ですが、常用するには 7.1 の方が良いの? 今から登録するんで、7.1のダウンロードができるかどうかわからんですが、、、 偉い人教えて下さらないでしょうか?
924 :
877 :04/03/16 23:35 ID:3osCDUTp
>923 7.1と8は共存可能なので、両方をインストールして 安定した方を常用するのがベストだと思います。
925 :
923 :04/03/17 01:29 ID:nVb2lKwj
926 :
login:Penguin :04/03/23 17:41 ID:MZPvskmd
age
927 :
jj :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やらが違うだけです. (キャラクタベースで計算のため,余分なモノもいれていない) 何か考えられる原因がありましたら,ご教授頂けないでしょうか?
928 :
jj :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)
929 :
jj :04/03/31 22:19 ID:7a9Jd4Eb
927の自己レスです. カーネルを2.4,24にアップデートして無事解決しました. (Pentium1機では動いていたのが謎ですが)
930 :
login:Penguin :04/03/31 22:22 ID:NtEOVCsn
P4 で動かせば コンパイラは P4 に最適化した オブジェクトを吐こうとしますよね。 コンパイルオプションで 66Mhz Pen 用の オブジェクトにさせてはどうでしょうか。 また、4行は大きいので 男はだまって END 文。だけではどうでしょう。
保守あげ
保守あげ
933 :
login:Penguin :04/05/08 11:56 ID:006/DMWD
Prescott2.8Ghz+ifc8でhimeno_sベンチなんだけど1400Mflopsぐらい出ます. でも自作コードだとPen4 2.8Ghzに1割以上負けちゃうんだよな〜 なかなか扱いが難しい. それと3.0Ghz程度にオーバークロックしてもhimenobmtの数値が ほとんど上がらない傾向にあるんだけど,なんでだか分かる人います? そんな経験ないっすか?
久しぶりの書き込みです。 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(中古)が来たので色々試している最中です。)
>933 姫野ベンチは、演算も重要だがそれ以上にメモリ周りが効いてくる。 プレスコットで姫野ベンチが早いのはL2大容量(+SSE3)と思ってますが、 オーバークロックしてメモリの周波数が下がったら、それらの恩恵は 薄まるのでは? オーバークロックしてメモリの周波数が下がってない? あと、sサイズだとプレスコットではキャッシュインしている可能性がある。 キャッシュインしたら、オーバークロックしてメモリの周波数が上がったとしても、 そんなにスコアはあがらないと思う。 姫野ベンチはメモリ-CPU間を計っているようなもんだからなぁ。。。
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の場合が遅い!!
続き 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%
このテストでは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)。
939 :
login: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. となるのですがこれはベクトル化不可能と考えてよいのでしょうか。
940 :
login:Penguin :04/05/29 02:18 ID:ltoFE3kC
どうだろか、もう8.0 は十分に信頼に足りる程に安定になったと言えるかな? 以前出始めの頃に、コンパイルの間違いと性能の劣化で、しばらく手を出さないで 置いたのだが、どうですか?
私はIA32ではNorthwood coreのP4を使用してますが, v7.1用にチューニングしたコードではv8.0は性能が全然でません。 それまでVectorizedされていた部分が,のきなみPartial vectorizedになってしまって 全く×です。使い物になりません。 v8.0でVectorizedになるように書換えるのはあまりにも多くの作業が必要で(数値計算ライブラリが50万ラインある)やってられません。 ですから, IA32: v7.1 IA64: v8.0 で使用してます。 Prescott coreを使用している人の情報をお願いします。
Linux magazine 7月号 >今回評価したAbsoft社のFortranは、一部のプログラムでは >GNU Fortranより低い性能しか出せませんでしたが、 おいおい
MKL6.1 for Linux の30日体験版を落としたんだけどこれって製品版から BLASとかの中身が省略されているものなんでしょうか? 今までのMKLだとコンパイル(リンカ)が通ってたプログラムが定義されてない関数が残ってるっていうエラーはいて止まる。 それ以前にライブラリ自体が見つからない。libmkl_p4.aなんかはlibmkl_p4.soにファイル名が変更されてたけど・・・
944 :
login:Penguin :04/06/19 17:05 ID:hcBGH92p
MKLのクラスタ向きバージョンがリリースされた模様。 ScaLapackをサポートしたらしい。 # インテルのIA32の64ビット拡張アーキテクチャー向きのコンパイラは いつでるのだろうか? それはAMD64用にはうまく動かないように なっているのだろうか? はたして。。。
945 :
login: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と違いすぎ。 誰か簡単な一覧作ってくれ。
946 :
945 :04/06/20 19:00 ID:1lntWs6/
というわけでどうもライブラリを-lで指定するのではなくソースコードと同じように並べるみたい。 Intelのサイトのどっかにmklの使い方のドキュメントがあったはず。 それより誰か実行時デバッグのオプション教えてくれ。
947 :
login:Penguin :04/06/22 00:44 ID:4JCCOPeW
AMDもフリーでコンパイラ出してくれりゃいいのに。
948 :
login:Penguin :04/06/22 00:49 ID:4JCCOPeW
シングルスレッドのプログラムをマルチスレッドに勝手に コンパイルするコンパイラってない?
( ゚д゚)ポカーン
>>947 コンパイラは知らないけど、ライブラリかなんかは出してなかったっけ?
>>947 う〜ん、ifort でコンパイルしたやつもはしるけど激オソ。
行列の対角化のルーティンだと Opteron 1.4G の速さは
Northwood 3G の半分くらい。ifort の x86-64版が出ると
差は縮まるのかな。
( ゚д゚)ポカーン
954 :
login: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
>>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)
957 :
957 :04/06/23 20:39 ID:Hm7j1sae
>>955 >>956 さっそくにレスありがとうございます.
>>956 さんがおっしゃるとおりにすると,C++コンパイラの更新情報は出てくるのですが,
Fortranの方が出てこないのです.Fortranの方も登録してあるのですが...
#現に, 3月の時点では件のパッチのお知らせがメールで届いているんです.
じつをいうと,4月でメールアドレスが変更になっていて,それをPremier Support
の個人情報に反映させてはいるのですが,それが原因なのかもしれません.
いずれにせよ,
>>955 さんから教えていただいたアドレスに問い合わせを出してみようと
思います.
#英語で書くのが欝出し...
958 :
login:Penguin :04/06/25 11:10 ID:KGqHK0Va
Intel Fortranでオーバーフロー時に止まるオプションってありませんか? compaq Fortranで -fpeみたいなの。 ユーザーズガイドでは見あたりませんでした。
959 :
955 :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,
あなたの名前
960 :
login: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等で高速化するにはどうすればよいですか? 自動ベクトル化してくれるように、ベクトル化するように明示的に指示すればよいのか、 それとも、そもそもこういったループはベクトル化できないのかアドバイスをください。
>>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
EM64T付きXeon、ついにリリースされましたね。Intel compilerももう対応してるんでしょうか?
巨大メモリ空間が魅力で、数値計算用にOpteron*2を検討してたけど、
Noconaがえらく早い&安いで登場しちゃって困惑してます。
>>885-887 と若干かぶりますが、今から非クラスタ構成な数値計算マシンを導入
するなら、「ちょい待ち」を差し引いてもコンパイラの観点でNocona有利なのでしょうか?
それとも初物ということで見送りが吉?
識者の方々の御意見を伺いたく存じます。
>>964 お、うちもほぼ同じ状況(^^;で、うちはもうちょっと新Xeon関係のベンチが出揃うまで待ちとなりますた。
個人的にはOpteron希望なんですが、数値計算関係でガチで比較してるサイトがあったら教えてください。
966 :
login:Penguin :04/07/02 03:21 ID:iy/dn6d5
AMD64 を 32bit モードの環境で使用している人に尋ねたい。 インテルのコンパイラで何か不自由がありますか? 性能はインテルの物よりも落ちますか? (CPUクロックが同等の場合)
967 :
957 :04/07/04 12:44 ID:LOPpPOnO
>>959 ありがとうございます.なんと御礼を申してよいものやら...
さっそくに,コピペして送ります.
多謝
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からユーザ登録してライセンスを取得しなければいけないのでしょうか? インストール経験者の方などいらっしゃいましたら、どうかお教えください。
970 :
969 :04/07/11 16:10 ID:v7VsnVj5
すいません、sage忘れました。 ご容赦ください。
製品版なら発売元に聞けば?
ライセンスのファイル名は l_cpp_xxxxxxxx.lic l_for_xxxxxxxx.lic の様な感じだった気がする。
>>969 >Webからユーザ登録してライセンスを取得しなければいけないのでしょうか?
うん
>>971-973 ありがとうございました。
確かにオンライン登録してから送られてくるライセンスが必要でした。
本当に助かりました。
fftw3 を icc,ifc でコンパイルしているのだが、lib*so ができない a はできるんだがなあ、何が悪いんだろう
--with-shared-libsとか--with-static-libsみたいなのを忘れてるとか
977 :
975 :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.
ってあるのが、心配。
autotoolsがiccでのPICの作り方を知らないから。 libtool-1.5で作り直さないと。