回答:
複数のプロセッサを使用すると、コンピューターは文字通り2つのことを一度に行うことができます(2つのことを一度に行うように見えるのではなく、実際にはタスク間を非常に迅速に交換するだけです)。
複数のコアは同じです。複数のプロセッサに対する複数のコアの利点は、CPUの一部のビット(2次キャッシュなど)を共有することです。これにより、共有データがある場合はさらに効率的に動作できます。これにより、製造がはるかに安くなります。また、シングルデュアルコアCPUは、2つのシングルコアCPUよりもスペースを取りません。これは、ラップトップに移行する今日の重要な要素です。
パフォーマンスには多少の違いがあるかもしれませんが、気付くことはほとんどありません。
あなたは、で始まる必要がありマルチコアとマルチスレッドウィキペディアの記事。
まあ、それは垂直方向ではなく水平方向にスケーリングすることです。昔は、CPUをますます高速化するために使用されていました。時間の経過とともに、CPUの速度はほんの一握りのメガヘルツから最大3ギガヘルツまでの超高速に増加しました。しかし、3ギガヘルツの速度に達すると、CPUメーカーは、単一のCPUコアでどれだけ速度を上げることができるかに限界を見出しました。
この速度競争が起こっている間、より多くの電力を必要とするアプリケーション(サーバーやCGIレンダーファームなど)、マルチソケットCPUマザーボードが導入されました。これにより、マザーボードに複数のCPU(通常は2つ)を配置できました。一度に複数のCPUを利用できるオペレーティングシステムは、これらの2つのCPUに負荷を分散することでこの機能を利用するソフトウェアを実行できるため、実行速度が向上します。
今日に早送りします。CPUの速度制限にやや達し、垂直方向にスケーリングする(高速化する)代わりに、CPU製造業者は単一のチップに複数のコアを配置することで水平方向にスケーリングし始めています。現在、デュアルコアチップは非常に一般的であり、すぐにクアッドコアが標準になります。ここで、1つのマザーボードに2つのクアッドコアを配置したと想像してください。これは、オペレーティングシステムが8 CPUにアクセスし、すべてが約3ギガヘルツで実行されることを意味します。
マルチコアCPUのほかに、「ハイパースレッディング」と呼ばれる技術を使用する「偽の」デュアルコアCPUもあります。ハイパースレッディングでは、実際には1つの実際のコアのみが存在する場合、CPUは2つのCPUの存在をエミュレートします。CPUは、特定の方法で命令をスケジュールすることにより、通常はダウンタイムになるものを利用する方法を知っており、より効率的になっています。
ソフトウェア開発の観点からは、比較的小さな違いがあります。
誤って記述されたマルチスレッドアプリケーションの中には、マルチコアプロセッサで誤って動作するものもありますが、マルチプロセッサマザーボードでは動作しない場合があります。書かれたソフトウェア。
使用可能なコアの総数が同じ場合の2つのシナリオの主な違い(たとえば、1コアの4コアプロセッサと2コアの2コアプロセッサ)は、マルチプロセッサシナリオの場合、通常、より大きな集約メモリがあることです。 -帯域幅。これは、メモリを集中的に使用するワークロードの場合は、後者の方がよいことを意味します。ただし、ロックプリミティブは実際には少し遅くなる可能性があることに注意してください(ハードウェアの実装によって異なります)。したがって、多くの同期を使用するアルゴリズムは実際には後者でパフォーマンスが低下する可能性があります。
たとえそうであっても、その違いについてはあまり心配しません。なぜなら、この違いが重要な領域で作業しているなら、おそらくそれについてすでに知っているだろうからです(ドメイン固有の知識)。