Houdini 20.0 PDG/TOPsを使ってタスクを実行する方法

ファイルパス

TOPネットワークの入力/出力ファイルパスの上手な扱い方。

On this page

概要

TOPsは、異なるファイルシステムを持ち合わせる計算ファームに対応できるように設計されています。 例えば、TOPsユーザがWindowsマシンで作業していても、Linuxベースのファームを使用することができます。 ここで問題になるのは、あるファイルシステムから別のファイルシステムへのファイルパスのマッピング方法です。 TOPsには、これを解決するためにPDG Path Mapが用意されています。

ワークを処理するほとんどのTOPノードには、入力/出力のファイルパスを指定することができます。 TOPsでは、スケジューラノード毎に作業ディレクトリを指定できるようになっています。 このようになっている理由は、レンダーファームソフトウェアによっては、使用する共有ネットワークファイルシステムが異なるからです。 ファームスケジューラを使用する場合には、出力先に指定するどのファイルパスも必ず以下で説明するPDG_DIRのディレクトリを基準にファームマシンからアクセスできるようにしてください。

How to

  1. スケジューラ系ノードの基本作業ディレクトリを設定します。このディレクトリは、ジョブからPDG_DIR環境変数として利用可能です。

    • HIPファイル毎に別々の作業ディレクトリを使用してください。これは、2つのHIPファイルが同じPDG_DIRに書き込んでしまわないようにします。パラメータのデフォルト値から生成されるデフォルトのファイル名のほとんどは、HIPファイル内でのみ固有の名前になっています。

    • レンダーファームスケジューラに関しては、必ずネットワークファイルシステム内のディレクトリ(例えば、NFSマウントやSMB共有)をレンダーファームのクライアントマシンで共有してください。

  2. パラメータのファイル名にPDG_DIRPDG_TEMPを使用する時は、${PDG_DIR}ではなくて__PDG_DIR__の形式を使用してください。 万が一${PDG_DIR}を使用してしまうと、ディペンデンシーグラフがその変数を取得する以前にHoudiniがその変数自体の展開を試みて失敗に終わります。 Houdiniは__PDG_DIR__構文を無視しますが、PDGスケジューラは実行マシン上でそのトークンを絶対パスに展開するべきだと理解します。

  3. __PDG_TEMP__下には中間ファイルを、__PDG_DIR__下には最終出力ファイルを配置してください。

    • サブディレクトリを使って出力ファイルを分類してください。例えば、中間ジオメトリファイル用の__PDG_TEMP__/geo、最終ジオメトリ出力用の__PDG_DIR__/geo

環境変数

PDG/TOPsを使ってタスクを実行する方法

基本

初心者向けチュートリアル

次のステップ

リファレンス

  • すべてのTOPsノード

    TOPノードは、データをネットワークに送り込んでワークアイテムに変換し、色々なノードでそれを制御するワークフローを定義します。たいていのノードは、ローカルマシンまたはサーバーファーム上で実行可能な外部プロセスを表現しています。

  • プロセッサ系ノードコールバック

    プロセッサ系ノードはスケジューラで実行可能なワークアイテムを生成します。

  • パーティショナー系ノードコールバック

    パーティショナー系ノードは複数の上流ワークアイテムを単一パーティションにグループ化します。

  • スケジューラ系ノードコールバック

    スケジューラ系ノードはワークアイテムを実行します。

  • 独自のファイルタグとハンドラー

    PDGはファイルタグを使用して出力ファイルのタイプを決めます。

  • Python API

    ディペンデンシーグラフを扱うためのPython PDGパッケージのクラスと関数。

  • Job API

    ジョブスクリプトで使用するPython API

  • ユーティリティAPI

    Python pdgutilsパッケージのクラスと関数は、PDGノードでの使用だけでなく、スクリプトやプロセス外のジョブスクリプトでの使用も想定されています。