AMD 3250 HE と スケジューラー

 Opteron 3250 HEを使用したPCでWindows7のスケジューラーの動態を調べてみた。


 3250 HEはAMD FXシリーズと同じアーキテクチャーを採用していて、整数演算部2基と浮動小数点演算部1基を組み合わせたモジュールを2個搭載している。これを2コア4スレッドのCPUとして見るか、4コアのCPUとして見るか、いろいろ解釈があるようだがAMD自身は4コアCPUとしているようである。


3250 HE cpuz 


 AMDはこのような構造を採用している理由として、一般的な処理の場合、整数演算に比べて浮動小数点演算の頻度は低いので、整数演算部2に対して浮動小数点演算部1で十分であると考えていることをあげている。つまりFXアーキテクチャーを採用しているCPUは浮動小数点演算を多用する応用には適当なCPUではないが、それ以外の一般的な処理については十分な適性を有しているとAMDは考えていることになる。これらの観点からAMDはこれらのCPUを、例えば整数演算部が4基あるものは4コアCPUと分類していることになる。

 表現を変えると、整数演算の面から見ると4コアのCPUで、浮動小数点演算の面から見ると2コアのCPUということになる。こういう視点から見ると、浮動小数点演算を多用する処理のために選択するCPUではないことが明確になる。

 このFXシリーズのCPUが『浮動小数点演算を多用する応用には適当なCPUではない』ということが重要で、これを忘れてしまうと道を誤ることになる。


 Windows7のカーネルには、FXシリーズに対応した(らしい)スケジューラー(以下『FXスケジューラー』と呼ぶ)をもつものと、そうでないもの(以下『既定のスケジューラー』と呼ぶ)がある。Windows7のService Pack1適用済み品をインストールすると、その時のCPUがFXシリーズ(またはその相当品)であっても既定のスケジューラーが導入される。その後FXシリーズのCPUを搭載した状態でWindows Updateを行うとFXスケジューラーがどういうわけか導入されてしまうという仕様になっている。この2種類のスケジューラーの動態を調べてみた。


<事例1>
既定のスケジューラーで、Prime95を1スレッドで実行した場合。

p95 flat 1 task


 タスクマネージャーでPrime95を実行中のCPU使用率を表示したもののスクリーンコピーだが、CPU使用率が24%となっている。Prime95はほとんど実行権を自らは手放さない処理であるが、このスケジューラーの場合、CPU使用率が24%と表示される時間が結構長い。本来25%未満になるのは考えにくいのだが、現実はそうなっている。4コアのCPUでほぼ走りっぱなしの1スレッド(Prime95)が走っているのでCPU使用率は25%以上となるのが当然なのだが、現実は25%になる時間は半分にも満たない。ほぼ走りっぱなしの1スレッドが4つのコアに分散して実行権を付与されているのは、Windows7がタイムスライス型のOSであるためである。


<事例2>
FXスケジューラーで、Prime95を1スレッドで実行した場合。

p95 fx 1 task


 (1)と同じことをFXスケジューラの下で実行したときのスクリーンコピーである。この場合もCPU使用率は24%の時間が長いが、(1)の場合よりは短めである。主として#0コアと#2コアに処理が割り付けられ、#1コアと#3コアにはほとんど処理が割り付けられていないことがわかる。このスケジューラーは3250 HEを2コア4スレッドのCPUとみなしてスケジューリングをしていると見てよいだろう。これは1つの浮動小数点演算部が、2本の処理により取り合いになる機会を低減することを意図したスケジューリングということになる。


<事例3>
既定のスケジューラーで、9本の低負荷だが頻繁に実行と実行権放棄を繰り返す処理を実行した場合。

online igp flat task


 9本の処理が4コアにほぼ均等に割り付けられている。CPUの使用率は17%と低いが、カーネル時間がほぼ50%ぐらいにまで達している。


<事例4>
FXスケジューラーで、<事例3>と同じ9本の低負荷だが頻繁に実行と実行権放棄を繰り返す処理を実行した場合。

online igp fx task


 9本の処理が、主として#0と#2のコアに割り付けられていることがわかる。CPUの使用率は19%と低いが、カーネル時間がほぼ50%ぐらいにまで達している。このような割付になる理由は<事例2>で簡単に触れておいた。ちなみにこの9本の処理は、整数演算中心の処理で、おそらく浮動少数点演算は含まれていない。


<比較1>
 浮動小数点演算を多用する処理の例として、Prime95を走らせたときの所要時間を調べてみた。

(1)Prime 95のBlendを1スレッド指定で、Test1~test10まで実行したときの所要時間。

 ・既定のスケジューラーの場合・・・734秒
 ・FXスケジューラーの場合・・・・739秒

