LinuxにおけるUMAとNUMAの相違点は何か

コンピュータシステムにおけるメモリアクセスパターンの用語として UMA (Uniform Memory Access) と NUMA (Non-Uniform Memory Access) があります。

UMAではコンピューターシステム内のすべてのプロセッサ (CPU) がシステム内のメモリに等価にアクセスできる。つまり、プロセッサの配置場所に関係なく、どのメモリアドレスにアクセスする時もコストは同じになる。UMAはプロセッサ数が限られた小規模のコンピューターシステムに適している。

NUMA とは、コンピューターシステムにおいて、プロセッサーとメモリーが複数のノードに分けられ、それぞれのノードにプロセッサーの集合とメモリーの一部が属する。各ノードはローカルメモリーを所有しており、他のノードのメモリーは当該ノードのプロセッサーにとって非ローカルとなる。これにより、ローカルメモリーへのアクセスは低コストだが、非ローカルメモリーへのアクセスは高コストになる。NUMA は、プロセッサーの数が多い大規模なコンピューターシステムで、高いメモリーアクセス性能が求められる場合などに利用される。

UMAはすべてのプロセッサがシステムのすべてのメモリに等価にアクセスできるのに対し、NUMAではプロセッサとメモリが複数のノードに分割され、各ノードは独自のローカルメモリを持つことを意味します。

bannerAds