![]() |
HPC/並列プログラミングポータルでは、HPC(High Performance Computing)プログラミングや並列プログラミングに関する情報を集積・発信しています。 |
[記事一覧を見る]
このようにしてコンパイルしたMySQLを先の公式版バイナリとまったく同様の設定でセットアップ・起動し、sql-benchを実行した結果が次の表6、図2である。alter-tableテストについては公式のインテル コンパイラー版よりもパフォーマンスが低下したものの、insertテストやconnectテストについてはパフォーマンスの向上が見られた。また、wisconsinテストによるSQLコマンドごとのパフォーマンス結果については、全体的にはパフォーマンスの向上が見られたものの、項目によっては公式版のほうがパフォーマンスが良い、という結果になったものもあった。
ベンチマーク項目 | インテル コンパイラー版 | 公式GCC版 | |
---|---|---|---|
自作版 | 公式版 | ||
alter-table | 29.3秒 | 18.3秒 | 31.7秒 |
ATIS | 3.3秒 | 3.7秒 | 3.3秒 |
big-tables | 3.3秒 | 3.0秒 | 4.0秒 |
connect | 48.3秒 | 50.0秒 | 50.7秒 |
create | 252.0秒 | 248.0秒 | 249.0秒 |
insert | 618.3秒 | 648.3秒 | 662.7秒 |
select | 44.0秒 | 44.7秒 | 59.0秒 |
wisconsin | 3.3秒 | 4.0秒 | 3.7秒 |
操作 | 所要時間(秒) | ||
---|---|---|---|
インテル コンパイラー版 | GCC版 | ||
自作版 | 公式版 | ||
alter_table_add | 13.0 | 7.3 | 13.7 |
alter_table_drop | 12.3 | 7.7 | 13.3 |
count_distinct_big | 2.3 | 3.7 | 3.7 |
count_on_key | 9.3 | 9.3 | 11.3 |
delete_all_many_keys | 65.7 | 78.0 | 77.7 |
delete_big_many_keys | 65.7 | 78.0 | 77.7 |
insert_key | 125.7 | 137.3 | 140.3 |
once_prepared_select | 11.0 | 12.7 | 12.7 |
prepared_select | 16.7 | 16.3 | 18.0 |
select_cache2 | 25.7 | 26.0 | 39.7 |
select_key | 26.0 | 30.3 | 27.0 |
select_key2 | 27.3 | 32.7 | 28.7 |
select_key2_return_key | 26.7 | 30.3 | 27.3 |
select_key2_return_prim | 27.0 | 31.7 | 28.0 |
select_key_prefix | 27.0 | 32.3 | 28.0 |
update_of_key | 28.7 | 6.7 | 21.0 |
update_of_primary_key_many_keys | 42.3 | 42.0 | 37.0 |
以上のように、インテル コンパイラーでコンパイルしたMySQLバイナリは、sql-benchにおいてGCCでコンパイルしたものと比べ高いパフォーマンスを発揮していることが分かった。特にinsertやselectといった操作はより高速に実行できる可能性がある。
ただし、実運用環境においては必ずしも大きな差が出るとは限らない点には気を付けてほしい。たとえば、MySQL向けの簡易ベンチマークとして、mysqlbenchというものがあるが、こちらのベンチマーク結果では、インテル コンパイラー版とGCC版とではほとんどパフォーマンスに差が見られなかった。このmysqlbenchはTPC-Bと呼ばれる、バッチ処理をイメージした単純なトランザクションのパフォーマンスを測定するもので、どちらかというとI/Oパフォーマンスが重視されるベンチマークだからだと思われる。
この点を考慮しても、インテル コンパイラー版のMySQLバイナリはGCC版バイナリ以上のパフォーマンスが期待できると考えて良いだろう。また、MySQLに限らず、ほかのデータベースシステムでもインテル コンパイラーを利用することで高速化が期待できる。もちろん、世の中のすべてのプログラムがインテル コンパイラーで高速化できるわけではないが、もし高いパフォーマンスが要求されるアプリケーションが必要な場合、一度インテル コンパイラーでのコンパイルを試してみてはいかがだろうか。
なお、インテル コンパイラーの最新情報や採用事例などはインテルのWebサイトでも公開されている。インテル コンパイラーに興味を持たれた方は、ぜひこちらも参照してほしい。
[ページ情報]
更新日時: 2009-11-18 20:35:45, 更新者: hiromichi-m
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー