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

intel compiler for Linux

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin01/11/29 17:53ID:5k7yf0ai

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

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

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

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

ダウンロードする際に入力したメールアドレスにインストール時に必要となる
ライセンスキー情報が送られてきます。
0002201/11/29 17:56ID:u2JQMD7w
2get
0003login:Penguin01/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:Penguin01/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:Penguin01/11/29 17:57ID: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

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

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

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

compiler : gcc version 2.95.4 20011006 (Debian prerelease)
libc : unknown version
MEMORY INDEX : 2.123
INTEGER INDEX : 1.902
FLOATING-POINT INDEX: 4.386
0017login:Penguin02/01/13 02:05ID:GjoeUszr
おっと nbench のサイトを書き忘れた。
http://www.tux.org/~mayer/linux/results2.1.html
0018login:Penguin02/01/13 03:39ID: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
0019login:Penguin02/01/13 04:10ID:E8w4+80x
暗号関係のコードは、iccやはりかなり早くなるんだけど、俺が試した限りでは
iccでコンパイルしたOpenSSH(+OpenSSL)は落ちまくりで使いものにならな
かった。
0020login:Penguin02/01/13 04:17ID:ZL7ol7tm
>15,19
OpenSSLで2.1倍速だそーだ。
ttp://moso.borogrammers.net/moso/diary/?200110c&to=200110253#200110253
0021login:Penguin02/01/13 16:15ID:lTcEUkeD
貴重な情報だ。
休み明けに試してみるよ。
f90がただだなんてうれしい。
0022login:Penguin02/01/13 16:47ID:ZL7ol7tm
SunのForteよりはgcc用のコードのコンパイルしやすいね。
動かない事が結構あるのはForteと同じ。
0023デフォルトの名無しさん02/01/13 18:41ID:8S0ngHZJ
>>22
いっている意味が分からない。
0024login:Penguin02/01/13 18:59ID:E8w4+80x
ごめんな。
00252302/01/13 19:03ID:8S0ngHZJ
あ、わかった。gcc拡張を利用したコードを、ってことだな?
0026login:Penguin02/01/13 20:24ID:E8w4+80x
>>25
そそ。あとお馬鹿なconfigureやMakefileをだます手間とか。
0027login:Penguin02/01/13 20:33ID:E8w4+80x
誰かiccでmozillaコンパイルして漏れにクレage
0028login:Penguin02/01/13 20:56ID:C6zTZ+z/
バイナリgetしたままrpmにするの忘れてました。
0029               02/01/13 21:53ID:B/8pwAaq
Vine2.1.5でもRH6.2相当として動いた。
Debianでも動いた。
0030login:Penguin02/01/13 22:46ID:Yar5iLcv
>>27
誰かiccでLAPACKコンパイルして漏れにクレsage

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

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

そ、そなんですか…参考になります。
忙しくて全く手つけて無かったからダメージは小さいのですが(藁
0036 02/01/19 04:15ID:EPNncPjO
Pentium4やXeonの為の最適化では、インテル社製のコンパイラに勝る
ものはいまのところないと思う。AMDとの差別化のために力入れている
ようであります。AMDはこういった面での総合的なサポートが無いのが
残念だ。GNUに金でも出して、AMDのCPU向けの最適化を入れてもらうとか、
64ビットCPU向けのコードも出せるようにすればいいのにね。
0037login:Penguin02/01/19 08:35ID:CcBGA9H/
どーもな、Fortran のほうはたまに Pentium IV 最適化
すると internal error で落ちる。Pentium III にすれば
コンパイルはとおる。
ATLASはgccで十分っていうかソースがアセンブラみたいな感じやからな。
0038login:Penguin02/01/19 08:39ID:CcBGA9H/
>>30
Lapack コンパイルしましたが。
なんかな、コンパイラの責任かどうかしらんが、
止まらないルーチンがある。今調査中。
複素数対角化だったっけルーチン名は失念。
g77 (gcc-2.95.3) だと一応結果は出たけど。
おりゃ不安定だと思ってるが。
■ このスレッドは過去ログ倉庫に格納されています