2009年11月28日土曜日

ベンチマーク Amazon EC2 .vs. HPC

今回はHPCクラウドの最終回として、ベンチマークを報告しよう。
このベンチマークはテキサス大学TACC(Texas Advanced Computing Center)で、Fault-Tolerant Distributed SystemsやHPC Programming Languagesで活躍するEdward Walker博士のチームによって行われたものである。
以下、博士の承認のもと、要約を試みた。


◆ベンチマーク・ハードウェア仕様 Amazon EC2 .vs. HPC

こ のベンチマークで利用するAWS(Amazon Web Service)EC2は最大インスタンスの「High-CPU Extra Large Instance」 。AWSの説明曰く、High-CPU Extra Large Instance 7 GB of memory, 20 EC2 Compute Units (8 virtual cores with 2.5 EC2 Compute Units each), 1690 GB of instance storage, 64-bit platformだという。つ まり、64ビット版2.5コア相当の8個の仮想CPU(合計20 EC2コンピュート・ユニット)に7GBメモリー、内臓ストレージは1960GBを持つ。ネットワーク・インターコネクト(ノード接続)は、EC2は高速 (High I/O Performance)接続だが詳細は不明、NCSAのHPCはInfiniBand。


ただ、これでは抽象的でベンチマークには不十分であるのでLinuxカーネル内の/proc/cpuinfoから、Amazonはクワッド(4コア)の Intel Xeon(2.33 GHz)であることを確認。ノード当たりはデュアルソケットに2プロセッサーで8コア、メモリー(7GB)とストレージ(1960GB)の構成となり、一 方のHPCはSun Ranger機で同様のクワッドCPUのノード構成で8GBメモリー、73GBストレージの構成である。(上図参考)

◆ ベンチマークツールNPBと並列プログラミング(MPI & OpenMPI、OpenMP)

さてベンチマークは、ここシリコンバレーにあるNASA Ames Research Centerが開発したNAS Parallel Benchmarks(NPB)を基本とし、大所高所から、幾つかの
ア プローチを試みている。NPBはHPCのベンチマーク用に仕様が開発されたもので、下図のように、5つのパラレルカーネル(Parallel Kernel Benchmarks)と、3つのシュミレーテッドアプリケーション(Parallel CFD-Computational Fluid Dynamics-Application Benchmarks)から構成されている。NPBは、さらにオリジナル仕様のNPB 1と、MPI(Message Passing Interface)を適用したNPB 2、OpenMPを適用したNPB 3に分かれている。ここでMPIとは、メッセージパッシング(受け渡し)型の並列プログラミング規格であり、MPIライブラリーとのインターフェースが定められている。
一般にグリッドやHPCのように分散メモリー型並列コンピュータでは、計算結果を相互に授受しながら処理を進める。このための役割がMPIであり、CとFortran 77がある。
また、MPIの延長にあるOpenMPIでは、テネシー大学のFT-MPIや、国立ロスアラモス研究所のLA-MPI、インディアナ大学のLAM/MPIなど各種のメッセージングを取り込んだMPI-2規格となっている。次に、共有メモリ型並列コンピュータ用に開発されたOpenMPが ある。MPIでは明示的にメッセージの交換をプログラム内に書かなければならないが、OpenMPでは、OpenMPが使用できない環境において、無視さ れるディレクティブを挿入する。この仕組みによって、並列環境と非並列環境でほぼ同一のコードを使用できる。その他の並行処理技術にはHPF(High Performance Fortran)やJavaなどがある。

◆ NPB OpenMPベンチマーク

さ て、最初のベンチマークは並列/非並列のどちらにも適用できるOpenMP。正式にはNPB (NPB3.3-OMP) Class Bという。つまり、NBPにOpenMPを適用したNPB 3の一種である。これをNCSAクラスターとAmazon EC2の各々8コアノー ドに適用。 ベンチマークに当たっては、8コアに満遍なく各々のベンチマークプログラムを走らせるパラレルスレッドとして実行した。NCSAとEC2上でのコンパイル は、Intel製コンパイラーでオプションは、“-openmp -O3.”を設定。結果は左図の通り。全般的にみて、Ec2がNCSAよりランタイムにおいて、7%~21%遅いことが解る。Walker博士によると、 この差は、かなりの驚きであったという。


