NUMA
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "NUMA" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2021年6月)
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

この項目では、コンピュータシステムの一部について説明しています。「Numa」という名義を用いているLOOP CHILDの元メンバーについては「沼能友樹」をご覧ください。

NUMA(: Non-Uniform Memory Access)とは、共有メモリマルチプロセッサコンピュータシステムアーキテクチャのひとつで、複数プロセッサが共有するメインメモリへのアクセスコストが、メモリ領域とプロセッサに依存して均一でないアーキテクチャである。日本語では「不均一メモリアクセス」や「不均等メモリアクセス」と訳される[1][2]
定義

この節は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "NUMA" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2023年11月)

プロセッサとメモリの対(これをノードと呼ぶ)が複数存在し、それらをインターコネクト(その詳細は問わない)で接続したものを学術的にはNUMAの定義としている。ただし共有メモリ型であるので各プロセッサが全ノードのメモリを利用可能である必要があり、各ノードのメモリを全プロセッサに共通の物理アドレス空間にマップできることが要件となる。あるプロセッサから見て同一ノードのメモリを「ローカル」メモリ、他ノードのメモリを「リモート」メモリと呼ぶ。

一般的にはローカルメモリのアクセス遅延時間 < リモートメモリのアクセス遅延時間

である。

小規模の対称型マルチプロセッシング (SMP) システムでは単一バス上にすべてのプロセッサとメモリが同居しているが、バスの特性として複数プロセッサによるメモリの同時アクセスができないことが挙げられる。あるプロセッサがメモリアクセスを行っている間、他のプロセッサは待つしかない。この現象は同一バスに接続されるプロセッサが増えるにしたがって顕著となる。したがってSMPシステムの並列度を増してスケールアップしていく場合、単純に小規模SMPシステムの設計を拡張してバスに接続するプロセッサ数を増やしていったのでは、プロセッサはほとんどの時間をメモリアクセスの待ち時間に費やすことになってしまうであろう。また、単一バスに接続されるプロセッサが増えるということはバス信号線の物理的長さの増大を意味し、それはバスクロック向上の阻害要因となってしまう(信号線路上を伝わる電気信号の速さは有限であるため)。

これを解決するため、メモリを複数バンクに分割しプロセッサとメモリバンク間をクロスバースイッチなどで結ぶ手法(メモリインターリーブ)も実際に取られているが、この手法ではローカルバスと比較して常に大きな遅延でアクセスすることになってしまう(このようなアーキテクチャは、NUMAの定義でノードを構成するプロセッサとメモリをプロセッサノードとメモリノードにデカップリングしたUMAアーキテクチャの一形態である)。

また、メモリ側をマルチポートとすることも考えられるが、同時アクセスによる遅延を防ぐためポートを増やすとそれだけインターコネクトのための信号線が増えるためコスト増大を招いてしまう。
NUMA浸透の背景

この節は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "NUMA" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2023年11月)

ソフトウェアの動作を詳しく観察すると、ほとんどのメモリアクセスはある特定の領域に集中している(参照の局所性)。オペレーティングシステムが適切にメモリを割り当てることによって、プロセッサが頻繁に参照する必要のあるデータをアクセスコストの低いメモリに配置し、アクセスコストの高いメモリには頻繁に参照しないデータを配置することができる。

それによって、実際には不均一なメモリアクセスコストを持つアーキテクチャのシステム(実際のSMP的システム)でも理想的なSMPシステムに近い性能を発揮することができる。この点に着目したのがNUMAアーキテクチャである。

NUMAの特徴をまとめると、バスを共有するプロセッサ数を抑えることでバスの輻輳を防ぎ、バスクロックの向上を容易にする。その一方で、共有メモリ型のマルチプロセッサシステムであるのでNUMAシステムはソフトウェア的には(少なくともユーザアプリケーションからは)通常のSMPシステムと同等に見え、したがってSMPシステム用に開発されたアプリケーションがそのまま稼動する。ただし、オペレーティングシステムがNUMAを意識したメモリ管理を行わない場合は性能劣化が避けられない。
歴史

この節は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "NUMA" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2023年11月)

この節は更新が必要とされています。
この節には古い情報が掲載されています。編集の際に新しい情報を記事に反映させてください。反映後、このタグは除去してください。(2023年11月)

@media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}初期[いつ?]のNUMAシステムは、4ウェイ程度の小規模なSMPシステム(これを「ビルディング・ブロック」などと呼ぶ)を比較的高速・低レイテンシのインターコネクトによって接続して構成されていた。

現在[いつ?]、主流のCPUにおいては、チップレベルでNUMAアーキテクチャを取り入れているものが多い(インテルItaniumNehalem系などや、AMDOpteronプロセッサなど)。

これらのプロセッサではメモリバスがプロセッサチップと直結しており、メモリと組み合わせて単一のNUMAノードを構成し、リモートメモリアクセスを行うためのチップ間高速インターコネクトポートがオンチップで実装されている。

NUMAに対して、メモリアクセスコストの均一性を保ったまま大規模SMPシステムを構築するアーキテクチャを、特にNUMAと区別するためUMA(Uniform Memory Access)と呼ぶことがある[注釈 1]

NUMAを採用した独自大型サーバを製造販売している会社としては、SGI[いつ?]、IBMHP富士通(富士通シーメンス)、NECサンマイクロシステム[いつ?]、Crayなどがある。
脚注
注釈^ ユニファイドメモリアーキテクチャ(Unified Memory Architecture, UMA)と名前は似ているが、別の概念である。

出典^ 9.81 不均一メモリー・アクセス(NUMA)システムでの仮想マシンのライブ・マイグレーション後のCPUアフィニティ
^ non-uniform memory access の意味・使い方|英辞郎 on the WEB

関連項目

共有メモリ










並列計算


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:21 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef