[an error occurred while processing this directive]
5.電力効率(e-effic)
戻る
2004/8/18(水)13:19頃執筆開始。
2004/8/19(木) 9:43頃修正(スパコン関係)。
2005/1/5(水)8:42頃修正と追記(SETIのCredit関係)。3章あたりが修正に対応できていないので、新たに全てを書き直す必要がありそうだ。
2005/1/13(木)0:18頃 新たにその2を書きました。といってもかなりコピーしてますが。
1.事の始まり
昔はPCの消費電力で悩むことなんてなかった。「初代」や「Canboo」のころは常時稼動なんてしなかったし、Aptivaを買ってからも、自作し始めてから
も今のような連続稼動状態ではなかった。余談だが、「初代」の消費電力は30W(MAX 180Wと書いてあるが、たぶんディスプレイ込みだろう)、
「Canboo」の消費電力は37W(MAX 75W)である。
しかし、SETI@home、そしてSETI@BOINC(正確にはSETI@home on BOINCとでも言うべきか)のための常時稼動や自宅サーバ運営(これはあまり関係
ない。自宅サーバでもSETI動かしてるし)により消費電力は一気に増大、PCによる電気代だけで約5000円、60000円/年ほどというすさまじい状況に
なってしまった。今まで消費電力についてはあまり気にせずにアップグレードしてきたが、今後はそういうわけにもいかないだろう。そこで、有効な
アップグレードかどうかを見極めるのに「電力効率(e-effic:Electricity-Efficiency)」というのを考えていくことにする。
2.電力効率とは?
ここでは、電力効率(e-effic)とは「あるシステムの最大処理能力をそのシステムの最大消費電力で割ったもの(operations/watt)」と定義する。
つまり、あるPCであるベンチマークを実行したときのスコアが100であり、そのPCの最大消費電力(エージング(負荷耐久)テストなどを行って求めて
おく。エコワットなどが手軽で便利だが、本格的にやるならばクランプメーターなどを使うべきか?)が60Wだった場合、電力効率は100/60≒1.667と
なる。ここで注意しなければならないのは「電力効率は偏差値と同じでテストするもの(ベンチマークソフト)が変われば変化する)」ということだ。
例えば先ほどの例の100というのが整数演算ベンチマークだったとして、今度は浮動小数点演算ベンチマークを行ってスコアが120だった場合、電力効率
は120/60=2となる。つまり、自分が行いたい処理(SETIのようなプロセッサに依存しない処理か、Windows MediaエンコードのようなSSE使いまくりの
Pen4が圧倒的有利な処理か、あるいはCPUはほとんど使わずHDD読み書きしまくりの処理か)を指標にしなければ意味がないということだ。私の場合は
SETI@BOINCが目的なので、SETIの処理能力(BOINCになってからWU毎の誤差が拡大したが、それでもある程度の範囲(極まれに異常に短い時間で終了
するものを除けば)なのでWU処理時間を使っている。Cobblestoneの値から求めることもできるかもしれないが、どうも直接処理時間に比例してない
気がするのでCobblestoneの合計値を使うのが一番いい。が、3章以下については大体のWU処理時間を使っているなので不正確である)を指標に使うこと
にする。
追記:SETIの効率についてだが、BOINCの場合のスコアは
・クライアントがベンチマークを実行して値(Cobblestone)を算出する
・WUを処理する
・Cobblestoneから求められる値×WUの処理時間をCredit(功績)としてサーバに要求(Claimed Credit)
↑これは「約定期日記」1/5に書かれている。ちなみにCobblestoneとはBOINCで使われているDhrystoneとWhetstoneの呼び名。
・サーバに全結果(BOINCでは同じWUを3つしか配布しない)が返ってきたら、その中の中間値を採用し、全クライアントに与える(Granted Credit)
・サーバに2つ以上の結果が返ってきたら、そのうちの低いほうの値を採用し、それらを報告したクライアントに与える?
・サーバに最終的に集まった有効な結果の数が
1の場合:そのスコアを採用し、その結果を計算したクライアントに与える
2の場合:小さいほうのスコアを採用し、それをその結果の元となったWUを計算した全クライアントに与える。
3以上の場合:最小値と最大値を除くスコアの平均を取り、それをその結果の元となったWUを計算した全クライアントに与える。
となっているらしい。なので実際のところCobblestoneもWU処理時間も直接実際のCredit(Granted Credit)と比例関係にあるとはいえないのである。
比例関係にはならないが、Cobblestoneの向上はSETIのスコアアップに繋がることは確実である。
また、ツールを使って処理時間を延ばしたりしてClaimed Creditを増やす方法などもあるようで、中間平均値(例えば同じWUを処理した4つのクライ
アントからそれぞれ100、70、50、30というCreditが要求された場合、全クライアントに(70+50)/2=60が与えられるといった具合)を採用するという
システムである以上、チートはそれなりの効果を上げてしまう(そもそもSETIの精神に反する?いや、それを言うなら常時稼動自体が
SETIの精神に反s(ry)。なので今後ここではSETIのCreditをいかに獲得するかという話はしないことにする(そもそも電力効率についての話だし)。
公式サイト(日本語訳)を見ると、2つの結果が返ってきたら最小値を返すとなっている。おそらく実際はReport Deadlineまでに集まっているWUに対し
て与えられるのだろうが、最小値であればなおさらチートの意味はなくなる。そもそもあまりにも極端なClaimed Creditの場合は無効になるようだし。
旧SETIのようにWU数ではないので、偽の結果を返してWU数を稼ぐこともスコアアップに繋がらないため意味がないだろう(旧SETIの上位者の何人かは
このような不正な方法でスコアを稼いでいたようである)。
ソースを見た結果詳細が分かったので追記の白文字のスコア算出手順のところを修正してある。。あと、もう一つ訂正すると(したくないのだが・・)
Claimed Creditをチートなどによって不当に上げることは実は「意味がある」。例えば自分のPCでの平均的なClaimed Creditが30だとしよう。
普通60,30(自分),25,10といったClaimed Creditの場合、Granted Creditは(30+25)/2=27.5になる。しかし、もしClaimed Creditをチートして
100にすると、Granted Creditは(60+25)/2=42.5と大幅にアップする。さらにBOINCはソースコードを公開しているので(略)・・。ただ、それでも
チートする人が少ないうちは効果は少ない。もしClaimed Creditを1億(ぉぃ)にしたとしても、結局さっきの例だと42.5しかもらえないからだ。
ところが大半がチートするようになると1000000,99975,25,10とかなってしまい、Granted Credit5万とかいうことになってしまう。早く環境に依存
しないCredit値を算出する方法が開発されることを祈る。
あと、チートじゃないが、ちょっとしたスコアアップTIPSを。前述のようにSETIのスコアはBOINCのベンチマークに依存するが、BOINCクライアントの
基本優先度(タスクマネージャで見ることができる。デフォルトではオフかもしれないので、表示させる必要があるかも)を高にして実行させれば
ベンチマークスコアがかなり向上する。下手にCPUアップグレードするより値が上がるのでおすすめ。しかもチートじゃなくて本来の力を出してる
だけだし。
3.現状(2004/8/18)
今年(2004年)3月末には「Fen」を、8月には「Sephie」をアップグレードし、さらに強力になった我がPCシステムだが、そのSETI@BOINC処理能力と消費
電力はどのようなものだろうか?
3−1.全体として
まず、全体的に見ていくと、平均電力効率(電力効率比グラフの一番右の無名の項目)を上回っているのは「Fen」「Naoko」、下回っているのは
「Naomi」「Sephie」となっている。ノートパソコン組が平均より高く、デスクトップ組は平均より低いわけだ。バッテリーを少しでも長く持たせたり、
ひざの上などで使ったときの発熱を抑えたりするために極限まで消費電力や発熱が抑えられているノートパソコンが、それらについてあまり考慮されて
ないデスクトップを上回る電力効率であるのは当然ともいえる。
3−2.「Fen」
我がPCシステム中最高のSETI@BOINC処理能力を持ちながら、その消費電力はわずか35〜40Wという驚異的な効率をもつ「Fen」。それはモバイルのために
設計されたPentium Mならではの結果だ。Pentium Mは爆熱CPUであるPentium 4ではなく、Pentium IIIをもとに設計されたらしい。実際、Mobile
Pentium 4よりもはるかに優れた電力効率を持つ。やっぱりPen4はモバイルにしてもしょせんPen4・・。
3−3.「Naomi」
処理能力では「Fen」に次ぐ位置でありながら、その3〜4倍(CPUだけだと約4.26倍)もの電力を消費する「Naomi」。ベンチマークによっては「Fen」を
上回るものもあるので単純に負けPCとは言えない。が、SETI@BOINCでは負けているのは事実。CPUのAthlon XP (Barton)は、前CPUであるThunderbird
コアのAthlonよりは電力効率は高い(はず(ぉ))。
3−4.「Sephie」
SISチップセット+Windows XPの相性問題?によるHDDの超低パフォーマンスに悩まされていたが、VIAチップセットのM/Bに交換&CPUをTualatinコアの
Celeronに交換(もともとのM/BもTualatinには対応していたが)し、トータルパフォーマンスがぐっと上がった「Sephie」。SETI@BOINC処理能力も
上がり、電力効率も良くなったのでアップグレードは成功だったといえる。CPUのCeleron(Tualatin)は、低消費電力ながらそれなりの能力を発揮する
Socket370最後の砦といえるかもしれない(すでに時代はLG21・・じゃなかったLGA775とかで、Socket370なんて中古でも見かけない。まあ、中古で
見かけないって事はそれだけ良品で、持ってる人が手放さないってことだが(あるいは化石級に古すぎるとか(ぉ)))。しかし、30W台かそれ以下のCPU
といえば、PenIIIorCeleron、VIA C3、モバイルCPU(+M/B(高価))ぐらいしかないのでは・・・?
3−5.「Naoko」
処理能力ではPCシステム中最下位でありながら、消費電力も最下位という「Naoko」。その比率は「Naomi」を超える効率である。もし「Naoko」と同じ
VAIO PCG-U1を8台そろえた場合、消費電力は約16×8=128Wと「Naomi」並みでありながら、性能は「Fen」をも軽く超えるほどになるのである。
もっとも、一台10万(中古で買えば今ならもっと安いだろうが)ほどするマシンをあと7台も買う金はないし、仮に金が十分あったとしても、1台ごとの
性能はそれほど高くないため、計算クラスターとしてしか使えないのでそんなことはしないけどね。
4.電力効率を考えたアップグレードパス
多額の電気代を必要としている現状を踏まえて、今後アップグレードを行う場合、電力効率を考えて行う必要がある。能力が上がったのはいいが、消費
電力も大幅に増大した、ではだめなのである。そこで、アップグレード不可能な「Fen」「Naoko」、アップグレードしたばかりであり、安定動作を
重視するため頻繁に構成を変えたくない「Sephie」を除く・・って1台しかないじゃないか・・そう、「Naomi」について考えてみる。
4−1.約定期blogに書かれたアップグレードパスを検証?
約定期blogに書かれたアップグレードパスは
1.CPUをAthlonXP 3200+(Barton)に変更
2.CPUをAthlon64(939pin)に変更、M/Bも対応のものに変更
3.CPUをOpteron x2(940pin)に変更、M/Bも対応のものに変更
4.CPUをDual Core Athlon64?に変更、M/Bも(略
5.いっそスパコン買う
|
「1.」は大規模アップグレードではないので除外するとして、以降について検証する。
「2.」「3.」について、ごく簡単に検証したのが下の表である
|
totalwatt
|
cpuwatt
|
ops
|
e-effic(total)
|
e-effic(cpu)
|
e-effic(total)
「Fen」比
|
←「Naomi」比
|
e-effic(cpu)
「Fen」比
|
←「Naomi」比
|
Naomi(AthlonXP 2500+)
|
130
|
68.3
|
0.358
|
0.002754
|
0.005242
|
0.314982
|
1
|
0.27407
|
1
|
Fen(Pentium M 1.5GHz)
|
35
|
16
|
0.306
|
0.008743
|
0.019125
|
1
|
3.1748
|
1
|
3.6487
|
Athlon64 3000+
|
148.4
|
86.7
|
0.537
|
0.003619
|
0.006194
|
0.413892
|
1.3140
|
0.323857
|
1.1817
|
Opteron246
|
217.7
|
156
|
1.0203
|
0.004687
|
0.00654
|
0.536063
|
1.7019
|
0.341981
|
1.2478
|
Pen4NW 3.86GHz(OC)
|
171.7
|
110
|
0.55
|
0.003203
|
0.005
|
0.366386
|
1.1632
|
0.261438
|
0.9539
|
どうやってこの表を作ったかというと、YSSという将棋プログラムを基にしたベンチマークのスコア表にあったAthlonXP(Barton)のデータを、「Naomi」
と同じ2500+相当になるように調整し(単純にクロック比でスコア算出)、それと他のスコアを比較して、その比率をSETI@BOINCの処理量にかけた
だけである。もちろん、YSSとSETI@BOINCのアルゴリズムは全然違うので全く当てにならないかもしれない(ぉ)。さらに言えば、M/Bは全て「Naomi」
と同じ消費電力だとしているが、実際はメモリやバスの関係で変動するだろう。なので、あくまでイメージ的なデータとして捉えるべきである。
と、前置きはそのぐらいにして、実際のデータを見ていくことにする(ここでは「Fen」はあくまで参考とする。詳しくは後ほど)。すると、いずれの
アップグレードパス(Pentium4なんてのも入ってるが)をとってもさほど効率が上がらないことが分かる。Opteronの値はSETI@BOINCがDual CPU対応
であるため良くなっているが、消費電力も高く、単純に効率だけで選ぶというわけにもいかない(第一、初期コストも高すぎる)・・・と、ここまで
書いていて気がついた。Pen4もHTTがあるので2倍とはいかずとも少しは効率が上がるだろう。
追記:Opteronの結果を比較する限り、YSSベンチマークはDual CPUに対応しているとは思えない。なのでOpteronのスコアは2倍してある。もちろん電力
も2倍してあるが。
残りの「4.」「5.」だが、「4.」の場合は消費電力などのデータが未知であるためあくまで推測だが、Dual CPUよりいくらか効率は上がるはず
である。しかし、電力効率が上がっても消費電力そのものが大きすぎては導入は難しい。「5.」については、非常に高い電力効率を持つだろうが、
それ以上に消費電力そのものと初期投資が莫大な金額になると思われるので現実的ではない。しかも電力効率悪い(後述)。
追記:スパコンがPC以上の電力効率を持つと推測する理由としては「もしPCのほうが電力効率がよければ、スパコンクラスターを組むよりPCクラスター
を組んだほうがより少ない電力でより高いパフォーマンスを得られる」からである。電力効率とはあくまで「能力/消費電力」であるのだから、仮に
スパコンがPCの一万倍の消費電力だったとしても、二万倍の性能ならば「電力効率が高い」と言えることになる。
さらに追記:地球シミュレータは20TFlops(ピーク40Tで、実際14〜26Tだと書いてあるので間を取って)で8000kW(8MW)・・ベンチマークソフトが違う
ので単純比較はできないが、仮に「Naomi」が2kFlopsだとすると16万倍、8kFlops出したとしても4万倍以上の電力効率がある。さらにCray社のRed Storm
というスパコンは同じぐらいの処理能力で2MWなので、電力効率はさらにその4倍と言うことになる・・って、すでに推測から確証になってるな(ぉ)。
ど〜やらねう゛ぉけてたようです(ぉ)。ベンチマーク違うのではっきりとは言えませんが、「Naomi」はSandraのベンチで2GFlops出してます。さらに
PS2やGC(ゲーム機)なども数G〜十数GFlops出せるようです(プログラムによって違うけど)。ってことは、スパコンよりも電力効率は上ってことに
なってしまいます(実際「Naomi」を2GFlops、スパコンを20TFlopsとして、スパコンの消費電力を2MWだとした場合でも「Naomi」の0.65倍ほどの電力
効率しかない)。単純に一度にでかいパワーが欲しいからスパコンを使ってるようですね。もしプログラムが分散並列(?)処理できるようならば
PCクラスター組んだほうが安価で高効率でしょう。もちろんPen4やAthlonよりもPentium MやCrusoeで組んだほうが電力効率は上がるはずです。
しかし、Red StormってOpteronを10,368個とPowerPC(MacのCPUに使われてる)ベースのMPUをいくつか使ってるらしい。しかしOpteronといっても
マルチプロセッサではないようだ(シングルプロセッサ用のOpteronを使うと書いてある)。ちなみにOpteron148の消費電力は1個78Wなので、10368個
使った場合のCPUのみの最大消費電力は約809kWということになるな(残り1200kWほどは何に使われてるんだろう・・?)。
4−2.現実的かつ効率的なアップグレード
実現可能性が極めて0に近いスパコン話はおいといて、実際に実現が可能と思われ、かつ効率の良いアップグレードパスについて考察することにする。
今まで見てきたデータから、「Fen」のようなモバイルシステムが最も電力効率が良いことが分かる。しかし、ノートパソコンは高価であるし、拡張性
に乏しい(いくらUSB2.0やIEEE1394があるからといってもね・・)し、なんといっても自作ができない、もとい幅が狭い(ノートパソコン自作キットの
ようなものもあるらしいが・・?)。やはりデスクトップマシンを組みたいのである。さて、デスクトップの自由度とノートパソコンの効率を兼ね
揃えたシステムとは・・そう、モバイル用CPUをデスクトップで使えればいいのである。そうすればデスクトップの自由度はそのままに、ノートパソコン
並とまではいかないが、かなり低消費電力かつ高性能なマシンを作ることができるわけだ。今のところ、モバイル用CPUで電力効率が高いCPUと言えば
Pentium Mが上げられる(Intel的にはCentrinoシステム自体が電力効率が高いと言いたいのかもしれないが・・)。もちろん他のモバイル用CPUも、
デスクトップ用に比べれば電力効率が高いものもたくさんあるが、いくつかのデータからPentium Mが優れているらしいことが判明したのでここでは
Pentium Mにしぼって考察していこう。
追記:Pentium Mと言っても、「Fen」に搭載されているのはBaniasだが、現在はDothanというコアのものが出ているらしい。
つづく(ぉ)
5.え〜結局ですね・・PenMはぽしゃりました(ぉ)
4章まで書いたのが2004/8/18頃ですね。当時はかなりPenM熱あったので「Naomi」をPenMにしてやろーかと思ってたわけですね。ところがやっぱり
腐っても一応AMD派なのと、64bit+DEP(EVP)対応ってことでAthlon64 3200+にしちゃったんですね(上で書いてるアップグレードパスの2.にあたる。
939ピンってとこまで同じ)。でも「Sephie」はCeleron=Intelじゃないか・・というのは、Athlonで30WクラスのCPUって見つからないのと、あまり
コストかけずに性能アップできるというのもあって(もともとCPUアップグレードが目的ではなく、ATAの不具合解消が目的だったので)同じCeleronの
Tualatinにしたんですよ。え゛、その前・・?う〜ん、一応K6なんてのもあったんですが、それはいくらなんでも性能が低すぎだし・・ま、まあ、
いいじゃないですか〜(汗)。もしPenM並みのAthlon出してくれたら考えますが。
で、PenMにアップグレードする計画はぽしゃったといってもいいでしょうね。考えていた「Naomi」はAthlon64にしてしまいましたし、「Sephie」も
当分必要ないですし。第一金がかかりすぎるのと、モバイル用CPUのためM/BもMicroATXとかが多く拡張性が悪いというのが難ですね。まあ、「Sephie」
の場合はPCI Expressなグラボとかいらないので、多少拡張性は犠牲にしていいんですが、金はどうにもならないですからね。しかし、もし次に
「Sephie」のM/Bが故障するようなことがあれば、PenMへのアップグレードを考えるかもしれません。もっとも普通に使っていてそんなに壊れやすい
ものであっても困るのですが(常時稼動は普通じゃね〜だろというのはおいといて(ぉ))・・。
最後に・・よりよいSETI環境を実現するには・・SETIに対する電力効率が最も良いシステムを組むことですね(当たり前っ!ぼこぼこぼこうわーなに
するんだこのやろぐはげふぉがはっっ・・・
はぁはぁ。と、とにかくそういうことです。できるならばSETIに最適化されたCPUでもあればいいんですが(普通は逆で、SETIが特定のCPUに最適化
できればいいのだが、それはまず無理でしょう)。あとは余計な周辺機器などを外すことですかね。CPUを低発熱にしてファンの回転数を減らすとか、
メモリを4枚→2枚にするとか(あまり減らしすぎるとSETIにも影響するかも)、HDDを低電力のものにするとか。まあ私もそこまではしませんが。
このSETI熱もいつまで続くかわからないので、冷めた時に他に応用が利かないマシンだと困りますからね。その点やはりデスクトップ機は拡張性に
優れた構成にしておきたいものです。(でもPenMやってみたいなぁ〜。CPUがもっと安くなって、PCIEなグラボ対応のFullATXなPenMマザボでない
かな〜)。
max lines(「Fen」の常用解像度である1400x1050において、1024x768用の「約定期日記」を編集するためのもの)
##########################################################################################################################################
戻る