◆ NPB MPIベンチマーク

2番目のベンチマークはMPIを用いたもの。
この場合も正式にはNPB (NPB3.3-MPI) Class Bという。ベンチマークにあたって、4つのEC2 High-CPU Extra Large Instanceをクラスターとしてプロビジョニング、つまり32 コア(4x8)となる。各々、前述同様にIntelコンパイラーでオプションは"O3."とした。実際に利用したライブラリーはEc2がMPICH2 MPI library (1.0.7)、NCSAはMVAPICH2 MPI library (0.9.8p2)。ベンチマークプログラムのBTとSPは16コアで、他の6つは全て32コアで実行。結果は、EC2がNCSAより40%~1000% 遅い。200%以上の差があるプログラムはCG、FT、IS、IU、MGの5つ。そして驚くことに、EC2上のEPでは、メッセージの授受が計算の間に実 行されず、全体的にメッセージングだけで約50%の差があった。

◆ MPIパフォーマンス・ベンチマーク

2つのベンチ マーク結果から、Walker博士チームはノード接続のInfiniBandが大きな効果を挙げているのではないかと仮定し、それを証明しようと試みた。 つまり、計算能力は同じ筈なので、メッセージ受け渡しの能力差がランタイムの大きな違いとなるのではないかと考えた。ノード接続は、NCSAのクラスター がInfiniBandのファブリック接続であるのに対し、EC2は高速だが簡単な仕組みである。そこで以下の計測のためにOpenMP仕様にあ る"mpptest"ベンチマークを利用した。以下の結果から解るように、バンド幅(Bandwidth)と呼び出し時間(Latency)は、EC2と HPCのクラスターで2分割されたような異なる状態を示し、明らかにEC2が劣っている。テストで使われたジョブは"32-CPU MPI"、メッセージ長は0~1024。従って、これらの接続性能を反映したHPCクラスターではランタイムが大きく短縮されることとなった。












◆ 結論

今 日、Amazon EC2の「High-CPU Extra Large Instance」のように、HPC向けアプリケーションサービスが始まったことは画期的であり、これまでの大型専門コンピュータ崇拝に区切りがつく可能 性を示した。しかしながら、本稿のベンチマークで、まだ商用クラウドはその性能に達していないことがはっきりした。2つのクラスター間のギャップは、分散 メモリー型並列コンピュータでは著しく、共有メモリー型並列コンピュータでもかなりの差が見られる。商用クラウドは高計算処理を伴う科学演算コミュニ ティーにも大いに魅力的であり、今後のプロバイダーの努力に期待したい。

2009年11月24日火曜日

HPCなど大型クラウドをサポートするベンダー (2)

◆ Scale vSMP (ScaleMP)

これまで見てきたように、仮想化には2つの領域がある。
ひとつは通常の仮想化などに見られるもので大型サーバーを分割して、論理的に複数台に見せる方式だ。これはAmazonなど、今日的なCloud Computingの基本となっている。一方、ハイエンドの領域では、複数台のサーバーを統合して論理的に1台として利用する。つまり、Grid Computingの世界だ。この後者を実現する手っ取り早い方法に、完全に分散されたGrid Computingより、HPCやSMP(Symmetric Multiple Computer)-対称型マルチプロセッサ-の利用があるが、しかし、これでもその特殊性からコスト高だ。そこで通常のサーバーを使ってSMPに見せかける企業ScaleMPが現れた。
同社が開発したversatile SMP(vSMP)アーキテクチャーでは、ラックマウントやブレードなどにvSMP Foundationを実装し、ソフトウェアによって大型SMPに見せかけることが出来る。サーバーのクラスタリングには、より高速化のため InfiniBandが必須だ。さらに言えば、市販のx86ボードをInfiniBandのスイッチで結合しただけでもよい。こうすることによって、複数台 のサーバーをひとつのOSで制御し、その上で大型アプリケーションを走らせることが可能となる。こうして作られたソフトウェアSMPシステムは、最大32プロセッサー(Quad Coreを用いれば128コア)、4TBメモリーのシステムとなる。通常、クラスタリングでは、接続された各システムにプロセッサーとメモリーが専用化される。しかし、vSMPシステムのメモリーは共用となって、大きな空間を作ることが出来る。

