記事一覧

MODO 10.2 ネットワークレンダリングのパフォーマンス

MODOはネットワークレンダリングに対応していて、簡単な設定でレンダリングノードを追加できます。しかも追加ライセンスが不要なので、PCさえあれば大量のノードを追加することだって夢ではありません。

MODO 10.2 Network Job Sizeの検証

MODO 10.2ではBonjourを使った通信に対応しているため、「Use Network Render Nodes」をチェックするだけでネットワークレンダリングの設定が完了します。(従来からある共有ディレクトリを指定する方法も使えます)
そして、ネットワークレンダリングに関する設定値の中に「Network Job Size」という項目があり、ここでレンダリングノードに対してどの程度のジョブを渡すか指定できます。通常は、各ノードのコア数(仮想コア数を含む)の2倍(つまり200%)を指定するようですが、本当に200%が最適なのか実際に試してみました。
MODO Network Redering 設定

検証に利用する環境

ネットワーク環境
私が使っている環境は上の図のようになります。
Core i7-7700Kのマシンがメインで、Core i7-3770Kの方がレンダリングノードになります。マシン間は1GbpsのLAN×2本で接続しています。(間に1Gbps対応のスイッチングハブ)
※ファイル共有のプロトコル SMB 3.0なら2Gbps(1Gbps×2本)を使えるのですが、Bonjourが2本の経路を同時に使うかどうかは分かりません。(なんとなく、片方しか使われないような気がします)

ネットワークレンダリングの検証に使うMODOのシーンは、以下の2つで試しました。
比較的軽めのBoxGrid(左側)と、やや計算量が多くなるVolumeCloud(右側)の2つです。なお、今回使用したMODOのシーンファイルを公開しているので、興味があればダウンロードして試してみてください。
サンプルシーン

Network Job Sizeの検証結果

結論から言うと、300%が適しているようです。(利用している環境によって結果が異なる可能性があるため要注意)

BoxGridシーンの結果
BoxGridのグラフ
横軸がNetwork Job Size(100%~800%)、縦軸がレンダリングにかかった秒数です。
Network Job Sizeが300%まではパフォーマンスが向上していますが、400%を超えるとパフォーマンスが悪くなるようです。このシーンでは300%が最も早くレンダリングできました。

VolumeCloudシーンの結果
VolumeCloudのグラフ
こちらのシーンでも、BoxGridと似たような結果になりました。
傾向としては、100~300%にかけてパフォーマンスが向上し、400~500%で悪化、再び600~700%で改善傾向にあり、800%で悪化する…というグラフになるようです。

VolumeCloudのシーンでは600%の場合に最も早い結果になりましたが、300%と700%も同じくらいの時間で完了しています。
これらの結果から、私の環境ではNetwork Job Sizeは300%が最適(なケースが多いと思われる)という結論になりました。
※統計的にはサンプル数が2つ(BoxGridとVolumeCloud)なので、もっとサンプル数を増やさないとなんとも言えないのだけど…

見ていて気づいたこと

レンダリングの終盤になると、メイン側(オレンジ枠)とレンダリングノード側(青枠)の計算領域が必ず重なります。(両方とも同じタイミングで完了すればベストなのですが)
このとき、Network Job Sizeを800%のような大きな値に設定するとレンダリングノード側で計算する面積が増え、なかなか結果が返ってきません。そうなると、レンダリングノードで計算している領域(青枠)をメイン側(オレンジ枠)で重複して計算することになります。
場合によっては、まだどちら側にも割り当てられていない領域があるにもかかわらず、なぜかメイン側がレンダリングノード側(青枠)の計算を手伝うことがあり、その後に残っていた未割り当ての領域を計算する…というケースもありました。
レンダリングアニメーション

Network Job Sizeを大きな値にするほど、このような計算終盤での無駄が多くなりレンダリング時間も延びてしまうのだと思われます。逆に、Network Job Sizeが100%の場合は、頻繁に情報の受け渡しが発生して、そのオーバーヘッド分がレンダリング時間に影響しているのかな…と。
関連記事

スポンサーリンク

  

コメント

コメントの投稿

非公開コメント