IntelCompilerとは
- Intelが作ってるコンパイラ
- IntelのCPU用にいろいろ最適化が行われるためパフォーマンスが向上する
IntelCompilerのインストール
- Intel® C++ Compiler for Linuxのダウンロードページからダウンロードできます。容量が200MB近くあるので注意が必要です。
- 個人利用の場合は、「Free Non-comercial Download」を選択します。
- 注意事項に「Accept(同意)」します
- インストール
$ ./install.sh
$ source/bin/iccvars.sh(.csh)
$ source/bin/idbvars.sh(.csh) - ldconfigの設定。icc用のライブイラリをライブラリのパスに加える
# vi /etc/ld.so.conf.d/icc.conf
/opt/intel/cc/9.0/lib ← 追記# /sbin/ldconfig
iccのgccとの比較
apache + PHPをgcc/iccでコンパイルし、pukiwikiのindex.phpを1秒間に何回表示できるか計測した。
ベンチマーク環境
| CPU | Intel(R) Pentium(R) 4 CPU 1.60GHz cpuinfo |
|---|---|
| Memory | 512MB |
| OS | CentOS4 Linux 2.6.9-34.EL |
| gcc | gcc バージョン 3.4.5 |
| icc | Version 9.0 |
| apache | Apache/1.3.34 (Unix) |
| pukiwki | 1.4.6 |
| PHP | 4.4.2 (apacheにstatic リンク) |
apacheの設定
KeepAliveをONにしてTCPのハンドシェイクのオーバーヘッドを無視できるようにした。
これでiccの効果をなるべくはっきり示せると思う。
MaxClients 150
KeepAlive On
KeepAlive On
コンパイルオプション
コンパイルオプションは-O3フラグのみ。
gccの場合のオプション
$ export CFLAGS=”-O3″; ./configure; make
iccの場合のオプション。環境変数CCにiccを指定すればiccでコンパイルされる。
$ export CC=icc; CFLAGS=”-O3″
$ ./configure; make
$ ./configure; make
ベンチマーク結果
結果、iccのほうが16%ほど多くページを表示できた。CC=iccとするだけでも、とりあえず効果はあるようだ。
Apacheの速度がボトルネックになっている場合には、iccを試してみる価値はあると思う。
参考文献
参考URL
- 無料で30%のパフォーマンスUP!! – intel compiler
http://www.drk7.jp/MT/archives/000767.html
タグ: Binary, Linux/FreeBSD, ベンチマーク