vSMP Foundationのポートフォリオは3つ。
① vSMP Foundation for Cluster-前述のようなクラスタリングへの適用、②vSMP Foundation for SMP-市販のSMPへ適用して効率をあげることも可能だ。③vSMP Foundation for Cloud-さらにクラウドのために、オンデマンドでSMPシステムを提供することも出来る。

◆ Shared Systemサービス(R-Systems)

R Systemsは、若きMarc Andreessen氏があのモザイク(Mosaic)を開発していたイリノイ大学NCSA(National Center for Supercomputing Applications)からスピンアウト、以来、研究者向けのLinuxベースHPCビジネスを手掛けてきた。同社の子会社R Poepleでは、同社ファシリティーを使ったコンサルテーションやオペレーションなどのサービスを提供。今年7月、同社はWindows HPC Server 2008の適用を発表した。これによって、同社のファシリティー(564ノードと288ノードの大型クラスター)はデュアルブート環境となりLinuxとWindowsのスイッチバックが可能となった。さらに小型のクラスターが数台Windows HPC Serverで稼動しており、これらを動員して、コマーシャルビジネスの開拓に乗り出した。ただ、同社サービスは一般のクラウドとは異なり、基本的にカスタムサービスである。サービスメニューの ①Dedicated Hostingとは顧客の特別要求仕様に従ったもので、物理的にも独立なマシンが適用可能となって、特別なOSなどでも構わない。②Shared Systemsサービスは、HPCやSMPを共用するクラウド型サービスとなり、③Virtual Private Clustersでは、共用システムからクラスターを切り出して、ユーザー固有のアプリケーションに対応させる。④Off-site/Remote Facilitiesとは、パートナー企業のファシリティーを用いて同社サービスの幾つかを実行したり、ユーザーマシンを同社に持ち込んで運用管理するものだ。

実際のところ、Windows HPC Serverを使用したサービスはIBMからもComputing on Demandとして提供されている。DellではData Center Solution部門が同社と提携し、最大578ノードのHPCを組み上げてDell Cloud Computing Solutionsとしてユーザー企業に提供しており、またデスクサイドにおけるWidows HPC Server 2008搭載の廉価版パーソナル・スーパーコンピューターCray CX1もあって、HPCクラウドは身近になっている。


◆ UniCloud 2.0 (Univa UD)

一般にクラスターシステムには、3つのタイプがある。
まず、かなり普及しているのが ①HA(High Availability)クラスターだ。このタイプは処理系とバックアップ系を切り替えて高可用性を実現する。次に、②分散クラスターがある。この場合は、処理量の多いWebやデータベース関連の処理をロードバランサーによって振り分けて負荷分散処理を可能とする。そして、③HPCクラスターでは、グ リッドなどの技術を用い、複数の計算ノードを集めてより高い計算能力を提供する。このように、HAでシステム切り替え、分散ではロードバランサー、HPCではグリッドエ ンジンなど核となるコンポーネントがあり、クラスターのソフトウェアスタックには、核コンポーネント、関連ライブラリー/ツール、実行環境ソフト、運用関連ソフトなど関連ソフトウェアが含まれ、パッケージとして提供されることが多い。さら に、これらの提供には、導入時のチューニングサービスやソフトウェア更新など、ライフサイクル管理も提供される。

ここで紹介するUniva UDは、元々、Sunの開発したN1 Grid EngineをHPCクラスター(以下、クラスター)上に適用してチューニングすることから始まった。その後、クラスターのソフトウェアスタックを整備して、ライフサイクル管理のUniClusterをオープンソースとして開発、現在はコンサルテーションなどのサービスをビジネスの主体としている。同社がサポートするオープンソースサイトGrid.orgからは、クラスターのモニタリングを行うGanglia 統合が済んだ最新版の4.1、さらに評価版5.0のダウンロードが可能だ。4.1以降では、Grid Engineだけでなく、Globusも適用できるし、Amazon EC2への適用も可能となった。UniClusterのライフサイクル管理では、デスクのパーティショニングの実行から、MPIライブラリーや各種ツールの提供、そして分散型リソース管理(Distributed Resource Manager)によって、ハードウェアに合った完全なソフトウェアスタックを組みあげる。ポイントとなるクラスタリングでは、クラスターパッケージの管理、仮想化の適用、クラウド対応、そして実行時のモニターは勿論、ファイルの同期化などを実行する。

