Intelコンパイラicc ベンチマーク



IntelCompilerとは

  • Intelが作ってるコンパイラ
  • IntelのCPU用にいろいろ最適化が行われるためパフォーマンスが向上する

IntelCompilerのインストール

  1. Intel® C++ Compiler for Linuxのダウンロードページからダウンロードできます。容量が200MB近くあるので注意が必要です。
  2. 個人利用の場合は、「Free Non-comercial Download」を選択します。
    Intel Compiler ダウンロード

    Interl Compiler ダウンロード

  3. 注意事項に「Accept(同意)」します
    Intel Compiler ダウンロード

    Intel Compiler ダウンロード

  4. インストール
    $ ./install.sh
    $ source /bin/iccvars.sh(.csh)
    $ source /bin/idbvars.sh(.csh)
  5. 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

コンパイルオプション

コンパイルオプションは-O3フラグのみ。

gccの場合のオプション

$ export CFLAGS=”-O3″; ./configure; make

iccの場合のオプション。環境変数CCにiccを指定すればiccでコンパイルされる。

$ export CC=icc; CFLAGS=”-O3″
$ ./configure; make

ベンチマーク結果

結果、iccのほうが16%ほど多くページを表示できた。CC=iccとするだけでも、とりあえず効果はあるようだ。
Apacheの速度がボトルネックになっている場合には、iccを試してみる価値はあると思う。

gccとicc比較

gccとicc比較

参考文献


参考URL

Leave a Reply

You must be logged in to post a comment.