- ベストアンサー
CPUを増やすとそれだけ性能があがる?
最近、スーパーコンピューターっていうものを検索して詳細を見ると 例えば「 3.0GHz × 2 」とかあるんですけど CPUって 増やすと性能が良くなる? (今まで、パソコンにCPUは1つだけであると思っていたので、)教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
う~ん。どうなのかな・・・意味が分かりますか? スレッド、プロセス云々。 Thread/スレッド=プログラムの実行単位のこと。一般に1つのプログラムに1つのThreadがあるものがシングルスレッド。複数のスレッドがあるものがマルチスレッドという。必ずプログラムには1つ以上のスレッドがある。道筋、連続という意味がある。 Process/プロセス=実際に実行されているプログラムののこと。過程・経過という意味がある。プロセスとはスレッドより大きな単位です。 では、具体的にわかりやすく言えばどういうことかというと、同時に複数のソフトを動かすことを大まかに言えばプロセスと考えることができます。(ただし、一つのソフトが一つのプロセス単位で動作しているわけではないですが・・・たいていは1プロセス1ソフトです) そして、そのプロセスの中に、スレッドがあります。スレッドの数が多く同時実行できるようになっていればマルチスレッド。そうでなければシングルスレッドとなる。 CPUを増やすと性能が良くなるかどうかですが、マルチタスクOSで尚かつマルチプロセッサに対応したOSであれば、性能が向上します。あくまで、OS(WindowsやMacintosh、Linuxなど)側がCPUの数に対応している必要がある。例えば、WindowsXP Home Editionは1つのCPUしか使えません。いくら物理的に2つのCPUを搭載しても1つは使えないのです。そうなると2つあっても性能は上がらないことになります。 しかし、複数のプロセッサを実装した場合、プリエンティブマルチタスクという環境に対応したOSを実装して尚かつマルチプロセッサに対応していれば、同時に実行するソフト(プロセス)が多い時にビジー(一時的に応答が滞る、CPUが負荷100%でシステムが停止したように見える)が減ったり、スレッド(実行単位)を分散できる設計のアプリケーションでより高速な動作を実現できます。 前者の場合は、一般にソフトウェアの速度が上がることはありません。ただ、複数のソフトを起動したときなどに、負荷が軽減されCPUが100%占有される率が大幅に低下します。また、100%になってもビジー状態になりにくくなります。ただ、効率という面ではマルチプロセッサの効果を十分に発揮することはできません。 後者の場合は、単一のアプリケーション利用時にも最大で1,9倍程度の速度向上が見られます。特に暗号化、符号化などのエンコード処理、その逆の伸張(デコード)で大きな効果を発揮できる場合が多いのが特徴。これらのソフトウェア技術は一般に複雑な関数をいくつも使っているため、処理の分散がし易くプロセッサが多いほど効率的に処理ができます。 <用語> マルチタスク=OSレベルで複数のスレッドやプロセスを実行出来ること。同時に複数の命令が処理できること。OSがそのような機能を備えていると言うこと。 プリエンティブマルチタスク=処理をOS側で強制的に制限、管理することが出来る機能。OS側で管理するため、同時実行タイミングをOS側でこまめに切り替えることができる。そのため、表で処理をしていても、裏で別の処理も行うことができる。今では当たり前だがこれができない時代もあったのです。 反意語には疑似(バーチャル)マルチタスクがある。 疑似マルチタスク(ノンプリエンティブマルチタスク)では、アプリケーション側が処理を管理する。Windowsで言えば、アクティブな一番表面にあるウィンドウは動作するが、その後ろにあるウィンドウは最前面にあるウィンドを閉じないと動作しない。ただ、端から見たときに両方が同時に動作しているように見える。 実際には最前面で動作しているソフト以外は、完全に一時停止の状態となる。Windows3,1以前のバージョンなどがそう。(MacOS 9,xも一応そうです) ノンプリエンティブには、さらにウィンドウ云々ではなく見た目でも1つのソフトしか動かせない場合も含まれる。 いかがでしょう。 大事なのは、 プロセッサの数が多ければ速くなるという法則を有効にするにあたり、 性能の向上があるかないかは、OSに依存するということがまず一つ。 もう一つは、使うソフトウェアによっても性能の差が生じる場合と、あまり生じないで、負荷が分散される場合などがある。 よって、それだけ性能が上がるとは限らない。また、性能が期待できるようになるには、それなりに負荷の大きいプログラミングや同時に多くのアプリケーションが動作している環境も必要になります。同じ処理をする上でプロセッサが1個、2個、4個、6個、8個と増えれば2倍と4倍と性能も倍々ゲームにはならない。
その他の回答 (6)
- pc6001
- ベストアンサー率23% (3/13)
3GHz×2の場合,単純に6.0GHz相当で動くわけではありません.また最終的に2倍までの性能はでません. はっきり言って,結果は処理のタイプによって全く異なります. 処理自体がどの程度まで並列処理ができるかどうか,OSも含めたソフト側でどれだけ対応しているかがミソです. 一般的な使用では1CPUの処理能力を超える仕事を与えても,遅くなることなく処理が継続できるといった程度のメリットしかありません.負荷に強くなるといったらよいでしょうか. バックグラウンドで,動画の圧縮を行いながら,フロントエンドでバリバリ3Dゲームをする場合には効果はあるでしょうね.はっきり言ってもったいないですが.負荷をかけてもストレスなく動く分,早くなったと感じる場合もあります. 画像処理や動画や音楽の変換などのマルチメディア系の処理は,並列処理が得意とする分野なので,それなりの高速化が見込める場合が多いです(あくまでもソフトの対応が必要). サーバの場合などは複数のリクエストを受け付け処理する必要があるので,CPUを増やすことで処理が遅くなったり,待たされたりせずに,実行できるようになります.利用ユーザーが増えた場合などには効果があるでしょう.ATMが1台の場合と3台の場合のような感じです. 蛇足ですが,Pentium4 HTなんかも,物理的な方式は異なりますが,1つのCPUを2つに分けて動作させて,上記のような並列動作の多い場合に効率よく処理できるような仕組みになっています. とりあえず,最高速度はそれほど変わらないが,負荷に強くなる.並列処理で最適化されている場合は,1CPUの場合よりも短時間で処理を完了することができる.といった感じでよいかと思います.
- apple-man
- ベストアンサー率31% (923/2913)
CPUは計算するところですから、大量の計算を うまく複数のCPUに割り当ててやると 計算が早く終わるとう原理ですが、 ほかの方の回答にあるようにソフトの 対応が必要なのと、クロック周波数と CPUの数によっては、回路上の信号の 遅延時間などが問題になり、マザー ボードそのものの設計も問題になって きます。 Windowsは、確かNTからCPU2個に対応 していると思います。 パソコンの速度って、CPUのクロックだけ でなく、周囲のいろいろな性能に依存 してますよね。 高いクロック周波数のCPUに合わせて メモリーやHDをグレードアップするより 古いCPUと同じCPUをもう1つ買って、 ダブルCPUのマザー買ったほうが 安上がりで高性能になる場合がある んですね。 昔、DOSVパソコン上で動くBeOSという OSが、CPU8個まで対応していましたが、 メーカー側は、希望があれば32個まで 対応できる用意があると言っていたと思います。 4,5年くらい前だったの思いますが、 32個のペンティアムプロセッサ搭載 可能のマザーボードがネットオークション に出ていたのを見ましたが、日本円で1000万円 くらいだったと思います。 プロしか使いこなせないと思うのですが、 それをオークションで出すってどうゆう こと? アメリカってすごい国だと 思いましたが・・・(笑)
- yutopapa
- ベストアンサー率47% (139/295)
>マルチスレッド命令のアプリとOSがなければ意味無いですし。 1プロセスの処理だけとらえればマルチスレッドに対応してなければ1個のCPUしか動作しないので確かに複数CPUは意味無いですが、マルチプロセスの処理をとらえれば、例えそれがシングルスレッドであってもそれぞれのプロセスが(原則として)別々のCPUに割り当てられるので複数CPUは意味があると言えます。 サーバープログラム(例えばDBサーバーとか)は、当然ながら1プロセスだけで動作している訳ではありません。何十プロセスもが同時に動作していますので十分効果があると言えます。また、OSの処理そのものもプロセスの一つです。 もちろん、それぞれのプロセスがマルチスレッドに対応していれば、更にCPUタイムを効果的に利用出来るのは言うまでもありません。 最近のパソコンでもPentium4などのHT対応CPU搭載のお陰で「マルチスレッド」という言葉が身近になりましたが、ちょっと勘違いされているようなのでフォローしておきます。
- Hiyuki
- ベストアンサー率36% (2604/7183)
小規模大規模にかかわらず、最近のシステムでは小さなCPUを並列して動作させて高速化を図ることは特に 珍しいことではありません。 CPUを2個使うぐらいであれば、PowerMacの上位機種や、ワークステーションでは当たり前になっています。 CPUが増えれば当然処理は速くなります。1人より2人のほうが作業の効率良いですよね。 当然、そのためには効率よく作業を割り振る必要があるので、この辺の処理も重要です。
- TT250SP
- ベストアンサー率41% (2393/5813)
速くなる技術ではなく、遅くならない技術だと捉えた方がいいでしょうね。 マルチスレッド命令のアプリとOSがなければ意味無いですし。 http://pcweb.mycom.co.jp/special/2002/dual/ http://www.forest.impress.co.jp/article/2000/02/15/dualcpu.html 現行のPentium4とXeonはOSから、ひとつのコアでCPUが二つに見えるHyper-Threading Technologiesが導入されています。 Intelによれば、ひとつのダイの中に複数のコアを組み込むことも考えているようです http://pc.watch.impress.co.jp/docs/2004/0227/kaigai069.htm
- Veil
- ベストアンサー率18% (68/369)
マルチスレッド処理に対応したプログラム、OSなら複数の処理を同時に行えるので高速化が期待できます うちの会社にあるのDBサーバもCPUが4つありますが速いです ですが、マルチスレッド処理に対応していないプログラム、OSだったら1個しかCPUが動かないので、宝の持ち腐れです