【新・言語進化論】アレで使われている言語って何?
第3回:cell computing βirthでハイビジョンアニメを作る
著者:NTTデータ 古矢 満
公開日:2007/11/16(金)
コストとメンテナンスのメリット
C++言語では計算精度が 32bit/64bitマシンやワークステーションクラスのシステムアーキティクチャに依存する。C++言語で開発したことのある方なら苦労された経験があると思うが、異なるアーキティクチャが混在した場合、倍精度関数の桁数や浮動小数点演算の丸め誤差が大きな違いになってしまう。
アニメーションの例でいうと、32bit環境で計算した結果と64bitワークステーションで計算した結果が微妙に異なり、同じデータからレンダリングした画像でも色味の差となって現れてしまう。カットを切り替えてしまえば目立たない程度の差異だが、連続したカットの中に混在するとフリッカ(色パカ)のような現象が現れるほど違い、使い物にならない。
その点Javaで開発したクライアントの場合、どの環境でも同じ関数精度・丸め誤差が保証でき、マシンアーキティクチャに依存しないのである。これは、カットどころかフレームやレイヤーまで分解して分散レンダリングした場合でも、全く色の違いがないということだ。
分散コンピューティングを利用するメリットは、それ以外にもある。実際に運用することを考えてみた場合、どんなにマシン性能が良い1台のPCでも、1,000台単位で集められた分散コンピューティングによる演算能力に勝てることはない。
管理用サーバが必要という面はあるが、個々のクライアントマシンの1台が故障したとしても全体に影響を与えることはない。さらに、機種に依存しないプログラム開発が可能なため、さまざまな種類のマシンの使用やメンテナンスの統合がはかれるほか、機器ごとのチューニング費用が必要なくなる。
結果的に運用コストを台数から比較した場合、驚異的な低価格で実現することができることとなる。ただし、分散処理のオーバーヘッドや冗長化による計算効率の低下を考慮し、コストとメンテナンスの利点が有効かどうかの判断が常に必要になる。
今回のプロジェクトでは、この「1,000台単位」を集めた分散コンピューティング環境を、広く一般のユーザからの参加によって実現する。これは、管理されたIDCでの運用でなく、「一般家庭で余っている演算能力を集める」という運用になる。
プロジェクト開始の11月15日にはWindows用/Mac OS X用のクライアントを配布するほか、TOMOYO Linuxを導入したセキュアなLinux LiveCD!による環境も提供する。なおクライアントの実行には、ユーザの環境によってあらかじめJavaVMのインストールおよび設定が必要となる(LiveCD!は、起動時にJavaVMの自動インストールに対応している)。
今回のプロジェクトでは、30秒のフルハイビジョンアニメーションをレンダリングすることを目的としている。プロジェクトの実施期間中には映像のレンダリング設定を変換し、複数のパターンを制作する。
レンダリング結果としてできあがった映像は、ハイビジョン環境を使った上映会や低画質版のインターネット配信を予定している。ぜひ本プロジェクトに参加し、その結果をその目で確認してもらいたい。
次回は
今回は予定を変更し、2007年11月15日にスタートした「デジタルハイビジョン環境における第3世代アニメーションの研究と実証(HD-Animation)」プロジェクトの概要についてお届けした。
さらに次回11月22日には、本プロジェクトにおいて移植作業に関わったスタッフによるJavaクライアント実装のポイントについて詳しく解説する。乞うご期待。 タイトルへ戻る