TOPシステム開発> 【新・言語進化論】アレで使われている言語って何?> 第3回:cell computing βirthでハイビジョンアニメを作る (2/3)




【新・言語進化論】アレで使われている言語って何?

【新・言語進化論】アレで使われている言語って何?

第3回:cell computing βirthでハイビジョンアニメを作る

著者:NTTデータ 古矢 満

公開日:2007/11/16(金)

なぜJavaによるクライアント

今回行われる実証実験では、「SETI@home
http://setiathome.berkeley.edu/)」で有名な「BOINC(Berkeley Open Infrastructure for Network Computing、
http://boinc.oocp.org/indexj.php)」をベースに分散コンピューティングシステムを構築している。

また、レンダリングはDisney作品で有名なPixar Animation Studios社がフリーで公開しているRenderman互換の「Aqsis
http://www.aqsis.org/xoops/modules/news/)」を使用している。

この2つのシステムが「C++言語ベースで開発されている」という点を、すでにご存じの方も多いと思う。しかし先に述べたとおり、今回のプロジェクトではJavaによるレンダリングエンジンを活用している。

つまり今回のプロジェクトでは、C++言語ベースで開発されたレンダリングエンジンをJavaへ移植した上で実証実験を行っているのだ。では、なぜJavaへの移植を行ったかについて詳しく解説していこう。


(画像をクリックすると別ウィンドウに拡大図を表示します)

まずJavaのデメリットから見ていくべきだろう。Javaは何といっても「遅い」という印象が強い。Javaバイトコードからネイティブコードへの変換だけでなく、さまざまなプラットフォームで利用するために、最大公約数的な機能しか利用できないことが、その要因だ。このため、C++言語で最適化された性能値の10倍以下の性能しか出せないケースも珍しくはない。

しかし逆にメリットといえるのが「JavaVMが動作する環境であれば、同一のパッケージを使用できる」という点だ。

本プロジェクトでは高精細画像をあつかう関係上、大量のメモリが必要となり、必然的に動作環境はPC以上を想定している。しかし、1つ1つの計算量が小さい場合には、携帯電話にJavaVMが実装される現在は、非常に多くのクライアントを活用することができる。

今回のプロジェクトで活用しているcell computing®は、もともと「遅い」マシンを「大量に集めた」結果として、大容量の計算を実現することを目的としてる。つまり、最初にデメリットとしてあげた「実行速度が遅い」という点は、最初から織り込み済みなのだ。

つまり、単体のJavaによる遅さを嘆くより「異なるマシンでもより簡単に大量に集めることができる=多種多様なクライアントで実行できる」ことこそが重要である。「結果的に演算性能が高くなればよい」というのが、本プロジェクトでJavaを使用する理由の1つといえるだろう。 次のページ




株式会社NTTデータ 古矢 満
著者プロフィール
株式会社NTTデータ 古矢 満
茨城県常総市生まれ。1988年茨城大学工学部機械工学科卒。同年NTT入社。現在の所属は、株式会社NTTデータ 法人ビジネス推進部 開発統括部。元ネットワーク系技術者ですが、現在はPMO業務をしています。


INDEX
第3回:cell computing βirthでハイビジョンアニメを作る
  デジタルハイビジョン時代のアニメ制作の悩み
なぜJavaによるクライアント
  コストとメンテナンスのメリット