ニュース

【特別企画】開発現場に“創造の時間”を生み出す「IncrediBuild」

Windows 8にも対応。負荷なく即使用可能

Windows 8にも対応。負荷なく即使用可能

 グリッドコンピューティングによる分散処理というと、クライアントとなっているPCに変な負荷がかかる可能性や、膨大な台数のクライント機器が必要なのではないか? という疑念が常につきまとうが、「IncrediBuild」にそうした懸念は不要だ。

「『IncrediBuild』では、計算処理だけを投げる形です。それぞれのPCの負荷状況を見て、余っているCPUリソースだけを使用します。また、たとえば分散処理をさせているうちの1台のCPU負荷が高くなればキャンセルして別のPCに割り振りますし、急なシャットダウンでも同様に代替処理を行ないます」(世古口氏)。

 導入しているのはセガだけではない。この驚異的なビルドの速さは開発プロジェクトのスケジュールのスピードにも大きく関わるため、バンダイナムコゲームズ、フロムソフトウェアなどの大手メーカーが次々に導入している。

 しかも簡単に導入でき、パッケージをインストールすればすぐに使える。すでに使用している「Visual Studio」や「Make」を利用できるため、PS3やXbox 360、Wii Uといった開発でも、別段の手間を必要とせずに使えるのも魅力的だ。

【必要構成】
・対応OS
Windows XP/Windows Vista/Windows 7/Windows 8/Windows Server 2003/Windows Server 2008
※32bit、64bit、すべてのバージョンに対応
・CPU
必要動作環境:Pentium 400MHz
推奨動作環境:Pentium 4 2.1GHz以上
・メモリ
必要動作環境:64MB
推奨動作環境:512MB以上
・ネットワーク
100Mbps以上のTCP/IP イーサネット
・対応IDE
Microsoft Visual Studio 6.0/.NET/2005/2008/2010/2012
Microsoft eMbedded Visual C++ 4.0
・Additional supported compilers include
MS Xbox 360 XDK
intel C++ Compiler for Windows
eMbedded Visual C++ 4.0

なぜ「IncrediBuild」で速くなるのか? 理由はグリッドコンピューティングによる高速化

 「IncrediBuild」は単なるビルド用のツールというわけではない。「XGE(Xoreax Grid Engine)」と呼ばれるグリッドコンピューティングを実現するコアを中心に、プログラム開発用にウェイトを置いたツールだ。

 「XGE」自体は、与えられたプリミティブな計算処理を行なって結果を返す……というエンジンだ。これをネットワークにつながった複数のPC上に置くことで、重い処理を分散させて、処理にかかる時間を短縮している。

 ネットワーク上には、計算を分担する「Agent」と呼ばれるクライアントマシン以外に、これら「Agent」をマネジメントする「Coordinator」が必要になる。1台の「Coordinator」で「Agent」400台を管理できる。「Coordinator」は常に「Agent」のステータスを監視しており、どの「Agent」の負荷が低いか、どこにジョブを投げたら効率的かなどを把握している。「Agent」のひとつからジョブが投げられると、それをどこに分散させたらよいかを判断し、適切に割り振るといった形だ。

 また、複数の「Agent」からビルド要求が出されても、同様にうまく采配していくため、すべてのリソースが埋まらない限りスムーズなビルドが可能だという。

【「Xorax Grid Engine」の概要】

  • ・Windowsで動作するグリッドエンジン
  • ・分散処理のフォールトトレラント環境を実現
  • ・お使いのWindows PCで分散処理環境を実現
  • ・アプリケーションソースコードの修正が不要
  • ・アプリケーションのプロセスを分散化

 グリッドコンピューティングを実現する「XGE」をコアとして、ビルドをはじめとする処理を分散・高速化させるのが「IncrediBuild」というソリューションだ

製品構成例。1台の「Coordinator」で最大400台のAgentをマネジメント可能。必要なところに必要なだけ処理を分散する形なので、ムダのない形で運用できる

ビルドに特化したふたつのソリューション。「for VisualStudio」、「for Make&Build Tool」

 このシステムをビルド用に特化させたのが「IncrediBuild for VisualStudio」と「IncrediBuild for Make&Build Tool」というふたつのソリューションだ。

 「IncrediBuild for VisualStudio」は、その名の通り「Visual Studio」のビルドを分散処理させるためのソリューション。インストールすると「Visual Studio at on」という形のプラグインとなり、ソースファイルの変更も何もせず、従来と何ら変わらない形でビルドが行える。各種リソースにも手を加える必要はないし、ジョブを投げるクライアント、あるいはそこから見えるネットワークにあればいい。

 「IncrediBuild for Make&Build Tool」も同様だ。こちらは統合パッケージではなく、コマンドからMakeなどを行なう際のソリューション。インストールすると、「BuildConsole」というオリジナルのコマンドラインを通して、Makeのバッチ処理をかける形だ。入口が「BuildConsole」になるだけで、使い勝手は標準のコマンドラインと何も変わらない。

 これら実際のコンパイルの際には、分散先に必要なライブラリなどもオリジナルの圧縮プログラムで圧縮され、独自のファイルシステムの中で処理される。ユーザー側はそれを気にすることなく、結果だけを享受できる仕組みだ。

Build Monitor画面。Progress View機能により、分散処理の進捗は視覚的に表現。タスクの進行を表すバーはメッセージと「exit code」に従って色分けされている

「IncrediBuild for Dev Tools」で任意のアプリケーションを分散処理可能

 そして「IncrediBuild」のおもしろいところが、もう1つ。この強力な分散コンピューティングを好きなアプリケーションに適用しちゃいましょう、という「IncrediBuild for Dev Tools」だ。これを使えば、重いデータコンバートや動画のエンコードなどの処理をXGEを使って分散処理させることができるようになる。

「バッチ処理やXMLファイルのコンパイルなども含め、Windows上のアプリケーションを分散処理させられます。スクリプトをご自身で組んでいただく必要がありますが、そのぶん、応用の利いたソリューションになっています」(鳥居氏)。

 ただし、アプリケーション自身が複数スレッドで動くようなもの、ライセンスによって保護されているようなものには使えないとのことだが、それでもかなりのデータ処理が高速化される可能性があるのだ。

管理機能画面。全Agentのハードウェアスペック、OS情報、ネットワーク性能、パフォーマンス評価値、そして現在の負荷を元にした有用性(現在の負荷状況)を表示。さらにAgent設定をモニタ内で集約して変更することができる

(坂本章)