CPUコア。多ければ多いほど良い?
私は現在、職場ではデュアルコアプロセッサ、自宅ではクアッドコアプロセッサを使用しています。アプリケーションの起動/ネットサーフィンに関しては、どちらのPCもかなり同等であることに気がつきました。
違いがわかるのは、デュアルコアが2.8GHzで、クアッドコアが2.4GHzということです。
**クロック速度の速いデュアルコアと、クロック速度の凡庸なクアッドコアのどちらが良いのでしょうか?
私は現在、職場ではデュアルコアプロセッサ、自宅ではクアッドコアプロセッサを使用しています。アプリケーションの起動/ネットサーフィンに関しては、どちらのPCもかなり同等であることに気がつきました。
違いがわかるのは、デュアルコアが2.8GHzで、クアッドコアが2.4GHzということです。
**クロック速度の速いデュアルコアと、クロック速度の凡庸なクアッドコアのどちらが良いのでしょうか?
**この答えは8年前に書かれたものです。並列プログラミングはその後、より重要になってきました。これは、固有のクロック速度の限界とトランジスタサイズの限界に急速に近づいているためと思われます。
あなたの一番の問題は、マルチコア用に書かれていないソフトウェアです。
Jeff Atwood氏の Choosing Dual core or Quad Core に関する優れた記事を参照してください。
ほとんどのソフトウェアでは、2つのコアの後にリターンが減少するポイントに非常に急速に突き当たることになります。Quad-Core Desktops and Diminishing Returns ](http://www.codinghorror.com/blog/archives/000655.html)では、今日のソフトウェアが4つのCPUコアでも本当に効果的に使えるのか、ましてや数年後には8つや16つのCPUコアを目にすることは避けられないだろうと疑問を投げかけました。
あなたの答えはここにあります(Jeffの記事からコピーしたハイライト)、
しかし、ここにはExcel 2007やロストプラネットの「同時処理」の設定など、いくつかの驚きがありました。いずれソフトウェア工学は、クロック速度が並列性よりも重要ではないというところまで進んでしまうかもしれません。あるいは、最終的には、より高速なクロック速度とより多くのCPUコアの間で選択をしなければ、それは無関係になるかもしれません。しかし、その間は、ほとんどの場合、**クロック速度が勝っています。より多くのCPUコアが自動的に優れているわけではありません。一般的なユーザーは、可能な限り最速のデュアルコアCPUを使用した方が良いでしょう。
フロントサイドバス (この言葉はいつも私を楽しませてくれました)の問題。
ムーアの問題 [ * * *
] (http://arstechnica.com/hardware/news/2008/04/what-you-need-to-know-about-nehalem.ars) (この言葉はいつも私を楽しませてくれました)。
ムーアの法則により、プロセッサ設計者はトランジスタの豊富さに困惑していますが、それがIntelの45nm Nehalemプロセッサよりも明らかになっています。今年後半に4コアと8コアのバリエーションでデビューするNehalemは、単一のプロセッサソケットに1トンのハードウェアを詰め込んでいます。(初期の数値では、クアッドコアNehalemのトランジスタ数は7億8,100万個とされていますが、8コアモデルの数値はまだ出ていません)。しかし、Intelプラットフォームの既存のフロントサイドバスアーキテクチャですべてのハードウェアを供給しようとするのは愚かなことだ。つまり、Nehalem氏は、Intelの老朽化が顕著なフロントサイドバスアーキテクチャに長い間の死の鐘を鳴らしているのと同じくらい重要なことなのだ。
インテルの新しい QuickPath Interconnect (QPI)が表すインテルのシステム帯域幅状況の激変は、おそらくNehalemの設計を形作った最大の単一要因である。QuickPathとNehalemの統合メモリコントローラの間で、Nehalemプロセッサは、特に2ソケットと4ソケットの実装において、これまでにない量の総帯域幅にアクセスできるようになります。
AMDは、以前にメモリコントローラをプロセッサ内に移動させ、Hypertransportを使用していた。
私の経験では、1つのコアから2つのコアに移行することで、パフォーマンスに大きなメリットがあります。突然、1つの高 CPU プログラムがマシンをロックしたり、異常に遅くなったりすることはありません。大きな違いです。
でも、2コアから4コアにすると?99%の人にとっては違いはありません。一度に多くのプログラムを実行しているか、2つ以上のコアを利用できるプログラムを使用している必要があります(現実的にはそれほど多くはありません)。ある種のメディアエンコーダーが思い浮かびます。
この点では、Intel Core 2sとAMD Phenomsの間にも違いがあります。AMDはHypertransportというポイント・ツー・ポイント・プロトコルを採用しているので、各コアは専用の帯域幅を持っています。Intel Core 2s (ただし、***Core i7sやその他のNiehalemベースのCPUではありません)はフロントサイドバスを使用しており、これは共有帯域幅であるため、より多くのコアが同じ帯域幅を競い合うことになります。
これは、同じクロックのクアッドコアでも、状況によっては(わずかに)遅くなる可能性があります。金銭的な価値は、やはりデュアルコアの方があると思います。そうは言っても、私はクアッドコアを持っています。
私には、多かれ少なかれ、ハードウェア設計者がアイデアを使い果たしてしまったように見えます。マルチスレッドのアイデア全体が大失敗に終わっても、私は全く驚かないでしょう。
こう言ってみましょう。過去50年の間に、私は1000以上のプログラムを書いてきましたが、その多くはかなりのサイズのものでした。その中で、並列化やマルチスレッド化によって顕著に改善されたプログラムは5つも思いつきません。確かに、例えば、マルチプロセッサは TeX にとって何の役にも立ちません。
いくつかのアプリケーションでは、マルチコアを利用することは非常に簡単です。しかし、他のアプリケーションの中には、その恩恵を受けないものもあれば、開発者が最適化すれば恩恵を受ける可能性のあるものもあります(これは非常に難しいことです)。
会社のメインデスクトップには、8GBのRAMを搭載したデュアルクアッドコアXeonマシンを使用しています。
プログラミングをしていて、Internet Explorer、Chrome、TweetDeck、Visual Studio 2008 (または 2010)、ローカルの Sql Server Express インスタンスがあれば…すべてがうまく動作します。
比較的、以前はデュアルコアを使用していましたが、Visual Studio、Chrome、Sql Expressだけを実行していると、状況がギスギスしてきました。
これはマシンをどう使うかの問題です。もしあなたがビデオ編集、3Dモデリング、または大量のリソースを必要とするプログラミングを行うパワーユーザーであれば、クアッドコアと大量のRAMが必要になるでしょう。
Anandtech.com]によると、(http://www.anandtech.com/mac/showdoc.aspx?i=3597&p=7).
すべてはチップのTDP、つまり熱設計点に集約されます。プラットフォームがより多くのTDPに制約されているほど、IntelのTurboモードの恩恵を受けることができます。4つのコアを130WのTDPに収めるためには、各コアは同じTDPで1つのコアだけを搭載した場合よりも低いクロック速度で動作しなければなりません。
より高いTDPでは、通常、個々のコアをかなり高く動作させるのに十分な熱的ヘッドルームがあります。低いTDPでは、CPUメーカーはコア数とクロック速度の間でトレードオフを行わなければなりません。
これはすべて、コア(またはスレッド)とコア周波数の間で選択しなければならないという文脈の中でのことです。
それは依存しています。すべてのコアを多用するようなことをするのであれば、4コアの方が良いでしょう (ビデオ編集、レンダリングなど)。ほとんどの人は、現時点では2つの高速コアの方が良いと感じるでしょう。
最新の i7 プロセッサは、アクティブコアのすべてが必要ではない場合、実際にはアクティブコアのクロック速度を上げることができることに注意してください。例えば、2.4GHz のクアッドコアを持っているが、ソフトウェアを実行するのに 2 つのコアだけが必要な場合、自動的に 2.8GHz にクロックアップされることがあります (実際の数字ではなく、単なる例です)。
そして、私が思うに最新世代のi7は、1つか2つのコアしか必要としない場合は、3つか4つのビンをクロックアップすることができます。そのため、現在のようなトレードオフのままでは終わらないかもしれませんが……。
ビデオエンコーディング、3D レンダリング、分散ソースコードのビルドを多く行っている場合は、コア数が多いほど良いでしょう。これらのタイプのアプリケーションでは、1コアから2コア、4コアから8コアに移行すると、パフォーマンスに著しい差が出てきます。
それ以外の場合、標準的なアプリケーションを実行していても、コア数が増えても恩恵を受けることはありません。ゲームでさえ、複数のコアを利用することはあまりありません。IMOでは、より良いグラフィックカードにお金を使った方が良いでしょう。
あなたの場合はクアッドコアの方が良いでしょう。覚えておいてください、コア数が多ければ多いほど、より多くの並列処理が可能になります。つまり、デュアルコアの場合、1つのアプリをクアッドよりも速く実行できるかもしれませんが、クアッドは4つのアプリをデュアルよりも速く実行することができます。また、アプリが並列(マルチスレッド)で処理するように書かれている場合、アプリはマルチコアアーキテクチャでより良く動作します。
これはすべて相対的なものですが、100Mhzで動作するクアッドコアが4Ghzのデュアルコアを上回ることはありません。一般的に言えば、コア数が多ければ多いほど良いということになります。