dualCoreの罠(汗

http://ameblo.jp/professionalhearts/entry-10011123501.html

>単に空いているCPUで実行するようにOSが自動的に、しかも相当エエカゲンに割り当ててくる

 ガーン(ノД`)ノ
 そうだったんですか。
 CPU0、CPU1両方で動いてるから、並列処理ラッキー!ぐらいに思ってましたが、
 動作中の同じプログラムを、cpu0とcpu1の間でふらふら移動させられたら、
 レジスタどころか、命令/データキャッシュも全部無駄になってしまいますね。
 windowsってそんなエエカゲンだったとは……
 ショック(TДT)
 ちゃんとスレッド意識して書かないと、
 シングルCPUの方が、効率が良いなんてことになりそうですね(汗


 別にマルチスレッド並列探索にするつもりはなかったですが、
 スレッドを生成しないとダメっすね。

 謎電の作者さま、解説ありがとうございました。m(_ _)m



並列処理とは奥が深い技術ですねえ!
検索していろいろと読むと、
SetThreadAffinityMask()で設定するか。
SetThreadIdealProcessor()で直接CPU番号を指定する方法もあるようです。
VCTK2003でコンパイルできるか分かりませんが、ちょっくらやってみます。
どうせなら並列探索もしてみようかな(^^;←やめなさい