web-dev-qa-db-ja.com

より高いコア数またはより高いクロック速度は、コンピューターのパフォーマンスにとってより有益ですか?

シリコンコストの低下と消費者のニーズの高まりにより、製造業者は2つのことの1つを推進しているようです:クロック速度および/またはコア数。現状では、プロセッサのクロック速度が上昇しているようには見えませんが、プロセッサコアの数は増えています。

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

クロック速度を上げたり、コアの数を増やしたりすることは、システム全体のパフォーマンスにとってより有益ですか?何百ものコアがすべて一緒に実行されているか、またはクロック速度が現在の10倍速いと仮定します(物理的に可能かどうかに関係なく)。

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


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

16
Breakthrough

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

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

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

最初の状況は、ユーザーが迅速かつ効率的に計算を実行する機能を望んでいるため、プロセッサーの「速度」がより重要な場合です。これらの状況は通常、計算集約型の処理、つまり encryption/decryption の素数を計算するためのものです。

2つ目は、各プログラムを個別のコアに割り当てることができるため、複数のコアが役立ち、各プログラムが互いに「ボトルネック」から解放されます。今日の世界では、平均的なユーザーが一度に複数のプログラムでコンピューターを使用するため、マルチコア処理が望ましいものになります。

ただし、マルチコア!=速度が速くなるか、すべてのケースでパフォーマンスが向上します。ほとんどのプログラムはシングルコア処理用に作成されているため*、クロック速度はまだ見ることが重要です。両方の組み合わせを考慮に入れる必要があります(他の多くの要因も同様に)


*いくつかのプログラムがあり、うまくいけば、もっと多くが作成され、複数のコアを同時に使用できるようになります。ソフトウェアの未来はこの " Parallel Programming "で見つかります:

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

- インテル

12
James Mertz

個人的にはコア数が進むべき道だと思います。ソフトウェア開発はネットワークシステムに移行したため、ローカルリソースだけが利用できるリソースではなくなりました。あなたが今どのように働いているかで最も重要な要素は、あなたがその一部であるnetworkです。

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

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

2
surfasb

まず、シングルコアの速度はそれほど低下していません。 Intelの現在のSandy Bridgeのラインナップがメガヘルツの点でシングルコアのPentium 4を上回らない唯一の理由は、Intelが競争力を欠いているため、それほど強くプッシュする必要がないためです。

第2に、シングルコアであっても、クロック速度がすべてではありません。アプリケーションのパフォーマンスを見ると、やはりPentium 4に対して、現在のIntelのラインナップは、クロックサイクルごとに約50%高速です。 Sandy BridgeがクロックサイクルごとにPentium 4よりも高速である理由(プレスコットはその最後の具体化です)は多岐にわたりますが、プリフェッチインテリジェントメモリコントローラーがあり、メモリコントローラーがCPUと同じダイ上にあり、より高い 命令レベルParallelism(ILP) これに貢献します。

命令レベルの並列処理とは、基本的に、プロセッサが命令とその依存関係を調べ、2つの命令が相互に依存していない場合、CPUが両方のデータのロードを同時に開始し、場合によっては、彼らは他の前に到着します。

第3に、一部のアプリケーションは実際に複数のコアから非常にうまく恩恵を受けます。たとえば、Photoshopはほとんどの場合、動作周波数よりも多くのコアを優先します。つまり。遅いクアッドコアでさえ、ほとんどの場合、デュアルコアチップに勝ち、デュアルコアはシングルコアチップに勝ります。トライコアは混合バッグであり、デュアルコアよりも多くの場合勝ちますが、常にそうとは限りません。

一般に、多くの異なるデータセットに対して同じ種類の操作を行うアプリケーションは、並列処理の恩恵を最も受けます。たとえば、ビデオ圧縮や写真編集は、非常に簡単に並列化できます。一方、コンピューターゲームは並列化が難しいことが判明しています。もちろん、それらのグラフィックは非常によく並列化されますが、その部分はCPUではなくGPUで実行されます。残りの物理、ゲーム世界の簿記、AIは、並列化が簡単ではありません。

2
Zds

ChrisFがコメントで言及しているように状況によって異なりますしかし、そのような答えは実際には答えではないので、一方が他方よりも有益になるいくつかのシナリオを作成してみます。

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

しかし、今日コンピューターで実行される最も一般的なタスクの1つであるブラウジングを忘れました。いくつかの人気のあるブラウザーは、各タブを個別のプロセスで開きます(Chromeは、私が使用しているものであるため、これを実行すると確信しています)。つまり、クアッドコアシステムで4つのタブを開いている場合、各ブラウジングウィンドウは(理論的には)「コア自体」(OSスレッドなどを無視)を持ち、他のブラウザーのタブやウィンドウが開かれていないかのように高速です。一度に多くのタブを開いて閲覧する人にとって、これは非常に高速なCPUコアを構築する必要なしに、深刻なパフォーマンスの改善になる可能性があります。

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


他の答えもいくつかの重要なポイントを作ります:

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

実際、今日最も重要な要因はプロセッサのクロック速度ではありません。この「比較の要因」が廃れてから、多くの新機能が発表されています。

今日、プロセッサーのパフォーマンスについて推測するために、多くの要因を検討する必要があります。のようなもの:

  • コアの数
  • 並列操作スレッドの数
  • プロセッサフ​​ァミリ(デュアルコア、Pentium、Core i/Calpella、Sandy Bridgeなど)
  • プロセッサー生成(2番目、6番目など)、次に
  • プロセッサのクロック速度。

実際、プロセッサの速度を比較したいときは、 PassMark of notebookcheck ベンチマークテーブルを調べます。私の意見では、ベンチマークはプロセッサの速度とパフォーマンスを測定して比較するための最良の要素です。

1
Diogo