以下は JE2BWM ほかが作成した翻訳 です。 原文は University of California より GFDL で配付されており、 この翻訳も GFDL に従います。
原文: More about benchmarks   (翻訳対象の更新日付は 7:17 PM UTC, December 09 2004 です)。

ベンチマークについての追加情報

boinc.gif
(英語のみ)

ベンチマークの値をどう計算しているか

'Whetstone' はベンチマークの名前の一つで、その測定値は 参加者ごとの [Show computers] ウェブページに、 'Measured floating point speed' と表示されている値です。 'Dhrystone' もベンチマークの名前の一つで、その測定値は 'Measured integer speed' という欄に表示されています。 Floats は、小数部分をもつ数 (例: 1.48283 とか 3.141592)を指し、 Integers は整数(例: 1, 2, 938283 、2004など)を意味します。 Whetstone ベンチマークは、8種類の異なるテスト(もちろん繰り返し実行します) を実施して、完了までにかかる時間を測り、 [実施した演算回数]/[経過時間] を計算して結果とします。 これらのすべてのテストで、テストされる CPU の浮動小数点演算を使います。 いくつかのテストは単純な計算(加算、掛け算、割り算)ですが、 他のテストでは、三角関数と指数関数(sin, cos, tan, exp)を計算しています。 Dhrystone ベンチマークは、整数演算の繰り返しと オペレーティングシステムのファイル操作をいくつか検査します。

これらのどちらのベンチマークも、 そのシステムがメモリにどれだけの速度でアクセスできるかは検査しません。 そのメモリに、(たとえば) SETI@home は、とても多くアクセスしています。

メモリアクセスのために遅れが生じる例をあげましょう。 Pentium 4 CPU は、どんな速度のものであれ、 ある角度の sin の値を、内部クロックで 約 170 周期で計算できます。 この時間の間に、通常のレジスタ間の整数加算なら 170 回できます。

しかし、(たとえば数値の表を扱っている場合など)、 CPU の外のメモリ上にある数値で整数加算をしようとすると、 メモリ上の整数値を CPU まで持ってくるのに、 260 周期 ほど CPU は待たねばならないかもしれません。 ですから、悪いタイミングで実行された 整数 + メモリ 演算は、 1回の sin の計算よりもはるかに長い時間を要しかねません。

この点で、Celeron CPU は計算が遅くなります。 Pentium には CPU がメモリアクセスする時点を予測する仕組みがたくさんついていて、 CPU がメモリの内容を使って計算を実際に行うよりもかなり前に、 メモリアクセスを開始するようになっています。 この仕組みのおかげで、Pentium では多くの場合メモリ操作での遅延がとても少なく抑えられます。

なぜ 「推定時間」が実際とあわないことがあるのか

各計算機に配られたワークユニットには、浮動小数点演算(FP)の予想回数が含まれています。 BOINC は、この値をベンチマークで得た結果で割って、完了までの時間を推測します。 SETI@home のワークユニットでは、予想回数は現在いつでも 27.9 × 1012 という値ですが、 実際の浮動小数点演算の回数は大きくばらつくので、計算が終了するまでの時間は変化します。

SETI@home の計算は、ほとんど全部が、単精度浮動小数点演算ですが、 Whetstone はすべて倍精度浮動小数点演算で測定しています。 Intel x86 プロセサでは、単精度でも倍精度でも速度の差はあまりありません。

SETI@home は、加算、減算、掛け算、割り算を主に使います。 計算時間の 約 20% が三角関数の計算に使われます。 [一方、] Whetstone のほとんどすべての時間は、三角関数計算に使われています。

多くのシステムで、ベンチマーク結果と SETI@home の実際の処理速度とが 釣り合っていないのは、メモリアクセス速度と三角関数計算の件が大きな理由です。

この記事については、Ben Herndon さんに感謝します。

 


BOINCの訳のメインページに戻る | (原文のメインページに戻る)
 

最終更新時刻 00:46:40, 2006年08月12日(JST)
Copyright © 2010 University of California. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
Copyright © 2010 Komori Hitoshi(je2bwm at jarl.com). Japanese translation from English web pages on BOINC. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.