マイワンのサイトです。
競馬 頼り 皆さん 事項 沿革 多数 意味 良く まとめ 落札 楽天 東京 クレジットカード 一体 スライドリボルビング インターネット 入っ 3つ イーグル 新型 振り替え 今後 チラシ リザーブ スタッフィ 関連 施設 臨時 違い いちいち

多けれとは?/ マイワン

[ 622] マルチコアCPUはコア数が多ければ多い程有利なのではないのですか? - 教えて!goo
[引用サイト]  http://oshiete1.goo.ne.jp/qa4059137.html

私の考えとしては、まずPCを扱う際一つのアプリのみを起動しPCを使用する人はまずいないという事から、
実際にタスクマネージャなどを見てもOSを起動起動するだけでかなりのプロセスが実行されいくらかCPUを食っています。
するとその様なマルチコア向けのアプリケーションを使用せずとも多数のシングルスレッドのプロセス実行と共に
複数のスレッドが発生し、結果例え速度的な変化は感じられずともマルチコアの恩恵を受ける事が出来るのではないか?
シングルスレッドのアプリケーションが2本同時に動いている場合、シングルコアよりもデュアルコアの方が処理速度が向上します。例えばウィルス対策ソフトを使っていると、明らかにデュアルコアのPCの方がシングルコアより軽く感じます。これは、OSが処理を各コアに割り振ってくれているからですね。同様に、4本のシングルスレッドアプリケーションだと、クアッドコアが有利です。補足にもある、ゲームとエンコを同時実行というケースでも、複数コアは非常に効きます。
逆に、シングルスレッドアプリケーションが一本しか動いていない状態のところへ、マルチコアを持ってきても効果はありません。
まとめると、コア数をいくら増やしてもシングルスレッドアプリケーション自体の実行速度は変わらないが、アプリケーションが複数存在する場合は負荷分散が行われるため、速度低下が発生しにくくなる、よってマルチコアのメリットはあると言うことになります。これでよろしいですか?
OSごとの対応アプリを気にせず複数のOSを仮想化技術ですべてネイティブに起動させておきホストOS側でアプリを起動すると対応したゲストOS側に処理を渡してくれるとかやってくれないかな)
各一つのアプリといっても外部の動的ライブラリを大量に呼び出しているわけだしその動的ライブラリの動作もOS側が自動で各コアに割り当てて動いてくれないものかな?
>回答者様のおっしゃるワードとエクセルに限らず例えば起動するだけでいくらか処理がかかる常駐アプリなど、
そんな経験から言うと、1人が使うPCで4個以上のCPUを効率よく使わせるアプリケーション設計はなかなか難しいと思いますよ。
単純に考えれば、確かにコアが多い方が有利になりますが、たかが数%の処理のために別コアを用意するのは非効率的です。また、コアだけ増えても、ハードディスクやメモリやビデオカードなどのリソースは一つしかありませんから、複数プロセスやスレッドから単一リソースに同時にアクセスが発生すると、必ずどちらか片方を待たせる必要があります。さもないと、ファイルやメモリ内容が各コアの勝手に変更されることになり、収拾がつかなくなってしまいます。
このように、重複使用を避けるための排他管理や負荷分散処理が複数コアのシステムでは必須ですが、これはコアが増えれば増えるほど処理量が増大し、またコアが待たされる可能性も高まります。つまり、実行効率が下がるわけです。2コアと4コアを比較して、4コアが二倍の性能にならないのはそのためです。
将来的により多コア化が進むと、この問題はますます深刻化します。OSだけでなく、システム全体の考え方を根本から見直さないと、処理能力は頭打ちになるでしょう。どう実行すれば一番効率的か考えているより、とにかく手当たり次第に実行した方が速かったなんてことじゃ、笑い話にもなりません。
この回答へのお礼>コアだけ増えても、ハードディスクやメモリやビデオカードなどのリソースは一つしかありませんから、複数プロセスやスレッドから単一リソースに同時にアクセスが発生すると、必ずどちらか片方を待たせる必要があります。さもないと、ファイルやメモリ内容が各コアの勝手に変更されることになり、収拾がつかなくなってしまいます。
しかし それならば マルチコアマルチスレッド対応の複雑な制御を行なうよりは 別々のハードウェアで実行したほうが、単純で無駄な動作がありませんから高速に実行できます
(実行を制御するソフトも単純です、単純と言うことは、少ない操作で実現できることです、すなわち高速です)
CPUの性能向上の9割は OSやアプリの使い勝手の向上に向けられ、処理速度の向上には1割程度しか利用されていないのが ここ十数年の歴史です
この回答へのお礼なんとなくマルチコアの利点についての話からは反れた物になっているような気がするのですが。
私としては唯よく、マルチスレッド対応のアプリを使用しないならマルチコアの意味はない、という内容の物が気になり、
対応アプリを使わずともただ単にアプリを複数立ち上げ同時に処理を行わせる事でマルチコアが有効に働く事はあるのか?ないのか?、という、
では、マルチコアに対応していないアプリの場合たいていは1番目のコアに処理をさせます。複数アプリを立ち上げた場合一つのコアに処理が集中し遊んでいるコアができるという状態になります、それではもったいないのでOSが処理を分散させたりしますがすべてがそう都合がよく処理される訳では有りません。
パソコンの処理スピードはCPUの性能のみで決まる訳では有りません、測定値のみではなく実際の使用感によって判断するのも一つの手段です。要は全く同じパソコンでも使用するアプリによって使用感は変わるという事です。
この回答へのお礼>マルチコアに対応している場合各コアに分散して計算を行わせます、これはOSでもアプリでも同じ事です。
>では、マルチコアに対応していないアプリの場合たいていは1番目のコアに処理をさせます。複数アプリを立ち上げた場合一つのコアに処理が集中し遊んでいるコアができるという状態になります、それではもったいないのでOSが処理を分散させたりしますがすべてがそう都合がよく処理される訳では有りません。
デュアルコアの意味はあります。「OS」と「使用しているアプリケーション」の2スレッド。でも、この場合は3コア以上あっても意味無し。
あるアプリの使用中に他のアプリを立ち上げても、その両方を同時に使うのでなく、切り替えて使う場合は、使ってない方のアプリはCPU時間を消費しません。
ここで「常時稼働してCPU時間を消費する」ようなアプリを裏で稼働させるような作業をして、初めて3コア目が役に立ちます。
たとえば、「通常の作業をしながら、裏でウィルス対策ソフトによるスキャンをする」とかですね。この場合、ウィルス対策ソフトは常時稼働していますから、ユーザーが操作しているアプリとOSと併せて3コア分は意味があります。
そんな感じで、日常的に「単に起動しているだけではなく、稼働してCPU時間を多大に消費している」ようなアプリをコア数に匹敵するだけの多数動かしているのであれば、「コア数が多い方が有利」といえるでしょう。
>たとえば、「通常の作業をしながら、裏でウィルス対策ソフトによるスキャンをする」とかですね。この場合、ウィルス対策ソフトは常時稼働していますから、ユーザーが操作しているアプリとOSと併せて3コア分は意味があります。
マルチコアCPUが対応アプリケーションで無ければ恩恵が少ないと言うのはWindowsアプリケーションの基本を有る程度知っていれば理解できると思います。
ですから、例え同時に10個のアプリケーションを立ち上げても何も操作をしなければ、CPUに負担がかからないのでシングルコアとマルチコアの差は出ません。
マルチコア非対応のアプリケーションを複数立ち上げてマルチコアの恩恵があると思われるのは、動画のエンコードの様に処理時間の長いアプリケーションを動作させながら並行して他の操作を行った様な場合のみです。
>例え同時に10個のアプリケーションを立ち上げても何も操作をしなければ、CPUに負担がかからないのでシングルコアとマルチコアの差は出ません。
>マルチコア非対応のアプリケーションを複数立ち上げてマルチコアの恩恵があると思われるのは、動画のエンコードの様に処理時間の長いアプリケーションを動作させながら並行して他の操作を行った様な場合のみです。
だって、交通整理をするOSが「それぞれのコアにアプリを振り分ける」と言った行為が出来ませんので。アプリ自体が「こっち空いてるからこっちで作業しよう」なんて自己判断は当然しませんしね。
CPUの各コアがどのデータを処理するかというのはソフト側からの命令で判断します。ところが、現状のソフトはシングルスレッド専用というよりはマルチスレッド非対応という感じなので処理の振り分けが下手なんです。そのため、4つの別々のスレッドが走っている時にコアごとに振り分けないで全部のコアで4つのスレッドを走らせています。これは複数のプログラムを起動した時のコアごとのCPU使用率を見れば分かると思います。全てのコアが同じ位の使用率になりますよね?そのため、同じ動作クロックのCPUの場合は同じ速度で処理します。違うのは各コアのCPU使用率だけです。
この回答へのお礼>そのため、4つの別々のスレッドが走っている時にコアごとに振り分けないで全部のコアで4つのスレッドを走らせています。
>これは複数のプログラムを起動した時のコアごとのCPU使用率を見れば分かると思います。全てのコアが同じ位の使用率になりますよね?
どの辺りからデュアルコアとクアッドコアの差が小ささが見とれるのかちょっとよく分からないのですが、理解力が低く申し訳ない。
しかし jobの分担がうまく行かなければ、コアが多くても有効に作動しているコアはごく一部で残りは何もしないか無駄なことを行なっているだけです
これと同じことです、効率のよい作業分担を行なわせるのがマルチスレッド・マルチコア対応アルゴリズムです
CPUを使用するのは、アプリケーションを起動するだけでなく、何らかの処理をしている場合であることをお忘れなく。
>実際にタスクマネージャなどを見てもOSを起動起動するだけでかなりのプロセスが実行されいくらかCPUを食っています。
ちなみに私がCPUを一番使うシチュエーションは、動画エンコードしながら、エンコード済みの動画をチェックして、それと平行して別のDVDを見ている時でしょうか。
回答者様のおっしゃるワードとエクセルに限らず例えば起動するだけでいくらか処理がかかる常駐アプリなど、
>ちなみに私がCPUを一番使うシチュエーションは、動画エンコードしながら、エンコード済みの動画をチェックして、それと平行して別のDVDを見ている時でしょうか。
教えて!goo:教えて!トップ質問集カテゴリ一覧ありがとうポイントおすすめコンテンツマイページガイド
gooトップサイトマップgooをスタートページに設定RSS広告掲載免責事項プライバシーポリシーヘルプ

 

戻る

マイワンのサイトです。

マイワンのサイトです。