不均一メモリーアクセス(NUMA)とは?サーバー性能向上の鍵

DXを学びたい
先生、NUMAについて教えてください。説明を読んだのですが、いまいちピンときません。特に、なぜ「Non-Uniform(均一でない)」という言葉が使われているのかが分かりません。

DXアドバイザー
いい質問ですね。NUMAは、複数のCPUがメモリーにアクセスする方法に関する技術です。ポイントは、それぞれのCPUが近い場所にあるメモリー(ローカルメモリー)と、遠い場所にあるメモリー(リモートメモリー)を持っていることです。近いメモリーには早くアクセスできるけど、遠いメモリーには時間がかかる。このアクセスの速さの違いが「均一でない」という意味につながっています。

DXを学びたい
なるほど!CPUから近いメモリーと遠いメモリーがあるから、アクセス時間に差が出て「均一でない」ということなんですね。でも、なぜわざわざそんな複雑な仕組みにする必要があるんですか?

DXアドバイザー
良い着眼点ですね。単純な仕組みだと、CPUの数が増えた時にメモリーへのアクセスが集中して、処理が遅くなってしまうんです。NUMAでは、それぞれのCPUが自分の近くのメモリーを優先的に使うことで、メモリーへのアクセスの集中を避けて、全体の処理速度を上げることができるのです。
NUMAとは。
「デジタル変革」に関連する専門用語である『NUMA』について説明します。NUMAは、複数の処理装置を搭載した構造の「サーバー基盤」の一種で、「不均一メモリーアクセス」と訳されます。これは、サーバーの処理能力を向上させるのに役立ち、処理装置の数が増加した場合でも、記憶領域へのアクセスを効率的に行うことを可能にします。従来のSMP方式では、各処理装置が主記憶を共有し、共通の経路で記憶領域にアクセスするため、処理装置の増加に伴いアクセスが遅くなり、処理能力が低下するという問題がありました。NUMA方式では、処理装置ごとに専用の記憶領域を持ち、それぞれの処理装置が同時に並行して専用の記憶領域にアクセスできます。そのため、処理装置が増加した場合でも、記憶領域へのアクセス遅延の影響を受けにくく、サーバーの処理能力を高めやすいという利点があります。NUMA方式は、処理装置が同時並行でアクセスできる専用の記憶領域を備えていますが、必要なデータが他の処理装置の領域にある場合は、遠隔の記憶領域を使用します。NUMA方式は、高速な専用記憶領域と、低速な遠隔記憶領域を使用するため、「不均一」という表現が用いられています。
不均一メモリーアクセスの基本

不均一記憶域アクセス(以下、当技術と記述します)は、複数の演算処理装置を搭載した構造において、その能力を最大限に引き出すための仕組みです。これは、日本語で「共有記憶型多重処理」とも呼ばれ、特に大規模な情報処理システムにおいて重要です。従来の多重処理方式である対称型多重処理と比較して、当技術はより効率的な記憶域への接続を実現します。対称型多重処理では、全ての演算処理装置が共通の記憶域を共有し、単一の経路を通じて接続するため、演算処理装置の数が増加するにつれて、記憶域への接続が集中し、遅延が発生しやすくなります。当技術は、各演算処理装置が専用のローカル記憶域を持ち、ローカル記憶域への接続は高速です。必要な情報がローカル記憶域にある場合、演算処理装置は迅速に情報に接続し、処理を実行できます。しかし、必要な情報が別の演算処理装置のローカル記憶域にある場合、遠隔記憶域に接続する必要があります。この遠隔記憶域への接続は、ローカル記憶域への接続よりも時間を要します。そのため、当技術では、情報の配置最適化が重要となります。
| 特徴 | 不均一記憶域アクセス (NUMA) | 対称型多重処理 (SMP) |
|---|---|---|
| 記憶域 | 各演算処理装置がローカル記憶域を持つ | 全ての演算処理装置が共通の記憶域を共有 |
| 記憶域接続 | ローカル記憶域への接続は高速、遠隔記憶域への接続は低速 | 単一の経路で接続 |
| スケーラビリティ | 演算処理装置の増加に伴う遅延の影響を受けにくい | 演算処理装置の増加に伴い遅延が発生しやすい |
| 最適化 | 情報の配置最適化が重要 | – |
対称型多重処理の限界

対称型多重処理は、複数の処理装置がひとつの記憶領域を共有する構造です。初期の多重処理システムでは、その単純さから広く用いられました。しかし、処理装置の増加とともに、その限界が顕在化してきました。最大の課題は、記憶領域への競合です。多数の処理装置が同時に記憶領域へアクセスしようとすると、遅延が生じ、性能向上を妨げます。また、全ての処理装置が同一の記憶領域アドレス空間を共有するため、記憶領域管理が複雑化します。誤った書き換えはシステムの安定性を損なう可能性があります。さらに、記憶領域への経路が単一であるため、帯域幅が性能のボトルネックとなることもあります。高性能な処理装置を搭載しても、経路の帯域幅が不足すれば、その能力を十分に活かせません。これらの問題を克服するため、不均一メモリ配置のような新しい方式が開発され、より高い性能と拡張性を提供しています。
| 特徴 | 詳細 |
|---|---|
| 構造 | 複数の処理装置が単一の記憶領域を共有 |
| 初期の利点 | 単純さ |
| 限界 | 処理装置増加に伴い顕在化 |
| 主な課題 |
|
| 記憶領域への競合 | 多数の処理装置が同時にアクセスすると遅延が発生 |
| 記憶領域管理の複雑化 | 誤った書き換えがシステムを不安定にする可能性 |
| 単一経路 | 帯域幅が性能のボトルネックとなる |
| 克服策 | 不均一メモリ配置などの新しい方式 |
| 新しい方式の利点 | より高い性能と拡張性 |
不均一メモリーアクセスの仕組み

