web-dev-qa-db-ja.com

マルチコアCPUは、今日の世界でも収穫逓減に悩まされていますか?

その他の質問 で示されているように、コンピュータアプリケーションの状態により、マルチコアプロセッサは収穫逓減に悩まされています。これは今日の世界でも当てはまりますか?

ほとんどの新しいアプリケーションはマルチスレッドを採用しているので、複数のコアを持つことを利用していますか?そうでない場合、新しい64ビットOSは、タスク/プロセスを異なるコアに割り当てることでコアを活用できますか?それとも、マルチコアプロセッサは、同じ(または同様の)収穫逓減に悩まされ続けていますか?

クレームは参考にしてバックアップしてください。

8
rishimaharaj

それはあなたが何をするかに大きく依存します。

通常の古いWord、Excel、Minesweeperなど、お母さんが使用するものはすべて、1つのコアで十分であり、2つを超えるとやり過ぎです。これらの種類のアプリケーションは、ほとんどの時間をアイドリングに費やし、ユーザー入力を待ちます。

ゲームの場合、少なくとも2つのメリットがあります。その後はゲームによって異なります。理論的には、各AI対戦相手を別々のスレッドで実行できますが、中央のゲームロジックを簡単に並列化することはできません。すべての結果をまとめて、一貫したゲーム状態を形成する1つの場所が必要です。したがって、通常、誰もが待つ「メイン」スレッドが1つあります。

マルチメディア、実数計算、および科学では、すべてのコアが重要です。これらは本質的にマルチスレッド化されているか、簡単に実行できるタスクであり、開発者は利用可能なすべての処理能力を利用する強いインセンティブを持っています。

パワーユーザーはマルチタスクが好きです。 Torrent、VirtualBox、スクリーンキャプチャ、ビデオ、Minecraft、およびWebブラウジングがすべて同時に実行されます。したがって、CPUを大量に消費する各アプリが独自のコアを持つことでメリットが得られます。最近では、ゲームをライブストリーミングするのが人気です。つまり、これはゲームの2つのコアであり、エンコーダスレッド用に少なくとも1つ、システムの残りの部分用に少なくとも1つです。それは少なくとも4コアです。

7
Ansis Māliņš

答えは、いつものように、「あなたが何をしているかによる」ということです。

はい、コアを追加することによる収穫逓減があり、 常にそうなりますで単一のアプリケーションのみを実行する場合時間

よくできたマルチスレッドアプリケーションでも、スレッド化されるタスクの多くは、ユーザーの見かけのパフォーマンスに影響を与えることなく、マシンで最も遅いコンポーネント(ハードドライブ、ネットワーク)を待機するために実行されます。これらは、より大きな並列化によって改善することはできないため、理論的なスピードアップの制限は実際の目的には到達できません。

マルチスレッド化されていない「大きな」アプリケーションはほとんどないことに注意してください(OSのタスクマネージャーに相当するものを確認してください。各プロセスに属するアプリケーションの数がわかるはずです。たとえば、私のFirefoxは現在31を使用しています。 )。

もちろん、相互に依存しない複数のアプリケーションを実行することは、これらの制限によってそれほど制約されません。コアを追加すると、処理パフォーマンスをほとんど低下させることなく、より多くのアプリケーションを同時に実行できます(ただし、ハードドライブ、ネットワークなどのパフォーマンスはそれほど適切に拡張されません)。実際には、コアや通信パイプラインなどの間の作業の分散を管理するための避けられないオーバーヘッドがあるため、これでも収穫逓減の影響を受けます。

たとえば、 this Tom's Hardware post(2009年から)は、同時アプリケーションでのいくつかのマルチコアプロセッサのパフォーマンスを調べようとしています-a AVGスキャン(どちらもおそらくマルチスレッドです)。クアッドコア、トライコア、およびデュアルコアプロセッサはすべてゲームでのみ同様に動作しますが、同時AVGスキャンとパフォーマンス(平均FPSで測定)は、それぞれ22%、40%、59%低下します。

そのため、1つの集中的なアプリケーションを実行する場合、クアッドコアはデュアルコアよりもパフォーマンスが向上しませんでしたが、別の集中的なタスクが出現するとすぐに、パフォーマンスが2倍になりました。残念ながら、これがより多くのコアとより集中的なタスクにどれだけうまく対応できるかを調査する他の多くのものを見つけることができません。


そして、IntelのTurbo Boost/AMDのTurboCoreなどのプロセッサの最新機能に注意する必要があります。これらの特定の機能により、マルチコアプロセッサがコアをパークし(低速、低電力、モードに設定)、スペアエネルギーを使用してアクティブなままのコアをオーバークロックできるようになります。提示されるタスクの数については、可能な限り。

5
DMA57361

火に燃料を追加するために、私は読んだ ここ それAndroidは実際には複数のコアを持つことによって遅くなります:

マルチコアプロセッサを使用すると、実際にAndroidデバイスの速度が低下する可能性があると、Androidのマルチスレッド機能またはその欠如を非難するIntelのモバイルおよび通信グループのゼネラルマネージャーであるMikeBell氏は述べています。強力なCPUを効果的に処理する際のオペレーティングシステムの難しさ。

デバイスのコア数が多いほど、必要な電力も多くなります。当面の間、その電力量は、Androidデバイスのバランスを取るには多すぎます。

2
rishimaharaj

もちろん、それはあなたが何をしているかにもよるが、そうです、収穫逓減があります。

ワードプロセッシングやWebブラウジングなどのシンプルで日常的なアプリケーションは、3つ以上のプロセッサコアを使用してもほとんどメリットがありません。科学計算およびゲームアプリケーションは、最新のハードウェアを最大限に活用するように設計されているため、4つ(またはそれ以上)のコアやハイパースレッディング機能をより有効に活用する傾向がありますが、4つを超えるコアの利点は限られています。

さらに、すべてが計算に依存しているわけではありません。ワークロードがI/Oバウンドの場合、プロセッサコアを追加しても役に立ちません。機械式ハードドライブの代わりにSSDをインストールしたことがある場合は、日常のコンピューティングパフォーマンスがコンピューターのストレージによって制限されることが多いことをご存知でしょう。多数のコアを使用してシステムが多数のユーザーと要求を同時に処理できるようにするビジーサーバー環境では、専用のディスクアレイ、SSD、およびその他のストレージシステムを使用して、負荷がかかった状態で最大のパフォーマンスを確保します。

0
bwDraco