Excelが再計算を完了するのを待っていますが、タスクマネージャーによって報告されたCPU使用率が、ハイパースレッディングを備えたPentium 4で51%または52%に急上昇することがあります。 Excel 2003のようなシングルスレッドアプリケーションはどのようにこれを行っていますか?
タスクマネージャー側の単なる丸め/見積もりエラーですか?それとも、HTの割り当てと関係がありますか?つまり、これが本物のデュアルコアまたはデュアルCPUマシンで発生することはありませんか?
Excel2003がシングルスレッドの場合は驚きます。少なくともUIスレッドとワーカースレッドがある可能性があります。計算の進行中にUIが再描画されますか?その場合、Excelはシングルスレッドではありません。
MS Windowsは、デフォルトではアプリケーションを1つのコアにロックしないため、表示されているのは、Excelがいずれかのコアで実行されていることです。
タスクマネージャを使用して、この動作を(一時的に)変更できます。
Excelを実行している場合は、taskmgr.exeを起動し、[プロセス]リストに移動して、プロセスを右クリックすると、プロセスのアフィニティを設定することを選択できます。
いずれかのコアに固有のマークを付けると、(ここでもtaskmgrで)1つのコアでのみ実行されていることがわかります。
さて、もしあなたがシングルコア/スレッドプロセッサを持っていたらどうでしょうか? Excelはどのようにしてその50%以上を使用できますか? 2つのコアがあり、それぞれが1つのスレッドを実行でき、Excelが1つのコアで実行される場合、そのコアの最大100%を使用できます。
ハイパースレッディングでは、CPUコアごとに2つの「実際の」スレッドはありませんが、2つの「仮想」スレッドがあります。 2つのスレッドは、実行リソースを共有する必要があります。そのため、スレッドの1つが他のスレッドよりも多くのリソースを使用する可能性があり、50%を超える使用量として表示される場合があります。