マルチCPU PCで、アプリケーションをシングルCPUで動作させる方法

 ほとんどのアプリケーションは意識的にマルチプロセッサに対応しているか否かに関わらず、マルチプロセッサPCで問題なく動作します。もちろんマルチプロセッサに意識的に対応していないアプリケーションは、マルチプロセッサPCでシングルプロセッサと同等のパフォーマンスしか出せません。ただ、その場合でも複数のアプリケーションを同時に実行できることで、PC全体のパフォーマンスは高くなります。
 しかし、ごく少数のアプリケーションで、マルチプロセッサPCで正常動作しない場合があります。これはアプリケーションの作りに問題があると言ってもよいでしょう。今後CPUはデュアルコア、マルチコアが普通になるのは間違いのないことですので、アプリケーションベンダがマルチプロセッサに対応したバージョンを出すのが本来のあり方です。とは言っても、それまで待てない、今そのアプリケーションをどうしても使いたいという場合もあるでしょう。以下はその場合の対処方法です。

 一つの方法は、アプリケーションを起動した状態で、タスクマネージャのプロセスタブで、そのアプリケーションのイメージ名を右クリックし、「関係の設定」から「CPU 0」以外のチェックを外すことで、シングルCPUで動作させることができます。


 ただし、この方法はアプリケーションが起動できない場合は使えません。また、アプリケーションを使う度に毎回設定しなければならないため面倒です。

 2つ目の方法は、boot.iniに「/NUMPROC=1」オプションを付けることでOSを含めた動作をシングルCPUにする方法です。boot.iniに「/NUMPROC=1」オプションを付けたエントリーと付けないエントリーの両方を書いておけば、起動時にシングルCPUとマルチCPUを選択できます。
Boot.iniのオプションスイッチ」を参照
 これは一番確実にそのアプリケーションを動作させる方法ですが、そのアプリケーションを使う度にOSを再起動しなければならないため、やはり面倒です。

 3番目の方法は、Virtual PCあるいはVMwareといった仮想マシンを使う方法です。これは最初および2番目の方法に比べて比較的簡単に使えますが、仮想マシンを使うのに費用がかかることと、アプリケーションが仮想マシン上でうまく動作しない場合、例えばIEEE1394を使いたい場合などは有効ではありません (現バージョンのVirtual PCあるいはVMwareではIEEE1394が使えないため)。

 最後の方法、そしておそらく本命となる方法は次の方法です (OSがWindows XPの場合)。
 そのアプリケーションがWindows 9xにも対応していれば、そのアプリケーションのショートカットのプロパティから「互換性」タブで「互換モードでこのプログラムを実行する」にチェックを付け、Windows 98/MeかWindows 95を選ぶと、そのショートカットから起動したアプリケーションは1つのCPUしか使わなくなります (Windows 9xはシングルプロセッサ用のOSなので)。


 そのアプリケーションがWindows 9xに対応していない場合は、この方法は使えません。その場合は前述の方法しかないようです。ただ、マルチプロセッサで動作しないアプリケーションというのは、ほとんど元がWindows 9x用に作られたアプリケーションで、最初からWindows 2000/XP用に作られたものはまずないのではないかと思われます。したがって、マルチプロセッサに対応できないアプリケーションはたいていこの方法が有効です。