Houdini 18.5 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_DIR

スケジューラ系ノードで指定されたTOPネットワークの作業ディレクトリ。 TOPパラメータでは、これは__PDG_DIR__のエイリアスです。 ジョブ環境では、これは、クック作業ディレクトリのローカルパスに設定されます。

PDG_TEMP

現行セッションの作業ディレクトリ(PDG_DIR)内の共有一時ファイルディレクトリ。 デフォルトは$PDG_DIR/pdgtemp/houdini_process_idです。 ジョブ環境では、これが設定されます。

PDG_SCRIPTDIR

一時ディレクトリ(PDG_TEMP)内の共有スクリプトディレクトリ。スクリプトファイルをファイルディペンデンシーとしてリストすると、それらのファイルがこのディレクトリ下にコピーされます。デフォルトは$PDG_TEMP/scriptsです。 ジョブ環境では、これが設定されます。

これを使わなくとも、共有ネットワークファイルシステム内の特定の場所にカスタムスクリプトを配置して、そのパスを使ってそれらのスクリプトを実行することができます。

PDG_ITEM_NAME

実行されているワークアイテムの名前。 これは、データディレクトリ内のシリアライズ化されたワークアイテムファイルの名前にも相当します。 ジョブ環境では、これが設定されます。

PDG_HYTHON

これがHoudiniで設定されている場合、スケジューラは$HFS/bin/hythonの代わりにこのパスを使用します。 これがLocal Schedulerで実行されているHoudiniと異なるバージョンだった場合、ライブラリの競合を回避するために、ワークアイテム環境内で少なくとも$HFSをクリアする必要があることに注意してください。

PDG_RESULT_SERVER

ジョブがステータスと結果を送信するサーバーのホスト名とポート。 ジョブ環境では、これが設定されます。

PDG_PATHMAP

JSON形式のパスマップ(存在すれば)。

PDG_PATHMAP_ZONE

自動的に決定されるゾーンの代わりに使用されるジョブのカスタムパスマップゾーン。

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

基本

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

次のステップ

リファレンス