>   >  Houdini Cook Book:vol.84 Compile
vol.84 Compile

vol.84 Compile

02 Compile test:case 02

前項とはセッティングを変えて検証していきます。この検証では、Compileがもつ本来の性能を発揮するためのセッティングにしています。まず、前項ではFeedback Each IterationでそれぞれのIterationをFeedbackしてForを演算していたため、並列処理はできませんでした。Compileは本来並列処理に特化した機能なので、非常にもったいない使用法と言えます。ただ、メモリに関してはかなり消費を抑えられているため、それもまたひとつのアプローチといって良いでしょう。

ここでは、Copy to Points SOP【A】を用いて、PointにSubdivideとDeform【B】をかけたジオメトリをコピーしますが【1】、このとき、あえてPointごとに処理をします。あまりこういう機会はありませんが、性能を引き出すために、意図的に処理の負荷を上げるようにします。このとき、Block Begin SOPを2つ用意し、どちらがBlock End SOP【C】のIterationにつながるかを設定します。今回はPointそれぞれに対して処理をするため、Iteration MethodをBy Pieces or Pointsに、Gather MethodをMerge Each Iterationに設定します【2】

Point側のBlock Begin SOP【D】ではMethodをFetch Piece or Point【3】に設定し、コピーする側【E】ではFetch Input【4】に設定します。その結果が下図の【5】となります。

続いて、Compileを設定する際に、Block Begin Compile SOPをForに合わせて2つ用意します【F】。また、このとき並列処理を可能とするため、Block End SOPのMultithread when Compiledにチェックを入れてアクティブにします【6】

その結果が下図【7】となります。全体のメモリ使用が若干上がっていますが、Cookingの処理速度が大幅に向上しているのがわかります。このように、それぞれのIterationを並列処理できるシチュエーションでは、かなりの速度向上が見られました。


次ページ:
03 Invoke

その他の連載