[ガートナー特別寄稿]
グリッドとクラスタはどう違うのか?
〜並列処理アーキテクチャの用語を整理する〜

ガートナージャパン
ジャパン リサーチ センター リサーチバイスプレジデント
栗原 潔

2003/11/7

 並列処理アーキテクチャ関連の用語は、人や時代によって定義が変化し、さまざまな場所で混乱を巻き起こしてきた。最近でも、グリッドの定義を巡り、新たなる混乱が芽生え始めている。この機会に、現時点で一般的とされる定義を確認し、少しでも混乱の鎮圧に寄与するようにしたい。

◎ SMP(Symmetric MultiProcessor:対称型マルチプロセッサ)

 いわゆる(狭義の)マルチプロセッサである。1つの筐体内にある複数のCPUがメモリとバスなどを介して直接つながっており、どのCPUも一定の速度でメモリにアクセスできる形態のアーキテクチャを指す。一般にはSMPと呼ばれることが多く、「対称型マルチプロセッサ」といってもピンとくる人は少ないだろう。共用メモリ・マルチ・プロセッシング(Shared-memory Multiprocessor)と呼んだ方が、名が体を表していると思うのだが、慣習的にSMP= Symmetric MultiProcessorということになってしまっている。

 対称型があるのならば、非対称型(asymmetric)マルチプロセッサはないのかというと、実は、それに相当するプロセッサがかつてあった。過去のメインフレームの中には、アプリケーション処理専用のCPUと、I/Oなどのシステム処理専用のCPUが分かれたアーキテクチャを採用していた機種も存在した。これこそ、非対称型マルチプロセッサに相当するものといえるのだが、現在では、歴史的遺産以外の意味はほとんどないといってよい。

◎ MPP(Massively Parallel Processor:大規模並列プロセッサ)

 各筐体内のCPUとメモリが、バスよりも低速なインターコネクト(かつては、SAN『=System Area Network』と呼ばれることもあったが、Storage Area Networkと混同しやすいため、このいい方は消滅しつつある)を介して接続されているアーキテクチャである。ただし、「大規模並列」という用語は誤解を招くものだろう。というのも、規模の大きさはあまり関係ないからだ。各CPUがメモリもディスクも直接的に共用してはいないので、むしろ「シェアード・ナッシング」と呼んだ方が正確かもしれない。

◎ NUMA(Non-Uniform Memory Access:非均一メモリ・アクセス)

 NUMAを一言でいうならば、物理的にはシェアード・ナッシング(又は、シェアード・ディスク)、論理的には(CPUで実行されているプログラムの立場から見れば)SMPというアーキテクチャである、といえる。
 
 つまり、MPPとNUMAは物理的にみれば似ているが、MPPではそれぞれのマシンに独立したメモリ空間があり、それぞれのマシンでOSが稼働しているの対して、NUMAでは複数のマシンをまたがって1つのメモリ空間があり、OSも全体で1つだけ稼働している点に根本的な違いがある。

 NUMAという名称も誤解を招きがちなものだ。物理的に存在するメモリ・アクセス遅延の非均一性を、キャッシュ整合性アルゴリズムなどのテクノロジを駆使することで、あたかも均一にアクセスが可能なメモリ空間があるかのようにみせてくれるアーキテクチャだからである。

 NUMAがあるのなら、UMA(Uniform Memory Access:均一メモリ・アクセス)はないのかというと、上記のSMPがまさにUMAに相当する。しかし、UMAという言葉がアカデミックな世界以外で使われることはほとんどない。

◎ クラスタ

 一般的には、複数のマシンがディスクを共用したシェアード・ディスク構成を指す。クラスタは、システム障害時のホットスタンバイ構成に使用されることが多いが、処理能力の増強のために利用されることも多い。
 
 しかし、トランザクション系の処理では、従来型のクラスタでシステムの台数を増やし、処理能力を増強するのは容易ではない。共用データへの排他制御のオーバーヘッドが大きくなってしまうからである。複数マシン間でキャッシュの整合性を確保することで、この問題を避けているクラスタを、リソース共用型クラスタと呼ぶ。現在主流の製品でいえば、Oracle RAC(Real Application Cluster)やIBMメインフレームの並列シスプレックスが、リソース共用型クラスタに相当する。

 クラスタの特殊形態として、Webクラスタがある(Webサーバ・ファームとも呼ばれる)。これは、大規模なWebサービング環境で典型的にみられる構成であり、多数のWebサーバとロード・バランサを組み合わせた構成である。Webサービングは基本的にステートレスな処理のため、通常のトランザクション処理とは特性が異なる。例えば、Webクラスタでは数千台ものサーバによる構成が可能だが、通常の(トランザクション処理向け)クラスタでこのような大規模な構成をとることは非現実的だ。
 
 また、科学技術計算などの(並列性が高い)処理を、多数のサーバで分散処理させる形態をクラスタ(計算クラスタ)と呼ぶことがある。正確にいえば、この形態は前記のMPPと呼ぶべきものだが。つまり、クラスタとMPPの用語の区別は不明確なのである。

◎ グリッド

 並列処理アーキテクチャ関連の用語の混乱に拍車をかけているのがグリッドである。特に、クラスタとグリッドの区別はかなり不明確である。過去、グリッドとクラスタの相違は、

    「クラスタは小規模だが、グリッドは大規模」
    「クラスタは集中型だが、グリッドは広域分散」
    「クラスタは共用ディスク型だが、グリッドはシェアード・ナッシング型」
    「クラスタには集中管理機能が存在するが、グリッドは管理機能も分散している」

など、さまざまな表現で試みられてきたが、現時点ではこれらの区別はほとんど意味をなしていない。そもそも、グリッドという言葉に業界共通の定義を与えることすら困難になっているように思える。コンピュータが複数台接続されていれば、とにかくグリッドと呼んでしまおうという風潮すらみられる。例えばOracleは、Oracle 10gにおいて、従来のRACをデータベース・グリッドと呼んでいるし、従来のSAN(Storage Area Nwetwork)に相当するテクノロジをストレージ・グリッドと呼んでしまっている。

 あるテクノロジが業界の注目を集め、バズワード(流行語)化すると、各ベンダが自分の都合のよいように用語の拡大解釈を行い、用語の定義がどんどん広がっていく現象がよくみられる。もし、グリッドについて語らなければならなくなった時は「ここでいうグリッドとは」と定義を必ず明確にすることをお奨めする。

注:ガートナーは世界最大のIT戦略アドバイス企業で、本記事は同社日本支社 ガートナージャパン リサーチバイスプレジデント 栗原氏からの寄稿である。

[関連記事]
Webサービスを統合したグリッドの標準規格が決定 (@ITNews)
グリッドだけではないOracle 10gのインパクト (@ITNews)
「Oracle 10g」が正式発表、すべてはグリッドのために (@ITNews)
IBMが「全製品系列でグリッド化を推進」 (@ITNews)
オラクル次期データベースは「グリッドの名の下に」 (@ITNews)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)