ぽんこつメモ

https://github.com/kanorimon

Amazon EC2を使って、3Dレンダリングをしてみたメモ

米国東部ヴァージニアリージョンにEC2コンピュータクラスタを作成

プレイスメントグループにインスタンス(マスター・スレーブ)を作成

  • AMIにWindows Server 2008 R2を選択
  • Administratorパスワードを取得
  • リモートデスクトップ接続する
  • ファイアウォールの設定で、ポート8000(blenderの通信ポート)を開放する
  • blenderをインストールする(NetworkRenderアドインを設定しておくこと)

blenderで処理

  • マスター用サーバーでblenderを起動し、マスターの開始ボタンを押す
  • マスター用サーバーのIPアドレス(プライベートアドレス)を確認する
  • スレーブ用サーバーでblenderを起動し、マスター用サーバーのアドレスを設定し、スレーブの開始ボタンを押す
  • クライアント用サーバーでblenderを起動し、処理するファイルを開いた後、マスター用サーバーのアドレスを設定する
  • クライアントの「Send job」ボタンを押す
  • サーバーモニターでFinishedになったら「Get Animation」ボタンを押す
  • レンダリング結果は、クライアントで設定したPathに格納される

注意事項

bake処理はコア数が増えても並列処理できないので、マイクロインスタンスで十分。

クラスタコンピュートの場合(Twitterから転載)

  • クラスタコンピュート エイトエクストララージ
  • レンダリングエンジン=Blender内部レンダラ
  • 画像サイズ=640*360
  • HDR使用
  • サンプル数8
  • ミラーマテリアルなし

約30sec/1フレーム。

30fpsで5minの動画だと9000枚必要なので、9000*0.5minで4500min=75h。

75h*$3=$225。

 

$240/$3=80台を並列に並べれば約1hでレンダリング完了。

逆に1台でがんばっても、レンダリング時間がのびるだけで$225かかる。

ただし、ネットワーク転送に時間がかかる+分散処理に限界があるのでは?(未検証)

GPUインスタンスの場合(Twitterから転載)

  • クラスタコンピュート エイトエクストララージ
  • レンダリングエンジン=Cycles
  • 画像サイズ=640*360
  • HDR使用
  • サンプル数128
  • ミラーマテリアルなし

13.94sec/1フレーム。

0.25min*9,000フレーム=2,250min、2,250min/60min≒38h、38h*$2.6=$98.8。

スポットインスタンスなら38h*$1=$38。

 

10インスタンス起動すれば4hでレンダリング完了。

ただし、ネットワーク転送に時間がかかる+インスタンス起動数に上限があるので注意。

結論

何度かベンチしてみたところ、AWSだと、どの方法でもだいたい$8/500フレーム程度が限界。

ユーロ建てだと高くつく、または、自前でサーバーを構築しないといけない場合は、GPUインスタンスのオンデマンド*1(マスター用)と、GPUインスタンスのスポット*n(スレーブ用)で処理する。

一般的なレンダリング処理だけなら、レンダーファーム(RenderFlowだと5ユーロ/500フレーム)を利用する。