質問: 「コアを追加する」ことが「cpuを速くすること」と同じ物理的制限に直面しないのはなぜですか? 2014年には、並行処理機能について多くのプログラミング言語が推奨されていると聞いています。同時実行性は、パフォーマンス向上のために不可欠であると言われています。この声明を発表するにあたり、多くの人が2005年の記事「 昼休みは終わった:ソフトウェアの並行性に向けた基本的な方向転換 」を振り返ります。基本的な議論は、プロセッサのクロック速度を上げることは難しくなっているということですが、それでもチップ上により多くのコアを置くことができます。いくつかの重要な引用 私たちは、500mhzのcpuが1ghzのcpuから2ghzのcpuへと移行するのをよく見かけます。今日私たちは主流のコンピュータでは3ghz帯にいます。 重要な問題は、いつ終了するのかということです。結局のところ、ムーアの法則は指数関数的な成長を予測しており、明らかに指数関数的な成長は私たちが厳しい身体的限界に達するまで永遠に続くことはできないということです。光は速くなっていません。成長は最終的に減速し、さらには終了する必要があります。 ... 1つだけではなく、いくつかの物理的な問題、特に熱(大きすぎて消散しにくい)、消費電力(高すぎ)、および電流リークの問題により、より高いクロック速度を利用することがますます難しくなっています。 ...チップ会社が同じ新しいマルチコアの方向性を積極的に追求しているので、intelおよびほとんどのプロセッサベンダーの将来は他のところにあります。 マルチコアとは、1つのチップ上で2つ以上の実際のcpuを実行することです。 この記事の予測は遅れているようですが、その理由はわかりません。私はハードウェアがどのように機能するかについて非常にあいまいな考えしか持っていません。私の過度に単純化した見方は、「より多くの処理能力を同じスペースに詰め込むことがますます難しくなる」ということです(熱、電力消費などの問題のため)。私はその結論が「それゆえ、もっと大きなコンピュータを持っているか、私たちのプログラムを複数のコンピュータで動かさなくてはならないだろう」と結論づけるだろう。 (そして、確かに、分散クラウドコンピューティングは私達がもっと聞いているものです。)しかし、解決策の一部はマルチコアアーキテクチャのようです。コンピュータのサイズが大きくならない限り(これはこれまでにはありませんでしたが)、これは「同じスペースにより多くの処理能力をパックする」と言う別の方法のようです。「コアを追加する」と「cpuを速くする」のと同じ物理的制限に直面しないのはなぜですか?あなたができる最も簡単な言葉で説明してください。 :)
回答: 簡単な答え質問に対する最も簡単な答え 「コアを追加する」ことが「cpuを速くすること」と同じ物理的制限に直面しないのはなぜですか? 実際には質問の別の部分にあります。 私はその結論が「それゆえ、もっと大きなコンピュータを持っているか、私たちのプログラムを複数のコンピュータで動かさなくてはならないだろう」と結論づけるだろう。 本質的には、複数のコアは同じデバイス上に複数の「コンピュータ」を持つことに似ています。複雑な答え「コア」とは、実際に命令を処理する(加算、乗算、「and」など)コンピュータの一部です。コアは一度に1つの命令しか実行できません。あなたがあなたのコンピュータを「もっと強力」にしたいのなら、あなたができる2つの基本的なことがあります: スループットを上げる(クロックレートを上げる、物理サイズを減らすなど) 同じコンピュータでより多くのコアを使用する #1の物理的な制限は、主に処理によって発生した熱を放出する必要性と、回路内の電子の速度です。これらのトランジスタのいくつかを別のコアに分割したら、熱の問題を大幅に軽減できます。#2には重要な制限があります。問題を複数の独立した問題に分割してから、答えを組み合わせる必要があるということです。現代のパーソナルコンピュータでは、とにかくコアとの計算時間を争う多くの独立した問題があるので、これは実際には問題ではありません。しかし、集中的な計算上の問題をするとき、問題が並行性に従順であるならば、マルチコアは本当に役に立ちます。