アプリ版:「スタンプのみでお礼する」機能のリリースについて

以前こちらで回答していただいたとき、CPUのGHz表示は一秒間にこなす作業の個数と教えていただきました

一概にこの数値が高いからといって、高性能ではないと分かっていますが、i7やcore2はPen4と違って同時処理に優れているとのこと

ちょっと自作系の知識は駆け出しでよくわかっていないのですが、これは単純にCPUが二つ分もしくはそれ以上(Quadとか?)同じスペースに収納されているからかなぁと思います(たぶん間違ってると思いますが)

で、疑問なのですがPen4などで3.0Ghz~の一方、i7の下位CPUでは2.6Ghzと『数字の上では』少々劣っています
が、結局処理速度で言うとシングルCPUとマルチCPUでは「ひとつの作業をする」としたらどちらが速いんでしょうか?

i7などの数値は各CPUごとの数値で作業を集中させたらこれ(2.6Ghz)の数倍はあるのか、それともそもそもひとつの作業を分担することはできないのか、または作業内容によって変わってくるのか
ちょっと気になりました

まぁ環境や条件でかなり変わってくるのであくまで参考とさせていただきます

つたない質問で申し訳ありません

A 回答 (2件)

まず、次の点


「CPUのGHz表示は一秒間にこなす作業の個数と教えていただきました」
これは誤りですね。

このG(ギガ、10億を表す)Hz(ヘルツ)は回路間での同期周波数(データのやり取りをすることができる回数)であり、実際に確実に作業する(した)個数ではありません。
分かりやすく言えば、ベルトコンベアで物が流れる速度のようなもので、この時期だとミカンやリンゴが流れる仕分け用ベルトコンベア(これをCPUではパイプラインと呼ぶ/流れ作業のことです)の速度が1GHzなら1秒間に10億の速度(まあ、単位はメートルでもミリでもマイクロでも分かりやすい単位を当てはめてください)で進むということになります。即ち10億分の1秒に一つのリンゴやミカン(コンピュータでは一定の単位データ)が運べるのです。

ただ、コンベアが速いからといって人が仕分けるときにミス無く仕分けられるかは別です。例えば、1GHzが基本だとして2GHzならその2倍の速度です。3GHzならその3倍ですし、4GHzに至っては4倍です。
流れる量が増えても人が処理できる数には限りがあり速すぎるとミスが増えるように、CPUにおいても同じ症状が発生するのです。具体的には速度を上げれば見落としなどのミスが増えますから、作業人数を増やしたり熟練した人を雇ったりしますよね。
CPUも速くなりすぎれば、回路をそのために増やして電気を大量に食ったり、処理が雑になり失敗が増え性能が落ちたり、効率が下がることがあるのです。Pentium4(NetBurst Micro-Architecture)と呼ばれるプロセッサはその負の部分が多いことで有名でした。

即ちCPUの周波数は、あくまで回路(回路を流れることができるデータ)の速度であって、処理した(こなした)データの数ではないのです。周波数が高いからといってシングルタスクが速くなるわけではありません。当時の話で言えばPentium M(2GHz/Dothan)プロセッサが動画処理などを除けばPentium4 3,2GHzと大差ないかPentium Mが上回るなどの話が多々ありました。

Core2に使われたCore Micro-Architectureでは、Pentium Mの技術にPentium4の先進的な利点を取り入れ、周波数を上げることではなくミスを極力減らし効率的に運用できる改善を行ったのです。具体的に言えば、回路を高速化ではなく効率化に割り振り周波数は低めに抑えました。分岐予測と呼ばれるどの回路にどの命令を与えるかを改善し、Pen4ではミスとなっていた処理を大幅に改善しました。新しい命令セット(SIMD)を実装しマルチメディア処理での処理改善を図っています。セカンドキャッシュ(Core i7はサードキャッシュ)の配分を見直し、マルチタスクでもシングルタスクでも調停処理(どちらのCPUで命令を処理させるかを決める装置)が効率的に働くようにしました。さらに、Core i7ではパソコンで最もボトルネックとなっている主記憶装置(メインメモリ)を制御する回路(メモリコントローラハブ)をCPUに統合し、CPUによるダイレクトメモリアクセス性能を飛躍的に向上させています。

それによって1.8GHzのCore2 DuoでもPentiumDの3,4GHzより速度が全処理において高速化したのです。さらに、Core i7においても同じ周波数のCore2よりはシングルタスクも含めて性能が僅かながら向上しています。(ただし、Core2の最高クロックに対してのCore i7の最低クロックの性能向上率はあまりないか下です。古いアプリケーションでは処理によってはCore2に劣るケースもあります。)


Q/結局処理速度で言うとシングルCPUとマルチCPUでは「ひとつの作業をする」としたらどちらが速いんでしょうか?

