On this page |
概要 ¶
TOPネットワークでは、一部のワークアイテムを他のジョブに 依存 させることができます。 つまり、1番目のワークアイテムが完了しないと2番目のワークアイテムを開始できないようにすることができます。 この2番目のワークアイテムのことを、 親ワークアイテム に依存した 子 ワークアイテムと呼びます。
-
プロセッサ系ノードを使って入力のワークアイテムから新しいワークアイテムを生成した場合、その新しいワークアイテムは自動的に入力のワークアイテムに依存します。
-
下流のワークアイテムを上流のワークアイテムに依存させたり(例えば、ジオメトリが生成された後にシミュレーションフレームを計算するようにさせることができます)、あるワークアイテムを同じノード内の他のワークアイテムに依存させることができます(例えば、シミュレーションを生成する時に、前のフレームが完了するのを待ってから次のフレームを計算するようにさせることができます)。
パーティショナーが必要となるのは、ノードが明らかに膨大な量のワークを生成する時です。 動画を生成する場合を例にすると、フレーム毎に別々のワークアイテムを生成するのではなくて、 1個 のワークアイテムを生成しないといけません。 つまり、動画変換ノードの前にWait for Allノードが必要になります:
ディペンデンシー(依存関係)の作り方 ¶
パーティショナー 系ノードを使って、ネットワークに依存関係(つまり、次の工程に進む前に上流のワークアイテムが完了するのを待機しなければならない場所)を“教える”必要性が多々あります。
入力のワークアイテムすべてが完了するのを待ちます。これは、(次の工程で、すべての入力が準備完了になっている必要がある時に)“パイプライン”の工程の最後によく使用します。 例えば、動画ファイルを生成するには、すべてのフレームのレンダリングが完了するのを待機しなければなりません。
すべての上流のブランチを収集するためにネットワーク全体の最後に(場合によっては一部の通知系ノードの前に)Wait for Allを使用することが非常に多いです。
同じフレーム番号の入力ワークアイテムすべてが完了するのを待ちます。 これは、入力フレームから並列でワークを生成し、それらの中間結果を“最終”フレームに結合する必要があるようなレンダリングとシミュレーションのワークフローで主に使用します。
特定のアトリビュートの同じ値を持った入力ワークアイテムのグループを待ちます。 これを使用すれば、アトリビュートによって好きなようにパーティションをセットアップすることができます。
例えば、File Patternを使って膨大なファイルパスを取得してから、特定のサブ文字列を共有したパスをグループ化することができます。
パーティションアイテム ¶
パーティショナー系ノードは、入力のワークアイテムセット(パーティションアイテムが待機するワークアイテム)に依存した新しいワークアイテムを生成します。 これらのパーティションは、必ずしも排他的である必要はありません。 つまり、同じ入力のワークアイテムに依存したパーティションアイテムを複数生成することができます。
入力のワークアイテムから生成されたワークアイテムがその入力のワークアイテムのアトリビュートを継承するのと同様に、 パーティションアイテムでも、その入力のワークアイテムのアトリビュートをリストに まとめて 継承します。 これは、例えば、入力のノードの数値アトリビュートのリストを合算または平均するような特定のワークフローで役立ちます。
パーティションからワークアイテムを抽出する方法 ¶
実際には、パーティションワークアイテムは、まとめられたワークアイテムを含んだ“グループ”ではありません。 しかし、Work Item Expandノードを使用することで、それがグループであるかのようにワークアイテムを抽出することができます。
これは、パーティション系ノード(例えば、Partition by Attribute)のメリットを利用した特定のワークフローにおいて、特定の基準に基づいてワークアイテムをグループ化しつつ、結合された単一パーティションアイテムではなくて、そのグループ化されたワークアイテムに対して処理を継続したい時に役立ちます。