Jul 3, 2015

Houdini : Memory Leak of DOP


Using a Variable of "HOUDINI_DOP_MAXCACHE" is a method of memory leak.
[ command : hconfig -a ]


Pyro Solver でのシュミレーションからsimやbgeo出力をするとwindowsのメモリが加算され続け42GBを使い切ってしまい、CPUの処理能力が著しく低下した問題に直面。

結論からすると、Linuxだと発生しない問題らしく
WindowsのRAMキャッシュの非効率な欠点が浮き彫りになった。

いろいろな方に相談させていただき、なんとなくですが脱却できそうな感じがしたのでメモ。

まずH14.0.299からの新しい環境変数であるHOUDINI_DOP_MAXCACHE を使用する。
ドキュメントの中にあるhoudini.envファイルに下のように記入。
他のキャッシュも加算されていくので、少し低めの上限に設定。

[ 1024 = 1GB , 16348 = 16GB ]



 次にCommand Line Toolsを起動し hconfig -a と入力しEnter
HOUDINI_DOP_MAXCACHE が 16348に設定された。ちなみにデフォルトは-1(無制限)
そしてHoudiniを再起動。



hbatchなどを使用する場合も同様。シュミレーション用のマシンのhoudini.envも書き換える。
設定したバイト数よりも総合的に付加がかかるが、しない場合と比べると違いが顕著にでた。



------------------------------------------------------------------------------
あとはDOP Network のCache Tab/ Save Checkpoints の使用。
Cache Memory を0に設定する。H13まではこのやり方が主流だったっぽいです。
Checkpoint は途中でシュミレーションが止まってしまった際にでもそのフレームから
シュミレーションを計算しなおすことができる。


あとから理解した Checkpoint Trail Lengthを2、3にして前後のキャッシュとして読み込む長さを指定。ここを指定しないとRAMに負担がかかるようでした。






No comments:

Post a Comment