マルチコア CPU はどのようにタスクを割り当てられるのでしょうか?

マルチコア CPU はどのようにタスクを割り当てられるのでしょうか?

私は AMD Octo コア CPU を使用しています。CPU メーター アプリを見ると、すべてのコアがアクティビティを持つ可能性がある一方で、いくつかのコアのアクティビティがより高く、より一貫しているように見えます。

「作業負荷」はコアごとにどのように分散されるのでしょうか? 一部のコアが他のコアよりも大きな負荷を受けているように見えるのはなぜでしょうか?

仕様: マザーボード ASUS ROG Crosshair V Formula-Z Windows 7 Pro CPU AMD FX-8320 16 GB の RAM

答え1

プログラムは、1 つのコアを使用する傾向があります。ただし、プログラムがマルチスレッド並列化などのソフトウェア設計手法を使用するように設計されている場合は除きます。一部のプログラムはそのような手法を使用しているため、一部のプログラムは負荷の一部 (すべてではない) を別の CPU コアにオフロードする場合があります。

もちろん、現代のオペレーティング システムは、複数のプログラムをマルチタスクで実行できるほど高度です。より具体的には、複数のプログラムがそれぞれ異なるスレッドを識別するように設計されているため、コンピューター (オペレーティング システム、CPU など) は、プログラムの異なる部分を異なる CPU に配置できます。

つまり、正確な詳細は実際にはかなり複雑であり、ハードウェアが進化し、オペレーティング システムが戦略を変更し、コンパイラにさまざまな最適化が含まれ、ソフトウェア設計者がさまざまな手法を使用するにつれて、変更される可能性があります。私は複雑な詳細をすべて知っていると主張するつもりはありません。

私が知っていることの 1 つは、一部のソフトウェアが複数の CPU コアを使用しているのに対し、他のソフトウェアはそれをまったく使用していない (または少なくともそれほど使用していない) 可能性があるということです。したがって、これは想像ではない可能性があります。あなたが気づいていると思うことは、おそらく実際に起こっていることとまったく同じです。

関連情報