不均一記憶域アクセス(略称NUMA)は、計算処理を行う装置それぞれが専用の記憶領域を持つ構造です。これにより、記憶領域へのアクセス集中を緩和し、全体的な処理速度の向上を目指します。各処理装置は、自身が管理する記憶領域へ高速にアクセスできます。しかし、必要な情報が常に自身の記憶領域にあるとは限りません。別の処理装置の記憶領域にある場合、そこへアクセスする必要があります。この遠隔地の記憶領域へのアクセスは、自己の記憶領域へのアクセスよりも時間がかかるため、全体の性能は遠隔地へのアクセス頻度に大きく左右されます。そのため、データ配置の最適化が非常に重要になります。関連性の高いデータは、同じ処理装置の記憶領域に配置することで、遠隔地へのアクセスを減らし、性能を高められます。さらに、処理装置間の通信も重要です。頻繁に情報交換が行われる場合、通信経路の速度が全体の性能を制限する可能性があります。近年では、処理装置間通信に高速な接続技術を用いることで、データ転送速度を向上させ、遠隔地の記憶領域へのアクセスによる遅延を減らす試みが行われています。
| 特徴 | 詳細 | 最適化のポイント |
|---|---|---|
| NUMA (不均一メモリ空間アクセス) | 各処理装置が専用のメモリ領域を持つ構造 | – |
| ローカルアクセス | 自己のメモリ領域へのアクセス | 高速 |
| リモートアクセス | 他の処理装置のメモリ領域へのアクセス | ローカルアクセスより低速。アクセス頻度が性能に影響 |
| データ配置 | 関連性の高いデータを同じ処理装置のメモリに配置 | リモートアクセスを減らし、性能を向上 |
| 処理装置間の通信 | 情報交換の頻度が高い場合、通信速度がボトルネックになる可能性 | 高速な接続技術でデータ転送速度を向上 |
不均一という言葉の意味

不均一という言葉は、情報処理の分野において、特に記憶領域へのアクセス速度が一様ではない状態を指します。具体的には、ある処理装置が自身の近くにある記憶領域には素早くアクセスできる一方で、遠くにある記憶領域へのアクセスには時間がかかる、という状況を表します。このような構造は、大規模な情報処理システムでよく見られます。もし全ての記憶領域へのアクセス時間が同じであれば、それは均一記憶域アクセスと呼ばれます。しかし、現実には物理的な距離や通信経路の制約から、均一なアクセス時間を実現することは困難です。そのため、システム設計においては、このアクセス時間の差を考慮し、効率的なデータ配置や処理の割り当てが重要となります。例えば、頻繁に利用するデータは近くの記憶領域に配置したり、複数の処理装置が連携する際には、できるだけ同じ領域内のデータにアクセスするように工夫することで、全体の処理能力を高めることができます。
| 用語 | 説明 |
|---|---|
| 不均一メモリ | 処理装置からのメモリ領域へのアクセス速度が一様ではない状態。近くのメモリには高速アクセス可能だが、遠くのメモリには低速アクセスとなる。 |
| 均一メモリ | 全てのメモリ領域へのアクセス時間が同じ状態。 |
| 対策 |
|
不均一メモリーアクセスの利点

不均一記憶域アクセス(略称NUMA)には、いくつかの大きな利点があります。まず、記憶域へのアクセス集中を軽減し、処理装置の潜在能力を最大限に引き出せる点が挙げられます。各処理装置は、自身の近くにある記憶域には高速にアクセスできるため、システム全体の処理能力が向上します。次に、システムの拡張性が高まるという利点があります。処理装置の数が増えても、記憶域へのアクセス遅延の影響を受けにくいため、大規模なシステムでも高い性能を維持できます。さらに、消費電力を抑える効果も期待できます。近くの記憶域へのアクセスは、遠隔の記憶域へのアクセスよりも電力を消費しないため、システム全体の電力消費を削減できます。これらの利点から、不均一記憶域アクセスは、高性能な情報処理システムや専門的な作業に用いる計算機で広く採用されています。特に、大量のデータを扱う必要のある応用システムでは、不均一記憶域アクセスの恩恵を大きく受けることが可能です。ただし、その性能を最大限に発揮させるには、データの配置を最適化したり、処理の割り当てを適切に行う必要があります。不均一記憶域構造を理解し、適切な設定を行うことで、情報処理システムの性能を飛躍的に向上させることができます。
| 利点 | 説明 |
|---|---|
| 記憶域へのアクセス集中を軽減 | 各処理装置は近くの記憶域へ高速アクセスでき、システム全体の処理能力が向上。 |
| システムの拡張性 | 処理装置の数が増えても記憶域アクセス遅延の影響を受けにくく、大規模システムでも高い性能を維持。 |
| 消費電力の削減 | 近くの記憶域へのアクセスは遠隔よりも電力消費が少ない。 |