そして、同社が7月にアナウンスしたUniCloud 2.0とは、UniClusterを核にクラウドに適用したものである。UniCloudではプロビジョニングやコンフィギュレーション、さらに仮想化など を全てRESTfulウェブサービスフレームワークで対応する。これによって
リソースやポリシー管理は簡略化され、ノードは物理的でも論理的な配置でも可能となった。クラウドユーザー向けに提供されるWebインターフェースのUniPortalではアプリケーションの実行、追 跡、監視などが行われ、付帯製品のUniPlanはワークロードのシュミレーションや分析を通してシステムの最適化を実行する。


以上見てきたように、クラウドは進化し続けている。
今や仮想マシンを束ねたGrid Computingは一般化が進み、Amazon EC2上でも、より大型のアプリケーションを実行させるためにHigh CPUやHigh Memory Instanceのサービスを開始した。ここベイエリアではバイオ系のスタートアップが
こぞって、これらを使い始めている。

2009年11月18日水曜日

HPCなど大型クラウドをサポートするベンダー (1)

今回は、HPCなどの大型クラウドをサポートするベンダーを紹介しよう。
この領域には、幾つものベンダーやオープンソースプロジェクトが存在する。ここで取りあげたベンダーの多くは、HPCやMulti-Clusterなど(以下、HPCと記す)のリソース管理などに傾注しているが、中には仮想化技術の適用手法などに工夫を凝らしているものもある。

◆ Moab Adaptive HPC プラットフォーム(Adaptive Computing)

Adaptive Computing (旧Cluster Resources)はデータセンターの自動化ソフトウェアを手掛け、とりわけ、HPCなど大型サーバーを得意としている。フラッグシップのMoabには、Moab Adaptive HPCとMoab Cluster、Moab Gridのバリエーションがある。
これらはGrid Computingの技術を基本的にクラウドに適用したもので、LinuxとWindowsが混在したクラウド環境を提供する。Moabの機能を大別すると ①自動リソース管理(Automatically Acquire Cloud Resources)、②プロビジョニング(Provisioning Cloud Resources on the Fly)、③リソース維持制御(Maintain Resource Control)の3つだ。リソース管理では、ユーザーの要求するワークフローに沿って必要なリソースをアロケーションし、プロビジョニングで、OSなど 必要なソフトウェアスタックをダイナミックにレイアウトして実行、これらリソースはオートマテック・ロードバランシングによって全体の維持制御が行われる。もし、OSやハードウェアなどに障害が起こると、Moabは別なノードをアロケートすることが出来るし、全体ノードのLinuxやWindowsの初期設定から、状況に応じて、バランスよく再アロケーションすることも可能だ。また、優先順位の高いジョブが投入されると、他のジョブのスワップアウトなどを行い、それにあったリソースを作り出して実行したり、時間的に急ぐジョブはスケジュールキューの順位を入れ替えることも出来る。












Moab Gridの場合(左図)は、通常、ユーザーはローカルクラスターにアクセスして必要なサイズを要求する。Moabは全体のリソース管理から、ローカルリソースを含めて要求の適正化を図る。これらいずれの場合も、全体リソースの稼動状況(右図)をシステム管理者は詳細に見ることが出来る。ローカルな管理者は、自分の領域内の管理、ユーザーはポータルを介して同様に自分の利用域内をみることができる。Adaptive ComputingのMoabは、これまでLinuxだけで利用されることが一般的であったHPCをWindows OSにも開放し、バランスよく実行する世界を開いている。

◆ Penguin on Demandクラウドサービス(Penguin Computing)

Penguin Computingの場合はユニークだ。
1998年の設立以来、同社はLinuxに傾注し続け、HPCに行き着いたと言ってよい。
そして今年8月、HPCを使ったクラウドPenguin on Demand (PoD)を発表。PoDでは、Amazonに代表される通常のクラウドサービスでは得られない高性能な並列コンピュータサービスを提供する。
このため、同社に設置された高性能マルチクラスターに高速ストレージを搭載、それらをInfiniBandで接続してHPCを構成する。また、超高速グラフィック処理にはスーパーGPUのNVIDIA Teslaが利用できる。さて、クラウドというとすぐ仮想化技術との関連が気になるが、PoDには、所謂、通常の仮想化技術は使われていない。同社では、クラウドとはインターネット越しに動的かつ拡張的にリソースを提供する利用形態であり、細分化された仮想マシンを提供する一般のIaaSはそのひとつで、PoDは高性能な並列処理を提供するため、より大きなコンピューティングの塊を提供するものだと説明する。

