GridMarketで初めてのレンダリングファーム

今回は初めてのレンダリングファーム経験で使ったGrid Market の紹介とぶち当たった壁についての説明記事です！

## GridMarket とは
Gridmarket はクラウドレンダリングサービスの一種です。
自分で自前で組む場合はHoudiniだと [Hqueue](https://www.sidefx.com/docs/houdini/hqueue/)とか他のクラウドサービス（AWSとか）[AWS-RFDK](https://github.com/aws/aws-rfdk)でも結構設定しないといけない。

もっと[Sheep it](https://www.sheepit-renderfarm.com/)みたいな感じでお互いのフレームをレンダリングし合う優しい世界がいいなって思いますが、待っていられないので、お金で殴ればフレームが出てくるGrid Marketを使用しました

Gridmarket 自体もバックエンドには[Oracle](https://www.oracle.com/customers/gridmarkets/)のサービスを利用していて、膨大の数のサーバーを操ってるような感じです



### はじめ方
他の記事にも記載されているが、それよりもっと楽になり、Envoyで全てが完結するような形にアップデートされている。
Envoyにレンダリングジョブを予約し、プラグインで必要なデータを渡して、結果をダウンロードするみたいな感じです

https://www.youtube.com/watch?v=hRmdLWkGlOU



https://qiita.com/tsuka0245/items/d59f3bcac82ce5b04a07


## TIPS
GridMarket は C4D とか Blender とか
今回はHoudini と Redshift で使用したTips を共有できればと思ってる

### CACHEについて

第一に気になるところはCacheってどうなってるのかとかTime Warp 周りとかはどうなってるんだと気になりますが、
基本的にはCacheされた.bgeo を全てクラウドに投げればなんとかなる！っていう感じです

実際にやってみるとこんな感じです、、26.5GBあげてる、、恐ろしい、、、

![2キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151633/c24a2e35-5691-f2c8-ccf4-1eef4697f4f7.png)


**ただ、クラウドにアップロードする時間が膨大にかかるので、果たしてこれが正解かというと怪しい部分はあります** 
実際には締め切り前でクラウドに投げる時間より自前でレンダリングしたほうが早いみたいな感じにもなったので、より計画性のあるレンダリングライフを祈ります






GridMarkets のPlugin ではシミュレーションのための CloudCache SOPもあったりしますが、これで早くなるかはいつか検証したいところです

https://www.youtube.com/watch?v=7cIeNZfyETg


### GPUの数

進捗を叩き出さないといけないスピードに合わせて、コースが３つあり、
- Rush　(最大60台）
- Standard (最大30台）
- Economy (最大5台）

みたいな感じなっています。
**しかし、これらは全部最大なので、基本的にガチャです。特にRushにおいては最大60だけど、60になるケースは割と少ないです**

実際には公式に出ている[計算機](https://www.gridmarkets.com/calculator)を使って判断したほうがいいです

1フレ何百円が積み重なっていき、結構馬鹿にならないです
1週間48台使い放題プランとかがが86万円ですが、実はこれは結構お得なんじゃないかってなるので、真剣にレンダリング方法や軽量化なども考えた方がいいです

https://www.gridmarkets.com/weekly-pricing


- サーバーGPUとレンダリング設定

Standardでは並列最大30台のPCがレンダリングしてくれるような形になっていて、一つ一つのPCにRedshiftのログがついてます
下記のような感じです

![キャプチャ (1).PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151633/849b11b5-4aae-bdaa-5b69-541cf0607d93.png)




![7キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151633/03c00dda-c159-3c72-0060-cfb863ce5569.png)

オイオイ、最後の行なんかFail って書いてないかって思うかもしれないですが、 **これはRedshiftの認証エラーで実際に何十回か起きます** 。その度にそのフレームがrendering fail します


![6キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151633/83371dec-b3d7-7759-99d2-20cbeb8ac747.png)


実際に公式に話すと、その分お金を返してくれますが、やや辛いですが、現在対応しているようです
幸いFailしたフレームたちのみをまたレンダリングしたり、始まってもない人たちを立ち上げたりする便利ボタンがあるので、何も考えずにまたレンダリングかけるのがベストです

![8キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151633/6c4fecab-c22d-8d50-c226-bdc74466a354.png)

Failしたツライ図


### GPU 種類とレンダリング設定

もう一つ重要なこととしてはGridMarket Houdini Redshiftの場合だと、GPUが　**P100**　の強強GPUが割り当てられることだ。しかし、自前の3090とは違う絵を出してきました。これは **Denoise** などの設定で **Optix** がGPUなどによって少し性能が変わっていたのが途中から発覚した
Denoise とか 色空間設定はそのままHoudini で設定されているものを使用するので一度確認するといいことあります！

### レンダリングされたフレームはどこへ、、
レンダリングされたフレームは随時指定されたフォルダーにダウンロードされていきます
おそらく後ろでrsync的なことをやっていて、Envoy サーバーを返して通信とかしているために、ネットワークドライブなどを指定することができないです（Dropboxとかそういうのも含みます）
また、なぜデフォじゃないのかわからないが、Envoyの設定では並列でダウンロードやアップロードする上限を上げることができるので、それを最大まであげちゃうのがオススメです

###　プロジェクトは並列では走らないので、アカウントを並列で走る
２個のHoudiniファイルを投げても、並列で走らず、一つのアカウントで最大60台とか30台とかTierの区分によって決められてしまいます。
時間の余裕ある人はそれでもいいが、ない人はアカウントをいくつか作り、分散してプロジェクトを投げることがオススメです

### プロジェクト名を分けるとファイル構造が全部変わる
Render Submitの下にはプロジェクト名とかラベルとかいられる欄がある。

![4キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151633/8645e1f4-f589-b390-82b6-91cdb7ab8a25.png)

プロジェクト名はそのプロジェクトの全体のフォルダー名みたいな感じになるので、ここを毎回変えると、その下にせっかくあげた tex や bgeo の cacheがすべてなくなるので、プロジェクト名は必ず一つにして、ラベルやコメントで補足するというのをお勧めしてます



![5キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/151633/3e755afe-988a-217f-653c-7a2e655a22f3.png)

なお、output フォルダーの名前をミスったりしても、クラウドのストレージからファイルを一つ一つダウンロードすることもできる
無料だと2週間ぐらいはクラウドにはキャッシュ希望のファイルを保管してくれる





### まじわからんエラーは運営に相談

レンダリング設定で色味が違うんだけど、みたいなことを運営に投げたら、早くメールを返して解決方法などを示してくれたので、結構好印象です


それでは良いレンダリングライフを！