Wednesday, July 30, 2008

Windowsのメモリ制限とその背景

Windows Internalsの著者の一人でありMSのtechnical fellowであるMark Russinovich氏のブログに、興味深いエントリが出ていました。
現在の各種Windowsの利用可能メモリの制限がどのようにして決められたのか、直接関わった立場から明快に述べられています。32bit WinXPがPAEで36bit addressingをenableしなかった理由は、ドライバがタコばっかりだったからだそうな。無保証でもいいからオプションで可能にしといてくれれ ば面白かったのになぁ・・・。

で、64bit Win鯖2k8 Datacenter の最大値は2TBとなっているのですが、これは現在入手可能なPCでテストできた最大のメモリ量で決めたそうです。タスクマネージャのスクリーンショットに、Itanium 2の64コアが見えます。64コアというだけだったら、Infiniband接続されたOpteronで見たことがある気がしますが、こいつのメモリ量に注目。

2TBです。2TB。

NUMAとはいえ、2TBがフラットに見えるとは、なんというモンスターマシン。これはHPのSuperdome
だそうで。

今後氏のブログではWindowsが扱えるリソースとその制限、未来について語ってくれるそうで、ハード屋さん・ソフト屋さん共に要注目です。

Saturday, July 26, 2008

マルチコアCPUとWindows

結局、コメントのリンク先の記述にあるように、windowsの仕様ってことだそうですが・・・。
When single-threaded workloads run on multiprocessor systems that include dual-core configurations, the workloads may migrate across available CPU cores. This behavior is a natural artifact of how Windows schedules work across available CPU resources.


これがパフォーマンス低下にはそれほど繋がらないということなのか、単にWindows XPではマルチコアでの処理が最適化されていないのか、何なのかはNTカーネルのことをよく勉強しないとわからないのかもしれません。

Core2Quadでシングルスレッドを動かすと、処理が"ニコイチ"コアの間にまたがることもあれば片方の"Core2Duo"だけで処理されることもあります。この挙動を見る限り、どう考えてもWindows XPはマルチコアを最適に使っているとは思えないんですよね。Intel compilerを使うと変わったりするんでしょうか? また、Windows Vista 64bit/Server 2008, *nix ではどのように処理されているのか、気になります。

AMDもこれからは"ニコイチ"CPUを出すと言ってますし、IntelはNehalem世代でNUMAをサポートし、ニコイチだけでなくsimultaneous multithreading (SMT)を復活すると言ってます。そうするとコンシューマ向けのCPUであっても、ニコイチやSMTの技術によってコア間の距離や各コアの性能がまちまちになってくるってことですよね。Windows 7が出る頃には、マルチコアに対する最適化の性能差によって過去のOSからの移行が進む、なんてことが起きたりするのかもしれません(?)。

Saturday, July 5, 2008

Secunia PSI

PCにインストールされた様々なソフトウェアのバージョンをチェックして、脆弱性を持ったバージョンを使っている場合には警告を出してくれるソフトです。そのソフトの最新版が提供されている場合には、最新版へのリンクも示してくれます。これは、かなり便利。