同社は設立以来、大型Linuxサーバーのハードウェアとソフトウェアの提供をビジネスとしていた。そして、2003年、NASAでLinuxサーバーを用いてスーパーコンピューターを開発するBeowulfプロジェクトでクラスタリングを手掛けていたScyld Computingを買収。これが同社のクラスタリング技術の中核Scyld Clusterwareとなっている。HPCを用いたPoDサービスは、このクラスタリングソリューションを複数台のLinuxサーバーに適用、その上に並列処理プログラミングの標準規格MPI (Message Passing Interface)ライブラリー、並列ファイル処理としてLustrePanasas PanFSPVFS2、さらに各種ツール、リソース管理、スケジューラーなどを組み入れて仕上げたものである。

◆ Platform LSF HPCプラットフォーム(Platform Computing)

Platform Computingは、この分野の老舗だ。
同社は1980年代後半、UC Berkeleyで次世代コンピューティングを予見し、無数のノードに分散されて実行するグリッドシステムの負荷分散を研究していたSongnian Zhou 博士によって始まった。主力となるLSF(Load Sharing Function)はバッチ型のワークロードが基本となり、Linux、Solaris、Windowsなどの各種OS、ハードウェアでは通常のサーバーだけでなく、クラスターやHPCなど多面的な適用が可能となっている。












現在、最も興味を引くのは、多様なシステムを総合的に管理するPlatform Enterprise Grid Orchestrator(左図-EGO)である。このEGOの利用でマルチOS対応のGrid Computingシステムを構成することが出来、さらにPlatform VM Orchestrator(右図)を用いて、VMware ESXやXen、Microsoft Hyper-Vで仮想化することも可能となっている。

2009年11月15日日曜日

グリッドとクラウドの融合
-Nimbus & OpenNebula-

前回、米エネルギー省(DOE-Department of Energy)傘下の国立研究所で始まったHPCベースのCloud Computingに関する実証実験-Magellan Project-の開始を紹介した。ただ、HPCというと、現OGF(Open Grid Forum)-旧GGF (Global Grid Forum)-などのGrid Computingを思い浮かべ、そして、Grid Computingはアカデミックの人たちのもので、古く、現在のCloud Computingとは異質のものだと漠然と考える人たちが多い。この誤解については、Globusが2007年にリリースしたWorkspace ServiceのAmazon EC2 Gatewayによって解かれたところまでを説明した。つまり、Grid ComputingとCloud Computingは補完関係にあり、EC2のComputing NodeをGrid Computingで束ねて、より大きな作業領域を作り出すことが出来る。そこで今回は、引き続き関連するテーマとして、米国と欧州の2つのオープンソー スプロジェクトを報告しよう。

◆ Nimbus

Globusの始めたWorkspace Serviceは、GGFのWSRF(Web Service Resource Framework)を基本的なベースにして、Grid Computingの流れを汲みながら、徐々にCloud Computingへと進化した。この新たな試みをNimbusプロジェクトという。Nimbusは、Globus toolkit同様、シカゴ大学(University of Chicago)とアルゴンヌ研究所(Argonne National Laboratory)が中心となって開発したオープンソースのソフトウェアセットで、HPCはもとより、クラスタリングサーバーなどのIaaS構築をサポートする。ライセンスはApache License 2。

Nimbusの提供するサービスは下図で示されるように「Compute」と「Storage」の2つ。ComputeがWorkspace Serviceであり、StorageはFTP Serviceである。

