|
なぜJavaによるクライアント 今回行われる実証実験では、「SETI@home また、レンダリングはDisney作品で有名なPixar Animation Studios社がフリーで公開しているRenderman互換の「Aqsis この2つのシステムが「C++言語ベースで開発されている」という点を、すでにご存じの方も多いと思う。しかし先に述べたとおり、今回のプロジェクトではJavaによるレンダリングエンジンを活用している。 つまり今回のプロジェクトでは、C++言語ベースで開発されたレンダリングエンジンをJavaへ移植した上で実証実験を行っているのだ。では、なぜJavaへの移植を行ったかについて詳しく解説していこう。 まずJavaのデメリットから見ていくべきだろう。Javaは何といっても「遅い」という印象が強い。Javaバイトコードからネイティブコードへの変換だけでなく、さまざまなプラットフォームで利用するために、最大公約数的な機能しか利用できないことが、その要因だ。このため、C++言語で最適化された性能値の10倍以下の性能しか出せないケースも珍しくはない。 しかし逆にメリットといえるのが「JavaVMが動作する環境であれば、同一のパッケージを使用できる」という点だ。 本プロジェクトでは高精細画像をあつかう関係上、大量のメモリが必要となり、必然的に動作環境はPC以上を想定している。しかし、1つ1つの計算量が小さい場合には、携帯電話にJavaVMが実装される現在は、非常に多くのクライアントを活用することができる。 今回のプロジェクトで活用しているcell computing®は、もともと「遅い」マシンを「大量に集めた」結果として、大容量の計算を実現することを目的としてる。つまり、最初にデメリットとしてあげた「実行速度が遅い」という点は、最初から織り込み済みなのだ。 つまり、単体のJavaによる遅さを嘆くより「異なるマシンでもより簡単に大量に集めることができる=多種多様なクライアントで実行できる」ことこそが重要である。「結果的に演算性能が高くなればよい」というのが、本プロジェクトでJavaを使用する理由の1つといえるだろう。 |
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||


