article

ベンチマーク (benchmark) は、本来は測量において水準となる点を示す語。転じて指標銘柄や標準価格をあらわす。

また、特にコンピュータ分野において、各種の処理能力を測定する行為を指す。また、性能測定のための特別なプログラムベンチマークプログラムまたはベンチマークソフトウェアと呼ぶ。パソコン3D処理能力を演算するベンチマークソフトなどがある。新製品のCPUビデオカードの性能比較などに利用されることが多い。また、ソフトウェアの性能を比較する場合もベンチマークという用語が使われる。たとえば、コンパイラの性能比較やデータベースマネジメントシステムの性能比較などである。

ベンチマークは、異なる部品構成やアーキテクチャのシステムであっても、様々な観点で性能を比較する手段を提供する。

一般的な語句の使い方として、ベンチマークを行う行為を「ベンチマークを取る」と呼ぶ。また、ベンチマークを略して「ベンチ」と呼ぶこともある。

用途


コンピュータ・アーキテクチャが進化するにつれ、その仕様を見ただけでは各種コンピュータの性能を比較することが難しくなってきた。そのため、異なるシステム上で動作できるテストプログラムが開発されてきた。そのようなテストを実行した結果を比較することで異なるアーキテクチャの性能を比較するためである。たとえば、インテルPentium 4プロセッサと同程度の演算性能を示すAMDAthlon XPプロセッサは動作周波数が(Pentium 4 よりも)低い。つまり、同じベンチマークテストを実行したとき、AMD の動作周波数の低いプロセッサとインテルの動作周波数の高いプロセッサが同程度の結果を示すのである。

ベンチマークは特定の負荷状況を再現するよう設計されている。元からベンチマーク用に開発されたプログラムは意図的にそのような負荷を作り出す。普通のアプリケーションをベンチマークとして使う場合もあり、この場合はそのアプリケーションの負荷が再現される。アプリケーションを使ったほうが実際の性能をよく表しているが、システム内の特定の部品の性能(ディスク性能、ネットワーク性能など)を測定したい場合などには専用ベンチマークプログラムが使われることが多い。

マイクロプロセッサの設計において、ベンチマークは測定手段となると共に回路化すべき部分の重要な判断基準となる。たとえば、あるベンチマークがあるアプリケーションのアルゴリズムの鍵となる部分を抜き出したものだった場合、そのベンチマークはそのアプリケーションの性能に大きな影響を与える部分を抜き出したものと考えることができる。そのような小さなプログラムをシミュレータで動作させることによって、性能を向上させる手がかりを得ることができる。

2000年ごろまで技術者はSPECを設計時に使っていたが、SPECは非常に大きいプログラムであり、シミュレータで動作させるには適していなかった。1998年、Markus Levy と半導体企業12社は EEMBC(Embedded Microprocessor Benchmark Consortium、組込みプロセッサベンチマーク協会)を設立し*、組込み市場向けのベンチマークを標準化した。これによってSPECよりも小さなプログラムで性能的に問題となるアルゴリズムに注目した測定が可能となった。半導体企業が測定したベンチマーク結果はEEMBCで検証および認定後、公表可能となる。EEMBC は組み込み用プロセッサが益々低消費電力化していくことから、電力消費のベンチマークを標準化しようとしている。

コンピュータ企業はこれまで実性能とかけ離れた非現実的なベンチマーク性能を提示してきた。たとえば、1980年代のコンパイラには浮動小数点演算のベンチマークによく出てくる特定の操作を意味的には等価だがもっと高速な操作に置き換えるものもあった。しかし、そのような小手先の高速化はベンチマーク以外には通用しない。この状況は1990年代中盤ごろに変わってきた。RISCVLIWアーキテクチャにより、コンパイラ技術が性能に重大な影響を与えることが明らかとなった。現在ではベンチマークはコンパイラ開発で使われることが多い。それは単にベンチマークプログラムの結果を良くするだけではなく、一般のアプリケーションの性能も向上させるために使われている。製造業者はその製品が得意とする分野のベンチマーク結果のみを公表する。このこともベンチマーク結果と実際の性能をかけ離れさせる一因となっている。このような手法を「ベンチマーケティング」などと呼ぶこともある。

ユーザーが製造業者が公表しているベンチマーク結果を使う場合、自分が知っているアプリケーションの負荷に直接関係するベンチマークやなんらかの認証を受けたベンチマーク以外は十分注意する必要がある。ベンチマークは実際のアプリケーションの代替品であり、そのアプリケーションが何らかの理由で使えないときのみ使われるべきものである。性能が最重要課題ならば、実際に使うシステムの負荷をベンチマークとして使う。それが不可能なら実際の負荷になるべく近いベンチマークを使う。そのベンチマークが認証されたものでなければ、慎重さが重要となる。たとえば、同じプログラムで性能を測定しても、入力や負荷状況によって測定結果が逆転することはあり得ないことではない。

プログラミング作業におけるベンチマーク


ある特定の機能を果たすプログラムを書くときに複数の手法が存在した場合、どの手法が最も効率的かを知る上でベンチマークを取る。このときに使うベンチマークは次節以降で紹介される、既成のベンチマークソフトを使うのではなく、下に示すような調査項目を記録できる処理を作成し、それをプログラム中に埋め込んで実行し、計測する。

また、コンパイラの設定によっては同じソースでも実行効率が変わるので、この点を明らかにする際もベンチマークを取ってどれが最善か調べる。特に、多種のCPUアーキテクチャ上で実行されるプログラムを作っているならば、この作業は入念に行う価値がある。

主な調査項目:

ベンチマークの分類


  1. 実際のプログラム
    • ワープロソフト

    1. ユーザーのアプリケーションソフトウェア
  • カーネル(基本的なベンチマーク)
    • 基本的なコードを含む
    • 一般に実プログラムから抽出されたコードを使う
    • 典型例:リバモアループ(Livermore loop)
    • linpack ベンチマーク (FORTRANで書かれた基本的な線形代数サブルーチンを含む)
    • 結果は MFLOPS で表されることが多い
  • 簡単なベンチマーク
    • ユーザーがコンピュータの基本部品を評価するためにプログラムを書くことができる
  • 合成ベンチマーク(Synthetic Benchmark)
    • 合成ベンチマークを作成する手順
      • 多くのアプリケーションを実行して操作の統計情報を得る
      • 各操作の比率を割り出す
      • その比率を元にプログラムを作成する
    • 合成ベンチマークの例:
      • Whetstone
      • Dhrystone
  • 主なベンチマークソフトウェア


    • HDBENCH - CPU, RAM, HDD, グラフィック
    • Dhrystone - 整数演算性能
    • Whetstone - 浮動小数点演算性能
    • SPEC - 総合性能、マルチプロセッサ性能
    • 3DMark - 3D
    • TPC-C - トランザクション性能
    • Linpack - 浮動小数点演算性能

    コンピュータ

    Benchmark | Benchmark (computing) | Benchmark | Benchmark | Benchmark (computer) | Benchmark

     

    This article is licensed under the GNU Free Documentation License. It uses material from the "ベンチマーク".

    Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld