コア数が多いほうが、クロック速度が速いほうが、コンピューターのパフォーマンスに有利ですか?

コア数が多いほうが、クロック速度が速いほうが、コンピューターのパフォーマンスに有利ですか?

シリコン コストの低下と消費者のニーズの高まりにより、メーカーはクロック速度とコア数のどちらかを推進しているようです。現状では、プロセッサのクロック速度はもはや上昇しておらず、プロセッサ コアの数は上昇しているようです。

ほんの数年前、私は高速なシングルコアのPentium 4プロセッサを持っていたことを覚えています。今日まで早送りすると、シングルコアプロセッサを購入することすらできないと思います(マルチコアプロセッサの増加は言うまでもありません)。携帯電話でも)。この調子でいくと、数年後には数百のコアを持つコンピュータが登場するかもしれません(そして、多くのオペレーティング システムがすでにそれをサポートしていることも知っています)。

システム全体のパフォーマンスにとって、クロック速度を上げることと、コアの数を増やすことのどちらが有利でしょうか? 数百のコアがすべて同時に動作したり、クロック速度が現在の 10 倍になったりすると仮定します (物理的に可能かどうかは関係ありません)。

暗号化、ファイル圧縮、画像/ビデオ編集など、あるプロセスから最も恩恵を受ける一般的なプロセスの例にはどのようなものがありますか?できる並列処理を増やすことで高速化されるはずですが、現在は(技術的な理由により)高速化されていませんか?


仮想プロセッサのコア設計 (ワード サイズ、アドレス ビット幅、メモリ バス サイズ、キャッシュなど) がまったく同じであると仮定すると、ここでの唯一の変数はクロック速度とコア数です。また、1 個、2 個、または 4 個のコアについて話しているのではなく、数十から数百個のコアを想像してください。

答え1

考慮すべき基本的な状況は 2 つあります。

  1. プロセッサは、単一のプログラムの計算のみを行うコンピュータで使用される。

  2. プロセッサは複数のプログラムを同時に実行するために使用されます

最初の状況は、ユーザーが計算を迅速かつ効率的に行う能力を求めているため、プロセッサの「速度」がより重要になる状況です。これらの状況は、通常、計算集約型の処理、つまり素数の計算に使用されます。暗号化/復号化

2 つ目は、複数のコアが便利な場合です。各プログラムを別々のコアに割り当てることができるため、各プログラムが互いに「ボトルネック」になることがなくなります。今日の世界では、平均的なユーザーはコンピューターを複数のプログラムに同時に使用するため、マルチコア処理が望ましいものになります。

しかし、マルチコア!=いずれの場合も、より高速またはより高いパフォーマンスが求められます。ほとんどのプログラムはシングルコア処理用に書かれているためクロック速度は依然として重要です。両方の組み合わせを考慮する必要があります。(他の多くの要因も同様)


*複数のコアを同時に使用できるプログラムがいくつかあり、近いうちにもっと開発されることを期待しています。ソフトウェアの未来はここにあります。並列プログラミング「:」

ソフトウェア開発者は、シングルスレッド アプリケーションを高速化するためにクロック速度の向上だけに頼ることはできなくなりました。競争上の優位性を獲得するために、開発者はスレッド環境で実行できるようにアプリケーションを適切に設計する方法を習得する必要があります。マルチコア アーキテクチャには、2 つ以上のプロセッサ「実行コア」または計算エンジンを含む単一のプロセッサ パッケージがあり、適切なソフトウェアを使用することで、複数のソフトウェア スレッドを完全に並列に実行できます。

-インテル

答え2

個人的にはコア数こそが正しい道だと思います。ソフトウェア開発はネットワークシステムに移行しており、もはやローカルリソースだけが利用できるリソースではありません。今、どのように仕事をするかという最も重要な要素は、通信網あなたはその一部です。

モバイル ブロードバンド、常時接続、リモート アクセスなどへの移行に注目してください。常時接続にはバッテリー寿命が必要です。バッテリー寿命にとってどの CPU 要素がより最適であるかは議論の余地がありますが (作業価値と時間という古典的な最適化方程式があります)、個人的には、1 つを選ぶ必要がある場合は、より多くのコアを選択します。

Intel では、コアにオンデマンドで電力を供給できるようになりました。コアをスリープ状態にしないほど最適ではありませんが、より多くのコアを使用するオプションがあることで、同じハードウェア プラットフォームでより多くのアプリケーションを実行できる柔軟性が得られます。

答え3

ChrisFがコメントで述べているように、場合によります。しかし、そのような答えは本当の答えではないので、どちらかが他方よりも有益となるシナリオをいくつか考えてみましょう。

あなたが言及した一般的なプロセスのほとんどでは、コアの数はあまり重要ではありません。ほとんどの作業は単一のスレッドで行われ、そのスレッドは一度に 1 つのコアでしか実行できないからです。このようなプロセスでは、1 つの非常に強力なコアの方が、2 つの低速コアよりもパフォーマンスが優れています。暗号化とファイル圧縮はどちらも例外になる可能性がありますが、使用されるアルゴリズムと、それらが並列実行できるかどうかによって大きく異なります。

しかし、今日のコンピューターで実行される最も一般的なタスクの 1 つであるブラウジングを忘れています。いくつかの一般的なブラウザーは、各タブを別のプロセスで開きます (私が使用しているのは Chrome だけなので、これが行われていることは確かです)。つまり、クアッドコア システムで 4 つのタブを開いている場合、各ブラウジング ウィンドウは (理論上) 独自のコアを持つことができ (OS スレッドなどを無視)、他のブラウザー タブ/ウィンドウが開いていないときと同じくらい高速になります。一度に多数のタブを開いてブラウジングする人にとって、これは非常に高速な CPU コアを構築しなくても、パフォーマンスを大幅に向上させることができます。

低速コアのマルチコアシステムが高速コアのシングルコアシステムよりも高速かどうかを知る鍵は、同時に多くの異なることまたはいくつかあるが重いものこれはユーザーごとに大きく異なるため、質問に対する答えも異なります。


他の回答でも、いくつか重要な点が指摘されています。

  • プロセッサのパフォーマンスは、もは​​やクロック速度やコア数だけによるものではなく、クロック速度やコア数が向上するにつれて、プロセッサの他の部分がボトルネックになってきています。
  • ほとんどのユーザーにとって、プロセッサのパフォーマンスはそもそもボトルネックではありません。Google Docs などのホスト型アプリケーションで時間を費やす場合、プロセッサ コアの速度よりもネットワーク カードの速度の方が重要になります。高解像度の映画素材を視聴または編集する場合は、ハード ディスクのパフォーマンスの方が重要になります。などなど...

答え4

実際、今日最も重要な要素はプロセッサのクロック速度ではなく、この「比較要素」が使われなくなって以来、多くの新機能が導入されています。

今日では、プロセッサのパフォーマンスを推測するために、多くの要素を考慮する必要があります。たとえば、次のような要素です。

  • コア数
  • 並列処理スレッド数
  • プロセッサ ファミリ (デュアル コア、Pentium、Core i / Calpella、Sandy Bridge など)
  • プロセッサ世代(第2世代、第6世代など)
  • プロセッサのクロック速度。

実際、プロセッサの速度を比較したいときはパスマークノートブックチェックベンチマーク テーブル。私の意見では、ベンチマークはプロセッサの速度とパフォーマンスを測定および比較するための最良の要素です。

関連情報