(2)Prime 95のBlendを2スレッド指定で、Test1~test10まで実行したときの所要時間。

 ・既定のスケジューラーの場合・・・933秒
 ・FXスケジューラーの場合・・・・858秒

 (1)の所要時間の差が5秒というのは微妙である。誤差というには大きいし、かといって明確な差ともいえない。はっきり言えるのは、スケジューラーの実行時間が占める割合が少ないため大きな差になりにくいということだろう。所要時間に差が出るとしたら、その最大の要因はスケジューラーの実行時間であるが、Prime95のような実行権の放棄がほとんどない処理ではスケジューラーの関与が少なく、明確な差がつきにくい。もしこの5秒の差が実質的なものであるとしたら、FXスケジューラーの実行時間は既定のスケジューラーと比較してかなり長いということになる。

 (2)の所要時間が75秒も異なるのは、Prime95が浮動小数点演算を多用する処理であるため、既定のスケジューラーでは2スレッドの間での浮動小数点演算部の取り合いが多発しているのにたいして、FXスケジューラーでは2スレッドの間での浮動小数点演算部の取り合いがほとんど発生していないためだろう。

 3250HEでは、どのような場合に浮動小数点演算部の実行権の取り合いが発生するのかを検討してみると、そのような取り合いをスケジューラーの工夫で回避できる場合は、浮動小数点演算を多用する処理が同時に2本実行される場合のみであることがわかる。1本の場合はそもそも競合は発生しない。3本以上の場合では競合の発生を回避すること自体ができない。

 3250HE以外の場合を想定すると、FXスケジューラーがその効力を発生する可能性があるのは、浮動小数点演算を多用する処理が2本以上でかつCPUに含まれる浮動小数点演算部の数以下である場合に限られるということになる。

 浮動小数点演算を多用する処理に、FXシリーズを選択するのは誤りであることをすでに記しておいた。複雑なスケジューリングにはカーネル時間の増加というペナルティーが避けられない。FXスケジューラーの存在意義に疑問を呈しておきたい。


<比較2>
 整数演算多用の処理の例として、<事例3>、<事例4>実行時の消費電力を調べてみた。

 <事例3>の場合・・・・50~55ワット
 <事例4>の場合・・・・52~57ワット

 既定のスケジューラーの場合のほうが2ワット少ないが、この数値は実はあまり信用できない。というのはPrime95の場合と異なり、実行されている9本の処理は同じでも、実行状態が<事例3>と<事例4>で同じとは言えないからである。ということでこの数値は参考程度と理解していただきたい。


<実験に使用したPCの構成>

CPU・・・・・・・AMD Opteron 3250 HE
マザーボード・・・・ASUS M5A88-V EVO
メモリー・・・・・・2x2GB DDR3 1333MHz
HDD・・・・・・・Hitachi HDS721010DLE630
DVDD・・・・・・Pioneer DVD-RW DVR-219L
パワーサプライ・・・Rosewill CAPSTONE-450
ディスプレー・・・・1xDVI 1680x1050 + 1xVGA 1680x1050
PS/2 Keyboard
USB Mouse
OS・・・・・・・・Windows 7 32 bit

スポンサーサイト

米ドルが高くなった理由

 昨日今日と米ドル高が進み、今日は79円30銭台に載せる場面もあった。

 なぜドル高円安にに転じてきたのかについては、「米国長期債の利回りが上昇したためドルが買われた」という説明がされているようである。

 もしそうであるなら、ドルはユーロに対しても高くなってもよいはずである。ところがドルは対ユーロでの緩やかな下落基調を続けている。

 つまり円はドルに対しても、ユーロに対しても安くなっていることになる。

 他の通貨に対してはどうかというと、豪ドル、ポンド、ニュージーランドドル、カナダドル、スイスフラン、香港ドルに対しても、ここ数日円安に振れている。

 つまり主要通貨に対して円安が進行しているということになる。これは単に、豪ドルその他が、米ドルにペッグしたような形で動いているために、円の全面安のような形になっているということであって、それ以上の深い理由はないのかもしれない。


 ここのところ日本は、対ロシアでは北方領土問題で緊張が高まっている。竹島のことでは韓国との間で緊張が高まっている。対中国では、尖閣諸島問題が抜き差しならぬ事態になりそうな気配になっている。

 今日まで、日本国政府はこれらの問題に対して、なぜか毅然とした態度をとらないで来たのだが、野田政権はその方針を転換し、強い姿勢で臨むことにしたように見える。民主党政権がこのような方針を固めるとは想像さえしなかったが、大賛成である。


 さてこれらの事件は(事件といってよいレベルだと思う)、極東で起こっている。これと類似の事件が、中東で発生したと想像してみると、その重大性がわかるはずである。

 今回の円安の原因のひとつに、日本が抱える地政学的リスクが含まれているとしても違和感はない。もしそうであるならば、ここ数日の円安は今後数年にわたる円安の第一歩ということになる。

 そう考えると、野田政権は領土問題に対して毅然とした態度をとることによって、長期にわたった円高の進行を終わらせ、円安への転換を確実にしたということになる。


 もしかすると、野田政権は日本の戦後問題に決着をつけた政権、あるいは少なくともその路線を引いた歴史的な政権として、日本史にその名を刻むことになるのかもしれない。

