intel compiler for Linux
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
01/11/29 17:53ID:5k7yf0aiintel 社の 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 ページからダウンロードしてくるファイルが違うだけです。)
ダウンロードする際に入力したメールアドレスにインストール時に必要となる
ライセンスキー情報が送られてきます。
00022
01/11/29 17:56ID:u2JQMD7w0003login:Penguin
01/11/29 17:56ID: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 のコンパイラを入れる。
たずねてくるディレクトリパスなどはデフォルトを選んでください。変えることもでき
ますが、その場合はあとの説明はそれに伴って多少変わります。
0004login:Penguin
01/11/29 17:57ID: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
------------------ おわり
といったぐあいです。 (ライセンスのキーの番号は実際とは変えてあります。)
0005login:Penguin
01/11/29 17:57ID:5k7yf0aiSTEP-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
----------------------------------- 説明終り ------------------------------
0006login:Penguin
01/11/29 17:59ID:5k7yf0ai0007login:Penguin
01/11/29 18:34ID:PuKXBXW90008
01/12/04 03:10ID:fMxgF1K0インテルやAMDのCPUの最適化コンパイラ(C++、Fortran)として
メーカー自身として相当に出来がよいコードが出ると思うのだけど。
もちろん金持ちなら、有料サポート版をダウンロードして100ドル
払って使えばよいんだけど。
0009
01/12/06 02:04ID:tn79Zt8Sもっと高いらしい。無料版はお得だ。
0010
01/12/14 02:45ID:Up+Fx3Ox誰も関心なんかないんだよ。
0011login:Penguin
01/12/14 02:48ID:XZsmMjBh0012
02/01/12 16:22ID:9PdOKLGW0013login:Penguin
02/01/12 17:14ID:WmNIzC2/動作早くなるの?
0014login:Penguin
02/01/13 00:40ID:xXzex+Lk0015login:Penguin
02/01/13 01:07ID:w26vCzhJ細かく指定できるね。
だれかベンチマークとか取った人いないかな
0016login:Penguin
02/01/13 02:00ID:GjoeUszrコンパイルオプションは
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
0017login:Penguin
02/01/13 02:05ID:GjoeUszrhttp://www.tux.org/~mayer/linux/results2.1.html
0018login:Penguin
02/01/13 03:39ID:xXzex+Lklinux-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
0019login:Penguin
02/01/13 04:10ID:E8w4+80xiccでコンパイルしたOpenSSH(+OpenSSL)は落ちまくりで使いものにならな
かった。
0020login:Penguin
02/01/13 04:17ID:ZL7ol7tmOpenSSLで2.1倍速だそーだ。
ttp://moso.borogrammers.net/moso/diary/?200110c&to=200110253#200110253
0021login:Penguin
02/01/13 16:15ID:lTcEUkeD休み明けに試してみるよ。
f90がただだなんてうれしい。
0022login:Penguin
02/01/13 16:47ID:ZL7ol7tm動かない事が結構あるのはForteと同じ。
0023デフォルトの名無しさん
02/01/13 18:41ID:8S0ngHZJいっている意味が分からない。
0024login:Penguin
02/01/13 18:59ID:E8w4+80x002523
02/01/13 19:03ID:8S0ngHZJ0026login:Penguin
02/01/13 20:24ID:E8w4+80xそそ。あとお馬鹿なconfigureやMakefileをだます手間とか。
0027login:Penguin
02/01/13 20:33ID:E8w4+80x0028login:Penguin
02/01/13 20:56ID:C6zTZ+z/0029
02/01/13 21:53ID:B/8pwAaqDebianでも動いた。
0030login:Penguin
02/01/13 22:46ID:Yar5iLcv誰かiccでLAPACKコンパイルして漏れにクレsage
っていうか自分でやってみるヨ!!できたらレポするね!!
pen4使いならこういうのも
ttp://www.hpc.co.jp/IA-Dev/IADEV-ATLAS.htm
あるんだが…
0031login:Penguin
02/01/14 03:20ID:02BADL4c003230
02/01/14 03:36ID:MfJpktDa取り敢えず手元にあったblaslapack(出どころ不明品)をifcで -O3 -tpp6 ぐらいで make
してみてこれまた手元にあったプログラムでDSYEVで100x100実対称行列
対角化してみたら激オソ。つか止まらん。
ちなみに同じ事をtitpackっていうのでもためしてみたが、-O3より-Oの方が
速かった。たぶんソースとニラメッコかつコンパイルオプション手探り
の可能性あり。
ただし行列の掛け算見たいな単純なDOループのを-O3 -tpp6 でやってみると
2倍高速化。
取り敢えず途中経過まで。
003332
02/01/14 03:59ID:MfJpktDaスマソ。これじゃ何言ってるか解らんな。
linux-2.4.16 ,glibc-2.2.4, RH7JベースでPen!!!800のSMP.
>2倍高速化
というのは g77 -O5 -mpentiumpro -march=pentiumpro -funroll-loops
との比。
今からlapackのソース見る気にならないのでまた次回
blasからじわじわ攻めていきます。
0034login:Penguin
02/01/19 00:04ID:9x31aMrp出てるね。math kernel library
(mkl)として。pgfortranのlapack
より2倍はやい(p4 rambusで)。
0036
02/01/19 04:15ID:EPNncPjOものはいまのところないと思う。AMDとの差別化のために力入れている
ようであります。AMDはこういった面での総合的なサポートが無いのが
残念だ。GNUに金でも出して、AMDのCPU向けの最適化を入れてもらうとか、
64ビットCPU向けのコードも出せるようにすればいいのにね。
0037login:Penguin
02/01/19 08:35ID:CcBGA9H/すると internal error で落ちる。Pentium III にすれば
コンパイルはとおる。
ATLASはgccで十分っていうかソースがアセンブラみたいな感じやからな。
0038login:Penguin
02/01/19 08:39ID:CcBGA9H/Lapack コンパイルしましたが。
なんかな、コンパイラの責任かどうかしらんが、
止まらないルーチンがある。今調査中。
複素数対角化だったっけルーチン名は失念。
g77 (gcc-2.95.3) だと一応結果は出たけど。
おりゃ不安定だと思ってるが。
0039login:Penguin
02/01/19 09:06ID:CcBGA9H/ATLASをIntel Fotranから使うにはひと工夫必要。
というのもg77のオブジェクトと Intel Fortran のオブジェクト
は同時にリンクできないからだ。ってIntelの西都に
書いてあるんだけどね。
詳しくはttp://130.54.33.30/~maho/Computer/quantum_chemistry/Gaussian98_linux_ifc.html
対角化はそんなには速くならん気がするが。
004034
02/01/19 09:20ID:9x31aMrpLIBS= -L/opt/intel/mkl/lib/32 -lmkl_lapack -lmkl_p4 -L/usr/lib/ -lpthread
で解決したよ。mklのdocには書いてないけど、
/usr/lib/libpthread
をリンクしないと正常に動かない。
0041login:Penguin
02/01/19 11:13ID:/efnsvv4試してみる前ですまぬがこれってintel fortranの
オブジェとリンクはできますよね。
マジ感謝してます。ありがとう!!!!!
mkl とってこないとだめかぁ。
がんばりまっす。
(私FreeBSD の方が好きだからできればFreeBSDでも
出してくれないかなぁ...)
0042login:Penguin
02/01/19 11:20ID:/efnsvv4しかしながらatlasの方が速いと聞くとちょっと
やっぱりなんちゅうかそちらの方を使いたくなりました。
しかし安定度が低い。
0043login:Penguin
02/01/19 11:46ID:/efnsvv4今MKLでコンパイルやってます。
0044login:Penguin
02/01/19 12:21ID:0xxlGOpp早かったけど。今のところ、800x800の
複素エルミート行列の対角化の速さは
pgfortran+pgfortlanのliblapack,libblas<
g77+redhat7.1についてきた/usr/lib/のblas,lapack<
ifc+mkl
でした。g77とifcの差は微妙。atlasの効果は
あまりなかったのは、/usr/libに入ってた
lapack,blasが十分最適化されていたからと
思われ。
0045login:Penguin
02/01/19 13:02ID:/efnsvv4これはすばらしい。
こっちは万単位の対角化ですわ。だからシビアなんですよね。
直接ではないけど。
とりあえず、atlasは結構バグっぽいんで使いたくない。
最近真面目にベンチは取っていないが g77 コンパイラフラグを
いろいろがんばればよいみたいなのを知って。gcc-3.0.xは
最適化は最近はどうなったかご存じですか?そもそもLapackとかでも
対角化はあまり最適化が効かないみたいですね。笑うのがg77で
最適化を全部取ってしまうと一桁以上計算時間がかかる。
pen4+rambusですか。すごいっすね。こっちはPenIIIなんすよ。
なんかデスクトップにあるようなしょうもないやつのほうがpenIVで、
今ならこっちが速かったりして :-)
アライメントの問題どうしてます?(すれちがいですまそ)
0046login:Penguin
02/01/19 13:22ID:9j0IMkFvないんだけど、ifcだと
-O3 -tpp7
というようにcpuごとに最適化するのがありました。
pp7はpen4でpenIIIはpp6だったかな?
compaqの-tune ev67のようなものですね。
直接対角化でないというと、lanczosですか?
ところでアラインメントの問題とは?
0047login:Penguin
02/01/19 13:51ID:/efnsvv4Davidson の対角化です。
僕も一応その程度ですが最適化のオプションはいじっています。
なぜかアドレスエラーが頻発するのであんまり高度にはしていません。
アラインメントは
ttp://quanta.synchem.kyoto-u.ac.jp/~maho/FreeBSD/FreeBSD_compiler.html
ですわ。前から指摘されたらしいが僕も偶然気がついた。
Linuxにもあって、fortranでもcommand line の
スタックはそのままアラインされるんで、問題はあると思う。
fortranやintel fortranだとどうなるんだろう?
そうそう先程atlasがバグっぽいといったがウソです。
すいません。MKLを使っても全く同じエラーが出た。
今最適化をすべてオフにして挑戦中。
■ このスレッドは過去ログ倉庫に格納されています