Nimbus の仮想化技術はXen(最新版TP2.2)だが、近々、KVM(Kernel-based Virtual machine)も予定されている。グリッドをクラウドに重ね合わせ、利用者により大きな空間を提供する「Workspace Service」では、Xenによって出来上がった仮想マシン(VM-Virtual Machine)をクライアントからの要求(Client Initiation)に従ったサイズにすべく、VMM(Virtual Machine Monitor)-仮想化ソフトウェア-と連携し、結果をクライアントに返す。この際のリソース管理は2つ。デフォルトはプールされた仮想マシンを直接利 用する「Resource Pool」、もうひとつはNASAが開発した分散環境下のジョブスケジューリングが出来るワークロード管理OpenPBSな どのLRMS(Local Resource Management System)を用いる方式である。Nimbusでは、また、次に紹介するOpenNebulaをWorkspace Serviceのバックエンドとして連携させる試みも行われ、将来は本格的な連携も期待されている。

Nimbusのクライアントからの使い方を見てみよう。
標 準となるのは「Cloud Client」で、構築したNimbusシステム上でWSRFと連携したWorkspace Serviceを受け「EC2 Client」はWSDL(Web Service Definition Language)でNimbusと連動し、EC2リソースを利用したWorkspace Serviceを受ける。また「Context Client」とは、Workspace Serviceベースではなく、仮想の大型クラスターをContext Broker経由でNimbus上で利用する形態をいう。

◆ OpenNebula

NimbusがGlobus/OGFを核とした米国中心の活動であるのに対し、OpenNebulaプロジェクトは、ヨーロッパがベースだ。2002年から始まったスペイン最大マドリード・コンプルテンセ大学(Universidad Complutense de Madrid)のDistributed Systems Architecture Research Groupが 開発したものだ。ユーザーはこのツールを適用して、HPCや企業内データセンターのクラスターシステムなどを仮想インフラ化してクラウド利用する。 OpenNebulaはIaaS構築のVirtual Infrastructure Managerとして機能し、仮想マシンだけでなく、ストレージやネットワークの管理も実行する。最新版のOpenNebula 1.4では、仮想化はXenだけでなく、KVM、VMwareにも対応し、Virtual Boxも1.4.2で計画されている。また、利用リソースは、Nimbus同様、自前のローカルリソースだけでなく、Amazon EC2、英ElasticHostsをハイブリッドクラウドとして利用することができる。ライセンスもNimbus同様、Apache License 2。














-特徴-
  • Dynamic Resizing/Dynamic Cluster Partitioning-新らたに物理ホストを追加すると瞬時に自動システムサイズ拡張を実行、またパーティショニングによるクラスターサイズも動的変更ができる。
  • Centralized Management全ての仮想・物理マシンを中央管理し、カスタマイズのためにユーザーやシステム管理者にAPIを提供。
  • Higher Utilization of Existing Resources-異なる組織で管理するサーバーや異機種などの現存するリソースを組み入れることができる。
  • Lower Infrastructure Expenses-自前リソースと外部クラウドをハイブリッド利用し、実質コストを抑制する。
さて、このOpenNebulaには、幾つかヨーロッパとしての大事な役割がある。
まず、欧州連合(EU-European Union)がファンディングしているResevior(後述)、次がスペイン工業・観光・通商省が後援し、スペイン最大の電話会社Telefonica が民間8社のコーディネーターとなって進めるNUBA(Normalized Usage of Business-oriented Architecture)プロジェクト、来年からはスペイン科学・革新省のスポンサーによるHPCを本格的に利用したクラウドHPCcloudプロジェ クトなどだ。OpenNebulaはこれらプロジェクトの基盤ソフトウェアとして利用され、一方で、その成果を民間にオープンソースとして提供する役割を 担っている。

◆ Reservoir


Reservoirは EUがスポンサーのプロジェクトで、第7次研究・技術開発のための枠組み計画(FP7)に沿い、ソフトウエアや通信分野の大手企業が中心となって、 2005年に発足したオープンスタンダードにもとづくソフトウエアとサービス開発を目指すNESSI(Networked European Software and Services Initiative)と連携するものである。プロジェクトの課題は、異なるITシステムやサービスのバリアを無くし、真にユーザーフレンドリーな環境の 提供を目指すもの。このためにCloud Computingを用いて異なるITプラットフォームやITサービスを境目無く提供する管理技術を研究する。プロジェクトの実際の活動は、イスラエルに あるIBMのHaifa Research Labが核となり、パートナーとして独SAP Research、米Sun Microsystems、スペインTelefonica Investigacion y Desarrollo、仏Thales、スウェーデンUmea University、英University College of Londonなどが参加。また、NESSIには、仏Atos Origin、英BT Group、伊Engineering Ingegneria Informatica、IBM、HP、フィンランドNokia、独SAP、独Siemens、独Software AG、伊Telecom Italia、スペインTelefoica、仏Thales、現OW2(旧ObjectWebコンソーシアム)などが参加。