Windows 8 互換性 ASUS M5A87の場合

 Windows Vista の発売時も、Windows 7 の発売時にも、互換性の問題が取りざたされていたように記憶している。

 Windows 8の発売を10月に控えて、ASUS が Windows 8 Ready – Assured Compatibility という説明をつけたマザーボードを ASUS の Global Site にラインアップしている。たとえば M5A97 EVO R2.0 という名称のマザーボードがそれである。

 事の成り行きからすると、以前からある M5A97 EVO は『 Windows 8 Ready – Assured Compatibility 』ではないのかもしれないということになる。


 M5A97 EVO は所有していないので試すことはできないが、M5A87 を使って Windows 8 をインスト-ルした場合と Windows Vista をインストールした場合で、違いがあるのかどうか調べてみた。


 結論から言うと、互換性は完全とはいえないということがわかった。


 通常 PC の電源投入は、PS/2 Keyboard のキーの操作でしているのだが、このキー操作に対する反応が Win8 と Vista では違うのだ。

 BIOS の POWER メニューの APM Configuration の Power on By PS/2 Keyboard の項で、Disabled、Space Bar、Power Key、Ctrl-Esc のどれかを選択して、PS/2 Keyboard による電源オンを規定するのだが、Win8 ではまともな結果にならないのだ。

 Disabled と指定すると、Vista では電源断時に PS/2 Keyboard のどのキーを押しても電源オンとはならないが、Win8 ではどのキーを押しても電源オンとなってしまう。もちろん Win8 の場合がおかしいということだ。

 Space Bar と指定すると、Vista では Space Bar を押したときは電源オンとなるがそれ以外のキーの場合では電源オンとはならない。Win8 ではどのキーを押しても電源オンとなる。当然 Win8 の場合がおかしいということになる。

 Ctrl-Esc でも同様の結果になる。Power Key のあるキーボードを使用していないのでこれについては不明である。

 BIOS の設定事項が Windows 8 によってオーバーライドされているということなのだろうが、その経緯はわからない。(念のために記しておくが、BIOS の設定が書き換えられているという意味ではなく、事の顛末は不明だが BIOS での指定が結果的に無視されているという意味である。)しかしながら、OS 以外は同じ条件でなので、この違いは OS の違いに起因していると考えて間違いない。

 使用した PC は、ASUS M5A87(BIOS 1101)、AMD 250e、1x4GB(DDR3 1333MHz)メモリー、AMD HD6450 グラフィックスカード、HDD、DVDD、80PLUS Bronze 電源、PS/2 キーボード、USB 接続マウス、1xDVI 接続 1680x1050 ディスプレーという構成である。Windows Vista、Windows 8 はともに32ビット版を使用した。


 ASUS M5A87 については以上のとおりだが、MSI の 890GXM-G65 でも同様のことをしてみた。結果は Windows Vista と Windows 8 とで違いはないということになった。

 こういう結果になると、先に記した『BIOS の設定事項が Windows によってオーバーライドされているということなのだろうが・・・』は誤解を招きかねない表現であるといえるだろう。Windows の処理が Vista と Win8 で変化したのは間違いないが、その結果生じた ASUS M5A87 の問題点は、Windows 8 の問題というよりは、既定の Windows PC の設計上のガイドラインについての ASUS の設計陣の解釈上の誤り、あるいは見解の相違がその原因であろうとするのが妥当なのかもしれない。

 あるいは単に MSI が 既存の製品の BIOS の Windows 8 対応を優先したのに対して、ASUS は Windows 8 対応の新製品の開発を優先しただけということなのかもしれない。


 あれこれ記してきたが、互換性上の問題点は他にもあるかもしれない。Windows Vista から乗り換えるべきは Win8 ではなくWin7 ではないかと考えているところである。

カレンダー
プルダウン 降順 昇順 年別

07月 | 2012年08月 | 09月
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -


RSSリンクの表示
リンク
カウンター
QRコード
QR
ブロとも申請フォーム

この人とブロともになる

最新トラックバック