マルチ CPU マシンでは、異なる CPU が同じメモリ帯域幅をめぐって競合しますか、それとも個別に DRAM にアクセスしますか?
つまり、プログラムのメモリ帯域幅が制限されている場合、たとえば 1-CPU 8 コア システムでは、4-CPU 4*8 コア マシンに移行すると、速度が向上する可能性があります (CPU と DRAM が比較可能です)?
マルチ CPU マシンでは、異なる CPU が同じメモリ帯域幅をめぐって競合しますか、それとも個別に DRAM にアクセスしますか?
つまり、プログラムのメモリ帯域幅が制限されている場合、たとえば 1-CPU 8 コア システムでは、4-CPU 4*8 コア マシンに移行すると、速度が向上する可能性があります (CPU と DRAM が比較可能です)?
複数の CPU が同じメモリ帯域幅をめぐって競合しますか?
必ずしも。Non-Uniform Memory Accessとマルチチャネル メモリ アーキテクチャにより、単一の CPU で達成できるよりも高い総メモリ帯域幅を実現できます。
はい、すべての CPU が同じ帯域幅を求めて競合します。CPU チップから RAM へのハードウェア接続は 1 つしかないため、すべてのアクセスはそれを経由する必要があります。
この問題を軽減するために、さまざまなレベルの CPU キャッシュを共有するか、共有しない場合があります。RAM自体にアクセスする必要があるのは、キャッシュ ミスだけです。http://en.wikipedia.org/wiki/CPU_cache#Multi-core_chipsを参照してください
比較的新しいハードウェアを使用していて、ソフトウェアのメモリ制限の一部が CPU 間通信に起因している場合は、適切にスケーリングできる可能性が高くなります。古い x86 SMP アーキテクチャは 1 つのフロントサイド バス (FSB) を使用し、各 CPU はその単一のフロントサイド バスのみを使用して他の CPU とデータを共有できました。Opteron サーバー プロセッサ ラインでは、CPU コアも、専用のハイパートランスポート ラインによって他の CPU コアに個別に接続されていました。これにより、Opteron サーバーは当時の Intel サーバーよりもはるかに優れた拡張性を実現しました。しかし、Intel は何年も前に AMD 用の Hyper-Transport を開発したエンジニアを雇って以来 (そして歴史上、これらのエンジニアは Alpha EV6 バスから得た経験を利用して)、Intel 用の QPI と呼ばれるスケーラブルな CPU から CPU への SMP リンク アーキテクチャも開発しました。じゃあ今日は」■ Intel サーバー製品は、古い FSB PC よりもスケーラブルです。x86 以外のサーバーを使用している場合は、そのようにスケーラブルなアーキテクチャもあるでしょう。その場合、コア間の相互作用を必要とするソフトウェアがある場合、それらを大幅に高速化できます。