これらのベンチマークではなぜ CPU が飽和しないのでしょうか。

これらのベンチマークではなぜ CPU が飽和しないのでしょうか。

私は、Powershell と C で 2 つの簡単なベンチマークを実行しました。これは、16 Gb の Win 7 Pro を搭載した、比較的高性能な i7-2600 で実行しました。

どちらも 8 コアのうち 2 つ (実際には 4 コアのデュアル ハイパー スレッド) を使用して実行され、実行時間 (30 ~ 60 秒) にわたって 40% ~ 70% の使用率で非常にピークに達しました。システムの残りの部分は静かでしたが、ドメイン上にあり、両方の開発環境が開いており、Firefox も開いていました。実行前後のバックグラウンド アクティビティは、合計 CPU 可用性の 1.5% ~ 2.5% を使用していました。

Windows では、これらの計算依存プロセスが、少なくともそれらが実行されるコアに CPU を固定することを制限しているのは何でしょうか。

これは私が行ったオンザフライのデモであり、CPU が 100% に固定されることが予想されました。

パワーシェル

$a = 1  
"Starting Loop"
get-date
DO
{
 $a++
} While ($a -le 50000000)
get-date

#include <stdio.h>
#include <time.h>

int main (void) {

  long long a;
  time_t mytime;
  mytime = time(NULL);
  printf(ctime(&mytime));
  /* for loop execution */
  for( a = 1; a < 100000000000; a = a + 1 ){

  }
  mytime = time(NULL);
  printf(ctime(&mytime));

 return 0;
}    

関連情報