
コンピューティングにおいて、ベンチマークとは、コンピュータプログラム、プログラムセット、またはその他の操作を実行して、オブジェクトの相対的なパフォーマンスを評価する行為であり、通常はそれに対していくつかの標準的なテストと試行を実行します。[1]
ベンチマークという用語は、入念に設計されたベンチマーク プログラム自体の目的でもよく使用されます。
ベンチマークは通常、 CPUの浮動小数点演算パフォーマンスなど、コンピュータ ハードウェアのパフォーマンス特性を評価することに関連していますが、この手法がソフトウェアにも適用できる場合があります。ソフトウェア ベンチマークは、たとえば、コンパイラやデータベース管理システム(DBMS) に対して実行されます。
ベンチマークは、さまざまなチップ/システムアーキテクチャにわたるさまざまなサブシステムのパフォーマンスを比較する方法を提供します。継続的インテグレーションの一環としてのベンチマークは、継続的ベンチマークと呼ばれます。[2]
目的
コンピュータ アーキテクチャが進歩するにつれて、さまざまなコンピュータ システムのパフォーマンスを、その仕様を見るだけで比較することが難しくなりました。そのため、異なるアーキテクチャを比較できるテストが開発されました。たとえば、Pentium 4プロセッサは一般にAthlon XPやPowerPCプロセッサよりも高いクロック周波数で動作しますが、これは必ずしも計算能力が高いことを意味するわけではありません。クロック周波数が遅いプロセッサの方が、高い周波数で動作するプロセッサと同等か、それ以上のパフォーマンスを発揮する場合があります。BogoMipsとメガヘルツ神話を参照してください。
ベンチマークは、コンポーネントまたはシステム上の特定の種類のワークロードを模倣するように設計されています。合成ベンチマークは、コンポーネントにワークロードを課す特別に作成されたプログラムによってこれを行います。アプリケーション ベンチマークは、システム上で実際のプログラムを実行します。アプリケーション ベンチマークは通常、特定のシステムでの実際のパフォーマンスをより正確に測定しますが、合成ベンチマークは、ハード ディスクやネットワーク デバイスなどの個々のコンポーネントをテストするのに役立ちます。
ベンチマークはCPU 設計において特に重要であり、プロセッサ アーキテクトは、マイクロアーキテクチャの決定において、測定とトレードオフを行うことができます。たとえば、ベンチマークがアプリケーションの主要なアルゴリズムを抽出する場合、そのアプリケーションのパフォーマンスに影響する側面が含まれます。この非常に小さなスニペットをサイクル精度のシミュレータで実行すると、パフォーマンスを向上させる方法のヒントが得られます。
2000 年より前、コンピュータおよびマイクロプロセッサの設計者は、SPEC を使用してこれを実行していましたが、SPEC の Unix ベースのベンチマークは非常に長く、そのまま使用するには扱いにくいものでした。
コンピュータ製造業者は、実際の使用では再現されないベンチマーク テストで非現実的なほど高いパフォーマンスを発揮するようにシステムを構成することが知られています。たとえば、1980 年代には、一部のコンパイラは、よく知られている浮動小数点ベンチマークで使用される特定の数学演算を検出し、その演算をより高速な数学的に同等の演算に置き換えることができました。しかし、1990 年代半ばにRISCおよびVLIWアーキテクチャによって、パフォーマンスに関連するコンパイラテクノロジの重要性が強調されるまで、このような変換はベンチマーク以外ではほとんど役に立ちませんでした。現在、ベンチマークはコンパイラ会社によって定期的に使用され、独自のベンチマーク スコアだけでなく、実際のアプリケーション パフォーマンスも向上させています。
スーパースカラーCPU、VLIW CPU、再構成可能なコンピューティングCPU など、多数の実行ユニットを持つ CPU は、同じくらい高速なトランジスタで構築されている場合、1 つまたは 2 つの実行ユニットを持つシーケンシャル CPU よりもクロック レートが遅くなるのが一般的です。それでも、多数の実行ユニットを持つ CPU は、高速とされる高クロック レート CPU よりも短時間で実際のタスクやベンチマーク タスクを完了することがよくあります。
利用可能なベンチマークが多数あるため、メーカーは通常、自社のシステムが他のシステムよりも優れていることを示すベンチマークを少なくとも 1 つ見つけることができます。また、他のシステムは別のベンチマークで優れていることを示すことができます。
メーカーは、自社製品を最も魅力的に見せるベンチマーク(またはベンチマークの側面)のみを一般的に報告します。また、自社製品を最も魅力的に見せるために、ベンチマークの重要性を誤って伝えることも知られています。これらの慣行をまとめて、ベンチマーケティングと呼びます。
理想的には、アプリケーションが利用できない場合、または特定のプロセッサやコンピュータ システムに移植するのが困難またはコストがかかりすぎる場合にのみ、ベンチマークを実際のアプリケーションの代用として使用する必要があります。パフォーマンスが重要な場合、重要なベンチマークはターゲット環境のアプリケーション スイートのみです。
機能性
ベンチマークソフトウェアの機能には、パフォーマンスの経過をスプレッドシートファイルに記録/エクスポートする機能、折れ線グラフや色分けされたタイルを描画するなどの視覚化、プロセスを一時停止して最初からやり直さずに再開できるようにする機能などがあります。ソフトウェアには、その目的に固有の追加機能がある場合があります。たとえば、ディスクベンチマークソフトウェアは、ディスク全体ではなくディスクの指定された範囲内でディスク速度の測定を開始したり、ランダムアクセスの読み取り速度と待ち時間を測定したり、指定された間隔とサイズのサンプルを通じて速度を測定する「クイックスキャン」機能を備えていたり、データブロックサイズ(読み取り要求ごとに要求されるバイト数)を指定したりすることができます。[3]
課題
ベンチマークは簡単ではなく、予測可能で有用な結論に到達するまでに、多くの場合、複数の反復ラウンドが必要になります。ベンチマーク データの解釈も非常に困難です。一般的な課題の一部を次に示します。
- ベンダーは、業界標準のベンチマークに合わせて自社製品を調整する傾向があります。Norton SysInfo (SI) は、主に複数の操作の速度に重点を置いているため、調整が特に簡単です。このような結果を解釈する際には、細心の注意を払ってください。
- 一部のベンダーはベンチマークで「不正行為」をしていると非難されている。つまり、ベンチマークの数値をはるかに高くする行為を行って、実際のワークロードを悪化させているのだ。[4]
- 多くのベンチマークは、計算パフォーマンスの速度にのみ焦点を当てており、次のようなコンピュータ システムの他の重要な機能は無視されています。
- 生のパフォーマンス以外のサービス品質。測定されないサービス品質の例には、セキュリティ、可用性、信頼性、実行の整合性、保守性、スケーラビリティ (特に、容量を迅速かつ中断なく追加または再割り当てする機能) などがあります。これらのサービス品質の間には実際のトレードオフが存在することが多く、ビジネス コンピューティングではすべてが重要です。トランザクション処理パフォーマンス カウンシルベンチマーク仕様では、 ACIDプロパティ テスト、データベース スケーラビリティ ルール、およびサービス レベル要件を指定することにより、これらの懸念に部分的に対処しています。
- 一般的に、ベンチマークは総所有コストを測定しません。トランザクション処理パフォーマンス カウンシル ベンチマーク仕様では、簡略化されたTCO式を使用して、生のパフォーマンス メトリックに加えて価格/パフォーマンス メトリックを報告する必要があることを指定することで、この問題に部分的に対処しています。ただし、コストは必然的に部分的であり、ベンダーはベンチマーク専用に価格設定し、非常に特殊な「ベンチマーク スペシャル」構成を人為的に低価格で設計することが知られています。ベンチマーク パッケージから少しでも逸脱すると、実際の使用では価格が大幅に高くなります。
- 設備の負担 (スペース、電力、冷却)。 電力消費量が増えると、ポータブル システムのバッテリー寿命が短くなり、充電の頻度も増えます。 消費電力やスペースを多く消費するサーバーは、冷却の制限など、既存のデータ センター リソースの制約内に収まらない可能性があります。 ほとんどの半導体は切り替えを高速化するためにより多くの電力を必要とするため、実際にはトレードオフがあります。ワットあたりのパフォーマンスも参照してください。
- メモリが大きなコストとなる一部の組み込みシステムでは、コード密度を高めることでコストを大幅に削減できます。
- ベンダーのベンチマークでは、開発、テスト、および災害復旧コンピューティング能力の要件が無視される傾向があります。ベンダーは、初期取得価格をできるだけ低く見せるために、生産能力に厳密に必要なことだけを報告します。
- ベンチマークは、広範囲に分散されたサーバー、特にネットワーク トポロジーに特に敏感なサーバーに適応するのに苦労しています。特に、グリッド コンピューティングの出現により、一部のワークロードは「グリッド フレンドリー」ですが、他のワークロードはそうではないため、ベンチマークが複雑になっています。
- ユーザーは、ベンチマークが示すパフォーマンスの認識とはまったく異なる認識を持つ場合があります。特に、ユーザーは予測可能性、つまり常にサービス レベル アグリーメントを満たすかそれを超えるサーバーを高く評価します。ベンチマークでは、最悪の場合の最大応答時間 (リアルタイム コンピューティングの観点) や低い標準偏差 (ユーザーの観点)ではなく、平均スコア (IT の観点) が重視される傾向があります。
- 多くのサーバー アーキテクチャは、使用率が高レベル (ほぼ 100%) になると大幅に低下します (「急激に低下」)。ベンチマークでは、この要因を考慮する必要があります (ただし、考慮されないことがよくあります)。特にベンダーは、サーバー ベンチマークを継続的に約 80% の使用率で公開する傾向があり (これは非現実的な状況です)、そのレベルを超えて需要が急増した場合にシステム全体に何が起こるかを文書化していません。
- 多くのベンチマークは、他のアプリケーションを除外して、1 つのアプリケーション、または 1 つのアプリケーション層に焦点を当てています。現在、ほとんどのデータ センターでは、さまざまな理由から仮想化が広範に実装されており、ベンチマークは、複数のアプリケーションとアプリケーション層が統合サーバー上で同時に実行されるという現実にまだ追いついていません。
- バッチ コンピューティング、特に大量の同時バッチ コンピューティングとオンライン コンピューティングのパフォーマンスを測定するのに役立つ高品質のベンチマークはほとんどありません (あったとしても)。バッチ コンピューティングは、月末や会計年度末などの期限前に長時間実行されるタスクを正しく完了するという予測可能性に重点を置く傾向があります。重要なコア ビジネス プロセスの多くはバッチ指向であり、請求処理など、今後もおそらくずっとそうでしょう。
- ベンチマーク機関は、基本的な科学的方法を無視したり、それに従わないことがよくあります。これには、サンプルサイズが小さい、変数の制御が不十分、結果の再現性が限られているなどが含まれますが、これらに限定されません。[5]
ベンチマークの原則
ベンチマークには7つの重要な特性があります。[6]これらの重要な特性は次のとおりです。
- 関連性: ベンチマークでは、比較的重要な機能を測定する必要があります。
- 代表性: ベンチマーク パフォーマンス メトリックは、業界および学界で広く受け入れられる必要があります。
- 公平性: すべてのシステムは公平に比較される必要があります。
- 再現性: ベンチマーク結果を検証できます。
- 費用対効果: ベンチマーク テストは経済的です。
- スケーラビリティ: ベンチマーク テストは、低から高までさまざまなリソースを備えたシステム全体で機能する必要があります。
- 透明性: ベンチマーク メトリックは簡単に理解できる必要があります。
ベンチマークの種類
- 実際のプログラム
- ワードプロセッサソフトウェア
- CADツールソフトウェア
- ユーザーのアプリケーションソフトウェア(MISなど)
- ビデオゲーム
- ChromiumブラウザやLinuxカーネルなどの大規模プロジェクトをビルドするコンパイラ
- コンポーネントベンチマーク / マイクロベンチマーク
- コア ルーチンは、比較的小さく特定のコード部分で構成されます。
- コンピュータの基本コンポーネントの性能を測定する[7]
- レジスタの数、キャッシュサイズ、メモリ レイテンシなどのコンピューターのハードウェア パラメーターの自動検出に使用できます。
- カーネル
- キーコードを含む
- 通常、実際のプログラムから抽象化される
- 人気のカーネル: リバモアループ
- linpack ベンチマーク (FORTRAN 言語で記述された基本的な線形代数サブルーチンが含まれています)
- 結果はMlop/sで表されます。
- 合成ベンチマーク
- I/Oベンチマーク
- データベースベンチマーク
- データベース管理システム (DBMS) のスループットと応答時間を測定する
- 並列ベンチマーク
- 複数のコアやプロセッサを搭載したマシン、または複数のマシンで構成されるシステムで使用される
共通ベンチマーク
業界標準(監査済み、検証可能)
- ビジネス アプリケーション パフォーマンス コーポレーション (BAPCo)
- 組み込みマイクロプロセッサベンチマークコンソーシアム (EEMBC)
- 標準性能評価機構(SPEC)、特にSPECintとSPECfp
- トランザクション処理パフォーマンス評議会(TPC):DBMSベンチマーク[8]
オープンソースベンチマーク
- AIM マルチユーザー ベンチマーク– 任意の UNIX タイプの OS 上の特定のコンピュータ機能をシミュレートする「負荷ミックス」を作成するために組み合わせることができるテストのリストで構成されています。
- Bonnie++ – ファイルシステムとハードドライブのベンチマーク
- BRL-CAD – マルチスレッド レイ トレーシング パフォーマンスに基づく、クロスプラットフォームのアーキテクチャに依存しないベンチマーク スイート。VAX-11/780 を基準とし、相対的な CPU パフォーマンス、コンパイラの違い、最適化レベル、一貫性、アーキテクチャの違い、オペレーティング システムの違いを評価するために 1984 年から使用されています。
- Collective Knowledge –ボランティアが提供するハードウェア間でのユーザーワークロード(ディープラーニングなど)のベンチマークと最適化をクラウドソース化する、カスタマイズ可能なクロスプラットフォームフレームワーク
- Coremark – 組み込みコンピューティングベンチマーク
- DEISA ベンチマーク スイート– 科学 HPC アプリケーション ベンチマーク
- Dhrystone – 整数演算性能。DMIPS (Dhrystone 1 秒あたりの百万命令数) で報告されることが多い。
- DiskSpd –コンピュータファイル、パーティション、またはストレージデバイスに対してさまざまなリクエストを生成するストレージベンチマーク用のコマンドラインツール
- Fhourstones – 整数ベンチマーク
- ヒント– CPUとメモリの全体的なパフォーマンスを測定するために設計されています
- Iometer – 単一システムおよびクラスター化システム用の I/O サブシステム測定および特性評価ツール。
- IOzone – ファイルシステムベンチマーク
- LINPACKベンチマーク– 従来はFLOPSの測定に使用されていた
- リバモアループ
- NAS 並列ベンチマーク
- NBench – 整数演算、メモリ操作、浮動小数点演算のパフォーマンスを測定する合成ベンチマークスイート
- PAL – リアルタイム物理エンジンのベンチマーク
- PerfKitBenchmarker – クラウド オファリングを測定および比較するためのベンチマーク セット。
- Phoronix Test Suite – Linux、OpenSolaris、FreeBSD、OSX、Windows 向けのオープンソースのクロスプラットフォーム ベンチマーク スイート。このページには、実行を簡素化するための他のベンチマークも多数含まれています。
- POV-Ray – 3Dレンダリング
- Tak (関数) – 再帰パフォーマンスをテストするために使用されるシンプルなベンチマーク
- TATP ベンチマーク– 通信アプリケーション トランザクション処理ベンチマーク
- TPoX – XML データベースの XML トランザクション処理ベンチマーク
- VUP (VAX パフォーマンス単位) – VAX MIPSとも呼ばれる
- Whetstone – 浮動小数点演算のパフォーマンス。多くの場合、1 秒あたりの Whetstone 命令数 (MWIPS) で報告されます。
Microsoft Windows ベンチマーク
- BAPCo : MobileMark、SYSmark、WebMark
- クリスタルディスクマーク
- アンダーライターズ・ラボラトリーズ (UL) : 3DMark、PCMark
- 天国ベンチマーク
- ピファスト
- 重ね合わせベンチマーク
- スーパーPI
- スーパープライム
- バレーベンチマーク
- 砥石
- Windows システム評価ツールは、Windows Vista 以降のリリースに含まれており、消費者がシステムを簡単に評価するための指標を提供します。
- ワールドベンチ(廃止)
その他
- AnTuTu – 携帯電話や ARM ベースのデバイスでよく使用されます。
- Byte Sieve - もともと言語パフォーマンスをテストしていましたが、マシンベンチマークとしても広く使用されています。
- Creative Computing Benchmark –さまざまなプラットフォーム上のBASICプログラミング言語を比較します。1983 年に導入されました。
- Geekbench – Windows、Linux、macOS、iOS、Android 向けのクロスプラットフォーム ベンチマーク。
- iCOMP – Intelが発行するIntel比較マイクロプロセッサパフォーマンス
- コーンストーン
- パフォーマンス評価– AMD と Cyrix が競合製品と比較した相対的なパフォーマンスを反映するために使用するモデリング スキーム。
- Rugg/Feldman ベンチマーク- 1977 年の最も初期のマイクロコンピュータ ベンチマークの 1 つ。
- SunSpider – ブラウザの速度テスト
- VMmark – 仮想化ベンチマーク スイート。
参照
- ベンチマーキング(ビジネス観点)
- 功績の数字
- ロスレス圧縮ベンチマーク
- パフォーマンス カウンター モニター
- テストスイート – ソフトウェアプログラムが特定の動作セットを持っていることを示すためのテストケースのコレクション
参考文献
- ^ Fleming, Philip J.; Wallace, John J. (1986-03-01). 「統計で嘘をつかない方法: ベンチマーク結果を正しく要約する方法」Communications of the ACM . 29 (3): 218–221. doi : 10.1145/5666.5673 . ISSN 0001-0782. S2CID 1047380.
- ^ Grambow, Martin; Lehmann, Fabian; Bermbach, David (2019). 「継続的なベンチマーク: ビルドパイプラインでのシステムベンチマークの使用」。2019 IEEE国際クラウドエンジニアリング会議 (IC2E)。pp. 241–246。doi :10.1109 / IC2E.2019.00039。ISBN 978-1-7281-0218-4. 2023年12月3日閲覧。
- ^ ソフトウェア: HDDScan、GNOME ディスク
- ^ Krazit, Tom (2003). 「NVidia のベンチマーク戦略の再評価」IDG ニュース。2011 年 6 月 6 日時点のオリジナルよりアーカイブ。2009年 8 月 8 日閲覧。
- ^ Castor, Kevin (2006). 「ハードウェアテストとベンチマーク方法論」。2008年2月5日時点のオリジナルよりアーカイブ。2008年2月24日閲覧。
- ^ Dai, Wei; Berleant, Daniel (2019 年 12 月 12 ~ 14 日)。「現代のディープラーニング ハードウェアとフレームワークのベンチマーク: 定性的指標の調査」(PDF)。2019 IEEE 第 1 回国際認知機械知能会議 (CogMI) 。米国カリフォルニア州ロサンゼルス: IEEE。pp. 148 ~ 155。arXiv : 1907.03626。doi : 10.1109 /CogMI48466.2019.00029 。
- ^ Ehliar, Andreas; Liu, Dake. 「ネットワーク プロセッサのベンチマーク」(PDF)。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ トランザクション処理パフォーマンス評議会 (1998 年 2 月)。「TPC の歴史と概要」。TPC。トランザクション処理パフォーマンス評議会。2018年 7 月 2 日閲覧。
さらに読む
- グレイ、ジム編 (1993)。データベースおよびトランザクション システムのベンチマーク ハンドブック。Morgan Kaufmann データ管理システム シリーズ (第 2 版)。Morgan Kaufmann Publishers, Inc. ISBN 1-55860-292-5。
- Scalzo, Bert; Kline, Kevin; Fernandez, Claudia; Burleson, Donald K.; Ault, Mike (2007)。Oracleおよび SQL Serverのデータベース ベンチマークの実践的手法。Rampant TechPress。ISBN 978-0-9776715-3-3。
- ナンビア、ラグナス、ポエス、マイクル編(2009)。パフォーマンス評価とベンチマーキング。シュプリンガー。ISBN 978-3-642-10423-7。
外部リンク
- Lewis, Byron C.; Crews, Albert E. (1985). 「コンピュータ性能評価技術としてのベンチマークの進化」 MIS Quarterly 9 ( 1): 7–16. doi :10.2307/249270. ISSN 0276-7783. JSTOR 249270.日付: 1962-1976