A/一言で言えば、プロセッサやアプリケーションの設計思想によります。マルチコアCPUやマルチCPUは、コアやプロセッサの数が増えるから性能が上がるというものではなく、分散処理ができるアプリケーションやOS環境において処理の負荷を分散し、ビジー(CPU使用率が100%になること)を減らすというのが本来の目的でした。そのため、昔からサーバやワークステーションに使われてきたのです。ただ、CPUのクロックが発熱などによって上げられないことが明確になったことで、1つのアプリケーションで分散処理に特化させなさいという方向にシフトしたのです。
それに最適化すれば、速度はCPUが2コアなら性能も2倍未満に4個なら4倍未満になるのです。

昔からあるアプリケーションなどプログラムが特化していない場合は、上記に書いたように同じ1GHzでもプロセッサが違えば、演算ミスがどれだけ多いのか、少ないのかで速度は変化します。

即ち、クロックは同じ構造のプロセッサならば高いほど高性能になる要素となりますが、違う名称や機構のプロセッサではその特性や機能によって同じクロックでも性能が変わるということになります。

まあ、今やアプリケーションがCPUやGPUに適応するのが当たり前になり始めていますから、クロックよりコア個数やCPUのソケット数の方が大事になってきています。そして、今後はGPUの性能もパソコンの汎用性能を決める切り札になるでしょう。
    • good
    • 0
この回答へのお礼

素人にも良く分かる例を交えて教えていただき、大変参考になりました

現在技術革新というのは閉塞状態にあるらしく、開発者も苦労しているという話はやはり本当だったようですね

ありがとうございました!

お礼日時:2008/12/29 18:17

誤解をまねきそうな表現なきがします…。


"こなす"ではなく"こなせる"がただしいです。
CPUの速度はIPC(Instructions/Cycle)×周波数で計算されるわけですが、IPCと周波数はトレードオフの関係にあります。あっちを立てればこっちが立たず、というわけです。
一番効率が良いのは実は486DXでパイプラインが単純だったため周波数=こなす量でした(物理的なロスは仕方がないですが)
余談ですが、LarrabeeはPentium2がベースになっています。

IPCが問題になってきたのはPentiumからで、作業を予測する機能が搭載されるようになったためです。予測がはずれるとその分は破棄してやり直しですから、ロスとなる=IPCが下がるというわけです。
Pentiumは刷新されるたびにパイプラインの細分化と高速化でそのロスを補おうとしましたが、発熱という物理的な限界が問題になってきます。そこで並列作業を行いIPCを引き上げようとするわけですが、当然作業を効率よく振り分けるシステムが必要になり、CPUの複雑化、クロックダウンとなるわけです。
以上がPentium~Core2のCPUの歴史の概略です。

クロックを下げざるをえなかったのは並列処理を選択したことによる弊害です。選択したくて選択したわけではありません。周波数を保ったまま回路が増えると当然発熱も上がりますので、それは本末転倒ですし。


あらゆる作業においてCore系が上というのは間違いで、Core2マイクロアーキテクチャにも当然弱点はあります。Pentium Dよりさらに効率化をすすめるため作業予測を多重化してしまったので突然のタスクの変化には弱くなっています。こういった状況に陥った場合、フリーズしたかのような挙動を見せてしまうこともありますね。逆にエンコードなどの同じ命令を繰り返すものは得意とします。


前置きが長くなりましたが質問に対する答です
(1) 実際の処理速度に関しては作業によります。上記のようにCore系、Pentium系それぞれ得手不得手がありますし。現実OSの運用などの作業があり、完全なシングルタスクは考えにくいのでどうしてもシングルコアCPUに不利になりますね。そういったものを度外視してマルチコアCPUと完全なシングルタスクの演算をさせた場合はシングルコアの方が速いですよ。

(2)作業の分担は可能です。ただし、"振り分ける"作業が追加されますので作業上限は単純にコア数倍とはいきません。

GPGPUは結局ストリーミングプロセッサに過ぎないので一般的な作業には向かないこともあり、用途は限られるでしょう。エンコードやCGには使えますが、汎用性を持たせるのは難しいだろうというのが実情です。
Larrabee等の方がそういった面では汎用性に優れているはずです。
    • good
    • 0
この回答へのお礼

なるほど

購入を検討する上での参考に質問しましたが、選ぶに当たってやはり表面上の数値で単純に高性能かどうかは測れないということですね
シングル同士、マルチ同士で比較した場合、体感できるほど性能差が分かるということはあまりない、ということですかねぇ

ご指摘いただいたように完全なシングルタスクというのは考えにくい昨今では、普通に使うならばマルチコアのほうが快適そうだということが分かりました
開発者も時代のニーズに合わせて開発しているはずですしね

参考になりました
ありがとうございました!

お礼日時:2008/12/29 18:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!