NUMA 【Non-Uniform Memory Access】
概要
NUMA(Non-Uniform Memory Access)とは、複数のマイクロプロセッサ(MPU/CPU)を搭載した対称型マルチプロセッサ(SMP)構成のコンピュータで、全体で共有されているメモリへのアクセス速度がCPUとメモリ領域の組み合わせ次第で均等にならないもの。NUMA型のシステムでは、一つまたは数基のプロセッサが「ノード」(node)と呼ばれる機能単位を形成し、メインメモリ(RAM)はノード単位で配置される。ノード内のメモリはプロセッサ群と高速な伝送路で接続される。
共有メモリ型なのでこれらのメモリはすべて統一された物理アドレス空間で管理され、どのプロセッサからどのノードにある領域へのアクセスも可能だが、同じノードにあるローカルメモリには高速にアクセスできる一方、別のノードにあるリモートメモリへアクセスするには時間がかかる。
これに対し、UMA(均一メモリアクセス)型のマルチプロセッサシステムでは、すべてのプロセッサが単一のバスを介してすべてのメモリにアクセスする。すべてのプロセッサが均一な時間ですべての領域にアクセスできるが、プロセッサ数やメモリ容量が増えるとメモリバスの通信速度がボトルネックとなって性能向上を阻む問題がある。
NUMAは遠方のメモリにアクセスする度に長い時間がかかってしまうが、多くのコンピュータプログラムには狭いメモリ領域に集中的にアクセスする性質(参照の局所性)があるため、各プロセッサが実行するプログラムに関連するデータをローカルメモリに集約することで性能を維持することができる。
(2020.4.24更新)