◆ LHC Computing Grid

世界最大のGrid Computing、それは昨年7月に運用が開始されたWorldwide LHC Computing Gridである。CERNとして知られる欧州原子核機構がジュネーブ西方の
レマン湖畔にフランスをまたぐ全周 27km の円形加速器LHC(Large Hadron Collider)を設置し、2008年から実験が開始された。LHC Computing Gridは、この加速器を用いた実験分析用として作られたものである。
世界34ヶ国、170のコンピューティングセンターの100,000 CPUをグリッド結合して、各 国の研究所や大学から直接利用することが出来る。この巨大な分散ネットワークは、3つのTierと呼ばれるレイヤーからなり、Tier 0はCERN自身のComputing Centerで、全てのジョブのLHCデータはこのハブを通して供給され、主要な他のレイヤーとは10GBで接続されている。次のTier 1は、LHCデータ保存のため、比較的大きなストレージ容量を持った11のコンピュータセンターが選ばれ、LHCデータは、このTier 1からさらに160のTier 2となるデータセンターに送られて使用される。ミドルウェアとして利用されているのは、Grid Computing構築のGlobus Toolkit、ウィスコンシン大学で開発した分散スケジューリングのCondorとグリッドソフトウェアの統制図るVirtual Data Toolkit、欧州のEnabling Grids for E-sciencE(EGEE)が開発した軽量のグリッドツールgLite Toolkitなどだ。Worldwide LHC Computing Gridの試運転は昨年7月、本格的な運用は10月からだった。そして1年、これまでの稼動実績は18,500万ジョブにのぼる。今後はグリッドとクラウドの融合技術が検討予定だと聞く。


本稿では、米欧、2つのHPC用クラウド構築プロジェクトを紹介した。
こ れらを詳しく調べると、現在の商用Cloud Computingの将来展望が見え始める。サーバーはラックマウントなどの単なるコモディティーから、ブレードサーバーより高度なHPCへ、さらにはデ スクトップからサーバーへと進化した仮想化技術も無数のノードが前提となる。この分野が実用化されれば、より効率的で巨大なクラウドが出現する。

2009年11月8日日曜日

HPCを使ったクラウドコンピューティング
-DOEのマジェラン・プロジェクト(Magellan)-

米エネルギー省DOE(Department of Energy)傘下の国立研究所には大型のHPC (High Performance Computing)が多数設置されている。
そこで、これらのHPCを利用したCloud Computingの実証実験がスタートすることになった。マジェランプロジェクト(Magellan Project)という。資金はObama政権下で
2月に成立した米経済再生法American Recovery and Reinvestment Act (ARRA)から$32Mが使われる。中心となるのは国立アルゴンヌ研究所(Argonne National Laboratory)のArgonne Leadership Computing Facility (ALCF)とローレンス・バークレイー研究所(Lawrence Berkeley National Laboratory)のNational Energy Research Scientific Computing Center (NERSC) だ。ALCFには複数台のタイプの異なるIBM Blue Geneがあり、NERSCにはCrayのFranklinやSGIのDaVinc(Altix 350)などが設置されている。

プ ロジェクトの目的は、科学アプリケーションがどのようなCloud Architectureに向くのかを調べ、その上でHPCをどうすればクラウド化することが出来るかを見極めること。これはまた、HPCアプリケーショ ンをどうやってCloud Computingに最適化するかでもある。一般のPublic Cloudで科学アプリケーションを動かすにはネットワークパフォーマンスの問題、さらにメモリーや計算処理能力そのものも不足しており、もっとハイパ ワーでなければならない。HPCは計算能力は高いが、仮想化などの実績に乏しい。

