質問: デュラルコアのCPUでマルチスレッド処理をする場合、一般的に最適(処理が高速)となるスレッド数はいくつでしょうか。それはCPUの種類や処理内容によっても変わってくるものなのでしょうか。ご教授お願い致します。
回答: ほぼKSwordOfHasteさんの回答の通りですが、もう一つ重要な点があります。 それはCPUの種類にも関わってきますが、インテルのCore iシリーズにある「ハイパー・スレッディング(HT)」というものです。これは、一つのコアを擬似的に二つのコアに見せかけるというもので、例えば、コア数4でHTが有効になっていると、ソフト的には(OSからは)コア数が8個と認識されます。誤解している方も多いのですが、HT技術は高速化が目的ではなく、CPUの効率利用が目的です。そのため、うまく使えば結果的に高速化できますが、使い方を誤ると思ったほどのパフォーマンスが出ないばかりか、逆にパフォーマンスが低下する事態も起こり得ます。 最新のOSではHTかどうかを判別するためのAPIが用意されているので、がちがちにチューニングしてパフォーマンスを引き出すことも可能ですが、結構難しいです。