現在の商用サーバーは、システムアーキテクチャの観点から、対称型マルチプロセッサ構造(SMP:Symmetric Multi-Processor)、非均一メモリアクセス構造(NUMA:Non-Uniform Memory Access)、超並列処理構造(MPP:Massive Parallel Processing)の3つに大別できます。それぞれの特徴は以下のとおりです。 1. SMP(対称型マルチプロセッサ) SMP (Symmetric Multi Processing) は、多数の密結合されたマルチプロセッサを持つ対称型マルチプロセッシング システムです。このようなシステムでは、すべての CPU がバス、メモリ、I/O システムなどのすべてのリソースを共有します。オペレーティング システムまたは管理データベースのコピーは 1 つだけです。このシステムの最もユニークな特徴は、すべてのリソースを共有することです。複数の CPU の間に区別はなく、すべての CPU がメモリ、周辺機器、オペレーティング システムに平等にアクセスできます。オペレーティング システムはキューを管理し、各プロセッサはキュー内のプロセスを順番に処理します。 2 つのプロセッサが同時にリソース (同じメモリ アドレスなど) へのアクセスを要求した場合、リソース競合の問題はハードウェアおよびソフトウェアのロック メカニズムによって解決されます。 RAM へのアクセスはシリアル化されており、これとキャッシュの一貫性の問題により、システム内の追加プロセッサの数に比べてパフォーマンスがわずかに遅れます。 いわゆる対称型マルチプロセッサ構造とは、サーバー内の複数の CPU がプライマリ、セカンダリ、または従属関係なしに対称的に動作することを意味します。各 CPU は同じ物理メモリを共有し、各 CPU がメモリ内の任意のアドレスにアクセスするのに必要な時間は同じであるため、SMP はユニフォーム メモリ アクセス アーキテクチャ (UMA: Uniform Memory Access) とも呼ばれます。 SMP サーバーを拡張する方法としては、メモリを増やす、より高速な CPU を使用する、CPU を追加する、I/O (ソケットとバスの数) を拡張する、外部デバイス (通常はディスク ストレージ) を追加するなどがあります。 SMP サーバーの主な機能は共有です。システム内のすべてのリソース (CPU、メモリ、I/O など) が共有されます。まさにこの特性のせいで、SMP サーバーの主な問題は拡張機能が非常に限られていることです。 SMP サーバーの場合、SMP サーバーを拡張すると各共有リンクがボトルネックになる可能性があり、最も制限されるのはメモリです。各 CPU は同じメモリ バスを介して同じメモリ リソースにアクセスする必要があるため、CPU の数が増えると、メモリ アクセスの競合が急速に増加し、最終的には CPU リソースが浪費され、CPU パフォーマンスの有効性が大幅に低下します。実験により、SMP サーバーの CPU 使用率が最も高くなるのは 2 〜 4 個の CPU の場合であることがわかっています。 図1. SMPサーバーのCPU使用率ステータス 2. NUMA (非均一メモリアクセス) SMP のスケーラビリティには限界があるため、大規模なシステムを効果的に拡張および構築する方法が模索され始めました。NUMA はこの取り組みの結果の 1 つです。 NUMA テクノロジーを使用すると、数十 (または数百) 個の CPU を 1 台のサーバーに組み合わせることができます。 CPU モジュールの構造を図 2 に示します。 図2. NUMAサーバCPUモジュール構造 NUMA サーバーの基本的な特徴は、複数の CPU モジュールを備えていることです。各 CPU モジュールは複数の CPU (4 個など) で構成され、独立したローカル メモリ、I/O スロットなどを備えています。ノードは相互接続モジュール (クロスバー スイッチなど) を介して接続され、情報を交換できるため、各 CPU はシステム全体のメモリにアクセスできます (これが NUMA システムと MPP システムの重要な違いです)。明らかに、ローカル メモリへのアクセス速度は、リモート メモリ (システム内の他のノードのメモリ) へのアクセス速度よりもはるかに高速になります。これが、非均一ストレージ アクセス NUMA の原因です。この機能により、システムパフォーマンスをより有効に活用するためには、アプリケーションを開発する際に、異なる CPU モジュール間の情報のやり取りを最小限に抑える必要があります。 NUMA テクノロジを使用することで、元の SMP システムの拡張問題がより適切に解決され、1 台の物理サーバーで数百の CPU をサポートできるようになります。 NUMA サーバーの代表的な例としては、HP の Superdome、SUN15K、IBMp690 などがあります。 ただし、NUMA テクノロジにも欠点があります。リモート メモリへのアクセスの待ち時間はローカル メモリへのアクセスよりもはるかに長いため、CPU の数が増えてもシステム パフォーマンスは直線的に向上しません。例えば、HPはSuperdomeサーバをリリースした際に、他のHP UNIXサーバと比較した相対的な性能値を発表しました。その結果、64ウェイCPUのSuperdome(NUMA構造)の相対性能値は20であったのに対し、8ウェイN4000(共有SMP構造)の相対性能値は6.3でした。この結果から、CPU の数を 8 倍にしてもパフォーマンスは 3 倍しか向上しないことがわかります。 3. MPP(大規模並列処理) NUMA とは異なり、MPP はシステムを拡張する別の方法を提供します。これは、特定のノード相互接続ネットワークを介して接続された複数の SMP サーバーで構成され、連携して同じタスクを完了します。ユーザーの観点からは、これはサーバー システムです。基本的な特徴は、ノード相互接続ネットワークによって接続された複数の SMP サーバー (各 SMP サーバーをノードと呼びます) で構成されることです。各ノードは、自身のローカル リソース (メモリ、ストレージなど) にのみアクセスします。完全に共有されていない構造であるため、拡張機能は限られています。理論上、その拡張性は限られています。現在の技術では、512 ノードの相互接続と数千の CPU を実現できます。現在、業界にはノード相互接続ネットワークの標準がありません。たとえば、NCR の Bynet と IBM の SPSwitch は、それぞれ異なる内部実装メカニズムを使用しています。ただし、ノード インターネットは MPP サーバーによって内部的にのみ使用され、ユーザーに対しては透過的です。 MPP システムでは、各 SMP ノードは独自のオペレーティング システムやデータベースなどを実行することもできます。しかし、NUMA とは異なり、リモート メモリ アクセスの問題はありません。つまり、各ノード内の CPU は別のノードのメモリにアクセスできません。ノード間の情報交換は、ノード相互接続ネットワークを通じて実現され、このプロセスは一般にデータ再配布と呼ばれます。 ただし、MPP サーバーでは、各ノードの負荷と並列処理をスケジュールしてバランスをとるための複雑なメカニズムが必要です。現在、MPP テクノロジに基づく一部のサーバーでは、システム レベルのソフトウェア (データベースなど) によってこの複雑さが隠されていることがよくあります。たとえば、NCR の Teradata は、MPP テクノロジに基づくリレーショナル データベース ソフトウェアです。このデータベースに基づいてアプリケーションを開発する場合、バックエンド サーバーがいくつのノードで構成されていても、開発者は同じデータベース システムに直面しているため、特定のノードの負荷をどのようにスケジュールするかを考慮する必要がありません。 MPP (Massively Parallel Processing) は、多数の疎結合された処理ユニットで構成される超並列処理システムです。これはプロセッサではなく、処理ユニットを指すことに注意してください。各ユニットの CPU には、バス、メモリ、ハードディスクなどの独自のプライベート リソースがあります。各セル内には、オペレーティング システムと管理データベースのインスタンスのコピーが存在します。この構造の最大の特徴は、リソースが共有されないことです。 4. 3つのアーキテクチャの違い 4.1 SMPシステムとMPPシステムの比較 2 つの構造がありますが、それぞれの特徴は何ですか? どちらの構造がより適切ですか? 一般的に言えば、MPP システムは異なる処理ユニット間で情報を転送する必要があるため、SMP よりも効率が低くなります (上の図に注意してください)。ただし、これは絶対的なものではなく、MPP システムはリソースを共有しないため、SMP よりも多くのリソースを備えています。処理されるトランザクションが一定の規模に達すると、MPP の効率は SMP よりも高くなります。これは、通信時間と計算時間の比率に依存します。通信時間が比較的長い場合、MPP システムは優位性がありません。逆に、通信時間が比較的短い場合、MPP システムはリソースの利点を十分に発揮し、高い効率を達成できます。現在使用されている OTLP プログラムでは、ユーザーは中央データベースにアクセスしますが、SMP システム構造を採用すると、その効率は MPP 構造よりもはるかに速くなります。 MPP システムは、意思決定支援とデータ マイニングにおいて利点を示しています。操作が互いに関係がなく、処理ユニット間で必要な通信が少ない場合は、MPP システムを使用する方がよいと言えますが、そうでない場合は適していません。 上記の 2 つの図から、SMP の場合、速度を制限する主な要因は共有バスであることがわかります。したがって、DSS プログラムの場合、SMP ではなく MPP のみを選択できます。大規模なプログラムの処理要件が共有バスよりも大きい場合、バスはそれを処理できず、SMP システムは機能しません。もちろん、この 2 つの構造にはそれぞれ長所と短所があります。この 2 つを組み合わせて、互いの長所を補完することができれば素晴らしいと思います。 4.2 NUMAとMPPの違い アーキテクチャの観点から見ると、NUMA と MPP には多くの類似点があります。どちらも複数のノードで構成され、各ノードには独自の CPU、メモリ、I/O があり、ノードはノード相互接続メカニズムを通じて情報を交換できます。では、それらの違いは何でしょうか? 以下の NUMA サーバーと MPP サーバーの内部アーキテクチャと動作原理を分析すると、違いを見つけるのは難しくありません。 まず、ノード相互接続メカニズムが異なります。NUMA のノード相互接続メカニズムは、同じ物理サーバー内に実装されています。CPU がリモート メモリにアクセスする必要がある場合、待機する必要があります。これは、NUMA サーバーが CPU の数が増えても線形のパフォーマンス拡張を実現できない主な理由でもあります。 MPP のノード相互接続メカニズムは、異なる SMP サーバーの外部の I/O を通じて実装されます。各ノードはローカル メモリとストレージにのみアクセスし、ノード間の情報交換とノード自体の処理は並列に実行されます。したがって、MPP のパフォーマンスは、基本的にノードを追加するときに線形拡張を実現できます。 2 つ目は、メモリ アクセス メカニズムが異なることです。 NUMA サーバー内では、どの CPU もシステム全体のメモリにアクセスできますが、リモート アクセスのパフォーマンスはローカル メモリ アクセスに比べて大幅に低下します。そのため、アプリケーションを開発する際には、リモート メモリ アクセスを可能な限り避ける必要があります。 MPP サーバーでは、各ノードはローカル メモリにのみアクセスし、リモート メモリ アクセスの問題は発生しません。 図3. MPPサーバーのアーキテクチャ データウェアハウスの選択 データ ウェアハウス環境にはどのサーバーがより適していますか? これには、データ ウェアハウス環境自体の負荷特性から始める必要があります。周知のとおり、一般的なデータ ウェアハウス環境では、大量の複雑なデータ処理と包括的な分析が行われるため、システムには高い I/O 処理能力が求められ、ストレージ システムはそれに対応する十分な I/O 帯域幅を提供する必要があります。一般的な OLTP システムは、主にオンライン トランザクション処理に基づいています。各トランザクションには少量のデータが含まれており、システムには単位時間内にできるだけ多くのトランザクションを処理するための高いトランザクション処理能力が求められます。明らかに、これら 2 つのアプリケーション環境の負荷特性は完全に異なります。 NUMA アーキテクチャの観点から見ると、物理サーバーに多数の CPU を統合できるため、システムのトランザクション処理能力が向上します。リモート メモリ アクセスのレイテンシはローカル メモリ アクセスのレイテンシよりもはるかに長いため、異なる CPU モジュール間のデータ相互作用を最小限に抑える必要があります。明らかに、NUMA アーキテクチャは OLTP トランザクション処理環境に適しています。データ ウェアハウス環境で使用すると、大量の複雑なデータ処理によって必然的に大量のデータ インタラクションが発生するため、CPU 使用率が大幅に低下します。 相対的に言えば、MPP サーバー アーキテクチャは優れた並列処理機能を備えており、複雑なデータの包括的な分析および処理環境に適しています。もちろん、ノード間の負荷分散とスケジューリングの複雑さを隠すには、MPP テクノロジをサポートするリレーショナル データベース システムに依存する必要があります。さらに、この並列処理機能は、ノード相互接続ネットワークとも密接に関係しています。当然のことながら、データ ウェアハウス環境に適した MPP サーバーのノード相互接続ネットワークの I/O パフォーマンスは、システム全体のパフォーマンスを最大限に発揮するために非常に優れている必要があります。 4.3 NUMA、MPP、SMP のパフォーマンスの違い NUMA のノード相互接続メカニズムは、同じ物理サーバー内に実装されています。CPU がリモート メモリにアクセスする必要がある場合、待機する必要があります。これが、NUMA サーバーが CPU の数が増えても線形のパフォーマンス拡張を実現できない理由です。 MPP のノード相互接続メカニズムは、異なる SMP サーバーの外部の I/O を通じて実装されます。各ノードはローカル メモリとストレージにのみアクセスし、ノード間の情報交換はノード自体の処理と並行して実行されます。したがって、MPP のパフォーマンスは、基本的にノードを追加するときに線形拡張を実現できます。 SMP の CPU リソースはすべて共有されるため、線形拡張が完全に実現されます。 4.4 NUMA、MPP、SMPのスケーリングの違い NUMA は理論上は無限に拡張可能であり、現在の成熟したテクノロジーでは数百の CPU の拡張をサポートできます。 HPのSUPERDOMEなど。 MPP は理論上、最大限の拡張を実現できます。現在、より成熟したテクノロジでは、拡張のために 512 ノードと数千の CPU をサポートできます。 SMPはスケーラビリティが低く、現状では2~4CPUの利用率が最も低い。しかし、IBMのBOOKテクノロジーではCPU数を8個まで拡張できる。 MPP は複数の SMP で構成されています。複数の SMP サーバーは特定のノード相互接続ネットワークを介して接続され、連携して同じタスクを完了します。 4.5 MPPとSMP/NUMAアプリケーションの違い MPP の利点: MPP システムはリソースを共有しないため、SMP よりも多くのリソースを持ちます。処理するトランザクションが一定の規模に達すると、MPP の効率は SMP よりも高くなります。 MPP システムでは異なる処理ユニット間で情報を伝送する必要があるため、通信時間が短い場合、MPP システムはリソースの利点を十分に発揮し、高い効率を実現できます。言い換えれば、操作同士の関連性がほとんどなく、処理ユニット間で必要な通信がほとんどない場合は、MPP システムを使用する方が適切です。したがって、MPP システムは意思決定支援とデータ マイニングにおいて利点を発揮します。 SMP の利点: MPP システムでは異なる処理ユニット間で情報を転送する必要があるため、効率は SMP システムよりもわずかに低くなります。通信時間が長い場合、MPP システムはリソースの利点を最大限に活用できます。したがって、現在使用されている OTLP プログラムでは、ユーザーが中央データベースにアクセスするときに、SMP システム構造を採用すると、その効率は MPP 構造よりもはるかに速くなります。 NUMA アーキテクチャの利点: NUMA アーキテクチャの観点から見ると、物理サーバーに多数の CPU を統合できるため、システムのトランザクション処理能力が向上します。リモート メモリ アクセスのレイテンシはローカル メモリ アクセスのレイテンシよりもはるかに長いため、異なる CPU モジュール間のデータ相互作用を最小限に抑える必要があります。明らかに、NUMA アーキテクチャは OLTP トランザクション処理環境に適しています。データ ウェアハウス環境で使用すると、大量の複雑なデータ処理によって必然的に大量のデータ インタラクションが発生するため、CPU 使用率が大幅に低下します。 |
>>: RNNに注目メカニズムを導入し、5つの主要分野におけるシーケンス予測問題を解決する
みなさんこんにちは。私は漁師です。 Rust の学習曲線は初期段階と中期段階では急峻になりますが、今...
この研究では、スタンフォード ビジョン アンド ラーニング ラボ (SVL) の Silvio/Fe...
スタンフォード大学のエビ揚げロボットよりも強力なロボットが登場!最近、CMU の研究者たちは、オープ...
ハッカーや詐欺師が新しいテクノロジーを入手したり、古い脆弱性を悪用する新しい方法を考え出したりするに...
論文「NeuRAD: 自動運転のためのニューラル レンダリング」は、Zenseact、チャルマース工...
TensorFlow 入門記事: 初心者でも理解できる TensorFlow 入門小学校で受けた理...
[[265710]]長らく技術革命の中心地となってきたサンフランシスコは、現地時間の火曜日に「秘密...
[[412540]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
機械学習やデータサイエンスの分野で仕事を得るために、開発者はどのプログラミング言語を学ぶべきでしょう...
1 月 11 日、OpenAI は小規模なセルフサービス チーム専用の新しいサブスクリプション プラ...
最近、マスク氏の伝記「イーロン・マスク:伝記」が国内外でベストセラーとなった。この本には、マスク氏の...
生成型 AI の新たな波に直面して、私たちはそれに積極的に適応するか、AI (または AI を受け入...