Public Cloudに限らず、通常のCloud Computingでは、仮想化ソフトウェアを用いて無数の仮想化マシンを作り出し、それらにOSを含めたソフトウェアが搭載される。一方、HPCでは無数のノードを論理的に束ねて、大きな仕事を実行する。その意味で、HPCを用いたCloud ArchitectureはGrid Computingに近い。大きなものを分割して利用する今日的なCloud Computingと、
小さなものを集めて大きな仕事をするGrid Computing。この2つは共に異なる仮想化の世界作り出し、補完関係にあると考えられるが、技術的にはまだ隔たりも大きい。

◆ GridとCloudの融合

こ こで少しGrid Computingの歴史を振り返ってみよう。旧GGF-Global Grid Forum(現OGF-OpenGrid Forum)がGrid ArchitectureにWeb Service/SOA技術を適用したOGSA(Open Grid Service Architecture)を定め、全体のリソース管理を司るWeb Service Resource Framework (WSRF)を発表したのは2004年のこと。Xenがリリースされたのは2003年、Amazon EC2が2006年であるから、WSRFはその中間の時期に登場した。そしてGGFと関係が深く、オープンソースグリッド作成ツールで有名なGlobusがこのWSRFをもとにWorkspace Serviceを2005年にリリース。
このサービスは、分散処理を前提にしながら、より快適な大型作業空間を提供する。

つ まり科学アプリケーションなど向けに、より大型のコンピューティング環境をGrid Computing技術で可能としたものだ。2007年には、Amazon EC2向けのGatewayも用意され、EC2の仮想マシンを無数に利用したWorkspace Serviceが可能となった。これによって、Grid ComputingとCloud Computingは、技術的に補完関係であることが証明されたわけである。

◆ 国立研究所を繋ぐ100 Gpsネットワーク

Magellan Projectに先立ち、同じARRA資金-$62M-を使った100 Gigabit Ethernet Projectも動き出した。このプロジェクトは、ローレンス・バークレイー研究所が中心となって今年8月にスタートし、DOE傘下の複数の国立研究所 (Sandia、Lawrence Livermore、Lawrence Berkeley、Oak Ridge、Los Alamos、Brookhaven、Argonne、Pacific Northwest)とシリコンバレーにあるNASA Ames Research Centerが結ばれる。この高速ネットワーク網とHPC内のInterconnect-ブレード接続ネットワーク(Back Panel)-を最適化することでネットワークパフォーマンスは大幅に改善される筈だ。

◆ 並列処理ソフトウェア

Grid Computingにとって並列処理は欠かせない。
Goolge が稼動させる巨大な検索エンジンプラットフォームこそ、まさに並列処理の塊である。ここで使われているGFS(Google File System)は、高信頼分散ディスクシステムであり、MapReduceは並列処理そのものだ。これらのオープンソースクローンとしてYahoo Labが開発したHadoopはその後、Apache Software Foundationに寄贈されてプロジェクトとなり、さらにプロジェクトメンバーによる商用サポートのClouderaも 設立された。Hadoopでは、GFSがHadoop Distribution File Systemとなり、その上にHadoop MapReduceとGoogleのデータベースBigTableに相当するhBaseがある。さらに大規模データセットの並列処理言語として、これも Yahoo Labが開発したPigHiveも用意されている。この分野には他に、2007年9月、Sunが買収した大規模分散ファイルシステムのオープンソースLustre既報)、 Oracle RAC(Real Application Cluster)などもある。RACは、複数のアプリケーションサーバーから分散データベースをアクセス可能とするクラスター型ディスク共用技術 Common Disk Clusteringとサーバー間を高速で同期化させるChache Fusionからなる技術だ。
◆ HPCに熱中するITベンダー

もうひとつ大事なことがある。ITベンダーの動きだ。
IBM やSunなどのITベンダーは、Grid Computingがいずれ科学計算分野から抜け出て、商用に展開できることを期待している。なかでもIBMは強力にGGF を支援して来たし、Sunは初のグリッド商用プラットフォーム構築ツールN1 Gidを開発、今日、その技術はHPC適用のSun Grid Engineとして提供されている。

DOEに導入されている沢山のHPCがクラウド化されれば、商用への道程は近い。
マジェランプロジェクトの作業は、科学アプリケーションワークロードのクラウド適用だが、ここまでくれば、次はHPCに適したクラウドインフラや並列処理の各種ソフトウェアが搭載されて、企業データセンターへ適用するという別な世界が開ける。