cell computing & boinc

by syoyo

セル(グリッド)コンピューティングで分散レンダリングを行うという
プロジェクトが始まっています。

http://www.cellcomputing.net/simple/index.php

レンダラには Aqsis が用いられていますが、実のところ、
裏では lucille や某国産レンダラが候補に挙がっていたのは云うまでもありません。
(とはいえ、いずれまた aqsis を降格させて lucille が復権する
シナリオもなきにしもあらず、かもしれません)。

さて、ネットワークで分散レンダリングを行ううえで、
一番の問題となるのは、シーンファイルのサイズである。

たとえば、分散レンダリングで映画レベルの CG を
レンダリングするというのも可能ですが、その場合
ファイルサイズ(テクスチャやジオメトリ)がギガバイト級になってしまい、
ネットワークでのシーン転送のほうが実際の
レンダリング時間よりもかかってしまうということになります。
(フレーム間での差分を送ることで転送量を抑えることもありえますが、
cell computing βirth が用いている boinc フレームワークでは、
これを実現するのは難しいっぽいようです)

そのため、実際のプロダクションにおける
レンダーファームでは、計算能力だけでなく、
ファイルサーバなどのストレージ管理も重要な役割を
担っていると思います。

よって、分散処理においては、データ転送時間が、各クライアントノードでの
計算にくらべて少ないアプリケーションが適しています。

その点では、CG の分散レンダリングという
アプリケーションは、あまり分散処理には向かないのかもしれません。
(ちなみに CG レンダリングでは、入力と出力の比率が
1000:1 となっているようです。from Shrek 統計情報より)

とはいえ、実際に cell computing βirth のプロジェクトを実行してみると、
シーンなどの転送のほうがレンダリングに比べて
時間がかかっていますが、それなりにうまく動いているし、
まったりとクライアントを立ち上げているだけでいろいろと処理が進んで
いるので、シーン転送のほうが時間がかかっているなどの
細かい点は気にはなりませんでした。

というわけで、maxwell render のようなきれいな画像がでるのであれば、
レンダリング時間、転送時間がいくらかかってもいい、という人は
結構いそうな気がします。

ちなみに、バイオ系のアプリでは、データ量が少ないので
分散コンピューティングに向いているそうですが、
ペタフロップス級のコンピューティングパワーが必要との
ことらしいです。CG よりも計算パワーがいるのですね。

boinc

cell computing βirth で用いられているクライアントソフトは、
SETI@home でも使われている boinc と呼ばれる
分散処理フレームワークソフトウェアです。

http://boinc.berkeley.edu/

とりあえずローカルで boinc サーバを立ててみましたが、
ワークユニットを作るところらへんでちょっと挫折。
とはいえ、boinc の API は使いやすいとのことなので、
lucille も boinc に対応させて、分散レンダリングを試してみたいですね。

 

ところで、lucille は cell computing とも関連があるし、 
cell チップに対してももしかしたら初の大域照明レンダラ on cell、
というネタがなきにしもあらずかもしれないし、
結構いろんな cell と関連がありそうな気がしてきました。
(そういえばアレは完全体になったあとどうなったんだろ。読み返さないといけませんね)

Advertisements