Houdini 17.5 ノード TOPノード

Deadline Scheduler TOP node

Thinkbox社のDeadlineソフトウェア用PDGスケジューラ。

On this page

概要

このスケジューラ系ノードは、Thinkbox社のDeadlineを使ってDeadlineファーム上でPDGワークアイテムのスケジュールを組んで実行します。

このスケジューラを使用するには、ローカルマシン上にDeadlineクライアントをインストールして動作させる必要があります。 さらに、ジョブを受け取って実行できるように、ファームマシン上にDeadlineをセットアップする必要があります。 Deadline 10.0.16.6 が直近でテストしたバージョンです。

スケジューリング

このノードのスケジューリングの挙動は、PDGクックの流れを例にすると、まず1本のDeadlineジョブが生成され、各PDGワークアイテムがDeadline下でタスクとしてスケジュールが組まれます。 最初のタスク(task ID 0)は、PDGMQと呼ばれるサーバーを起動します。PDGMQサーバーは、クック工程全体に渡ってSlaveマシン上のバックグラウンドで走り、他のすべてのタスクが完了したら停止します。 このサーバーは、他のSlaveマシン上で走っている他のタスクからネットワーク越しでResult Dataを受信し、その情報を既知ポートを介してジョブサブミッターのマシンに中継できるようにするためにファーム上で動かします。 この設計は、DNSルーティングやファイアーウォールネットワークなどの特定のネットワーク制限を回避します。

PDGDeadlineプラグイン

デフォルトでは、このスケジューラはHoudiniに同梱されている独自のPDGDeadlineプラグイン($HFS/houdini/pdg/plugins/PDGDeadline)を使用します。 何もセットアップをする必要なくこのプラグインが有効になっているので、すぐに動作するはずです。 以降のこのドキュメントでは、PDGDeadlineプラグインの利用を想定していることに注意してください。

Windows版のDeadlineプロセスでは、実行ファイルの拡張子が.exeである必要があります。 この要件を満たすために、\$PDG_EXEを実行ファイルに追加することができます。 PDGDeadlineプラグインは、ワークアイテム実行ファイルで指定された\$PDG_EXEを次のとおりに評価します

  • Windowsでは、$PDG_EXE.exeに置換されます。

  • 他のプラットフォームでは、$PDG_EXEは除去されます。

例えば、hythonを$HFS\$PDG_EXEで閉じると、Windowsでは次のとおりに評価されます

\$HFS/bin/hython\$PDG_EXEC:/Program Files/Side Effects Software/Houdini 17.5.173/bin/hython.exe

インストール

  1. TOPネットワークをクックする際に使用するマシン上にDeadlineクライアントをインストールします。プラットフォーム別のDeadlineのインストール方法に関しては、Thinkbox社のマニュアルを参照してください。

  2. 以下の事を確認します:

    • deadlinecommand実行ファイルが動作している。以下の$DEADLINE_PATHの記述を参照してください。

    • ジョブ(例えば、TOPグラフのクック)を投入するマシンは、Deadlineリポジトリにアクセスできなければなりません。このリポジトリがリモートマシン上に存在する場合、そのリポジトリをローカルマシン上にマウントするか(ダイレクト接続タイプ)、または、HTTPでリモート接続サーバ経由でアクセスする必要があります(プロキシ接続タイプ)。

    • 混在したファームセットアップを構築している場合(要するに、Linux、MacOS、Windowsのマシンを組み合わせた場合)、OS毎に以下のパスマップを設定します。これは、DeadlineのConfigure Repository OptionsにあるMapped Paths下で行ないます:

      • Windowsの場合:

        • $HFSがDeadline Slaveマシン上のHoudiniインストールディレクトリにマッピングされるようにパスマップをセットアップします。

        • $PYTHON<expanded HFS path>/bin/python.exeまたはローカルのPythonインストールディレクトリにマッピングされるようにパスマップをセットアップします。

      • LinuxまたはMacOSの場合:

        • $HFSがHoudiniインストールディレクトリにマッピングされるようにパスマップをセットアップします。または、Job ParmsインターフェースのHythonとPythonのデフォルトパラメータ値をオーバーライドします。

      次に、Houdiniのローカル評価をエスケープするために$HFSの頭に\を置きます。\$HFSとすることで、そのジョブを走らせるファームマシン上で正しく評価されるようになります。

      ファームマシン上で評価する必要のある他の変数も同様です。

  3. $DEADLINE_PATH変数にDeadlineインストールディレクトリ(例えば、C:\Program Files\Thinkbox\Deadline10\bin)を設定します。

    DEADLINE_PATHを設定しなかった場合:

    • Deadlineインストールディレクトリをシステムパスに追加することができます。

    • MacOSでは、このノードは標準のDeadlineインストールディレクトリをチェックするようになります。

TOP Attributes

deadline_job_task_id

string

このスケジューラがワークアイテムをDeadlineに投入した時に、そのDeadlineジョブIDとタスクIDを追跡できるように、そのワークアイテムにはこのアトリビュートが追加されます。

パラメータ

Scheduler

以下は、すべてのワークアイテムのグローバルパラメータです。

Submit Graph As Job

このスケジューラがTOPネットワーク全体をスタンドアローンのジョブとしてクックする時にコールされます。

Working Directory

Local Shared Path

ジョブが中間ファイルと出力を生成するディレクトリを指したローカルマシン上のルートパス。 中間ファイルはサブディレクトリに配置されます。 ローカルマシンとファームマシンが同じパス設定の場合は、これを使用します。

Override Remote Shared Path

ファームマシンのパス設定をローカルの投入マシンと同じにしたくない場合には、これを有効にします。 OSが異なればマウントパスが異なるので、混在ファームでは、これは必須です。

Remote Shared Path

Override Remote Shared Pathが有効な場合、これは、作業ディレクトリのルートとなるDeadline Slaveマシン上のマウントディレクトリのパスです。 このパスに変数を含めることで、ファームが(複数のプラットフォームを使用している場合に)そのプラットフォーム固有のパスを解決できるように設定することができます。 $PDG_DIRのデフォルト値を使用する場合、DeadlineのPath Mappingで、クライアントが使用している各オペレーティングシステムの実際のマウント値を$PDG_DIRにマッピングしてください。 これは、既存のファームでクライアントが既に使用している値に設定することができます。

Job Description

以下は、Deadlineジョブファイルに書き出されるジョブ記述プロパティです。

Job Name

ジョブの名前(必須)。

Job Comment

すべてのジョブに書き込むコメント(任意)。

Job Department

すべてのジョブが所属するデフォルトの部門(例えば、Lighting)を指定します。 これは任意であり、ジョブをグループ化して、ファームオペレータにその情報を渡すことができます。

Job Options

Job Batch Name

ジョブのグループ先となるバッチ名(任意)。

Job Pool

ジョブの実行に使用するプール名(デフォルトはnone)。

Job Group

ジョブの実行に使用するグループ名(デフォルトはnone)。

Job Priority

新しいジョブのデフォルトの優先度。デフォルトは50です。 0が一番優先度が低いです。最大優先度は、DeadlineのRepository OptionsのJob Settings(通常では100)で設定することができます。

Concurrent Tasks

Deadline Slave毎に同時に走らせるタスクの数。デフォルトは1、つまり同時に1個のタスクが走ります。

Limit Concurrent Tasks to CPUs

有効にすると、Concurrent TasksがSlave上のCPU数、または、CPU Affinity設定に制限されます。

Pre Job Script

ジョブが開始した時に走らせるPythonスクリプトのパス。

Post Job Script

ジョブが終了した時に走らせるPythonスクリプトのパス。

Machine Limit

このジョブを実行可能なDeadline Slaveの数を制限します。デフォルトは0、つまり制限なしです。

Machine List

このジョブを実行可能なDeadline Slaveの制限リスト。 以下のMachine List is A Blacklistが無効な場合、このリストはJob InfoファイルにWhitelistとして書き出されます。 有効な場合、Blacklistとして書き出されます。

Machine List is a Blacklist

有効にすると、Machine ListがBlacklistとして書き出されるので、そのリストにあるマシンは、このジョブを実行することができません。 無効にすると、そのリストにあるマシンのみが、このジョブを実行することができます。

Limits

スケジュールが組まれたジョブに必要なDeadline Limits(ResourceまたはLicenseタイプ)。 このLimitsは、Deadline Monitorを介して作成して管理されます。

OnJobComplete

ジョブが終了した際のそのジョブ情報の扱い方。 デフォルトは何もしません。詳細は、Deadlineのドキュメントを参照してください。

Job File Key-Values

Job File Key-Values

このジョブに対して独自にキー値オプションを追加することができます。 これらのオプションは、上記で指定したDeadlineプラグインで必要なジョブファイルに書き出されます。

Plugin File Key-Values

プラグインに対して独自にキー値オプションを追加することができます。 これらのオプションは、上記で指定したDeadlineプラグインで必要なプラグインファイルに書き出されます。

Deadline

Verbose Logging

これを有効にすると、クック中に問題をデバッグするのに役立つ情報がプリントされます。

Use IP Address for PDGMQ

これを有効にすると、PDGMQサーバーへの接続がホスト名の代わりにIPアドレスが使用されます。 これによって、例えばDNSが機能していない、または、PDGMQサーバーを走らせている正しいファームマシンのホスト名を適切に解決できないといったネットワーク問題が回避されます。

PDGMQ Server As Task

PDGMQサーバーを1番目のSlaveのバックグラウンドモニタプログラムではなく別タスクとして実行させるかどうか。 有効にすると、PDGクックは、最低でも2つのDeadline Slaveインスタンスが利用可能であるか、または、ConcurrentTasksを2以上に設定する必要があります。 Force Reload Pluginを有効にする必要がある場合には、これを有効にすることが必須になります。

Force Reload Plugin

ジョブのそれ以降のフレーム間でプラグインのリロードを行なうかどうかを指定します(デフォルトはfalse)。 これは、メモリリークを抑えたり、すべてのジョブ特性を適切にアンロードしないようなアプリケーションに対処することができます。

Note

タスク間でプラグインをリロードするとPDGMQサーバーが強制的にシャットダウンされるので、PDGMQ Server As Taskも有効になっている場合にのみこれが有効になります。

Launch Monitor Machine Name

ここには、ジョブのスケジュールを組んだ際にDeadline Monitorを起動させたいマシンの名前を設定します。 起動させたくないのであれば、空っぽのままにします。

Advanced

Override Repository

これを有効にすると、システムのデフォルトではなく別のDeadlineリポジトリを使用することができます。

Repository

Deadlineリポジトリが1つしかない、または、システムのデフォルトのDeadlineリポジトリを使用したい場合は、このフィールドを空っぽのままにしてください。 それ以外の場合、必要に応じてSSL証明と併せて使用するDeadlineリポジトリを指定することができます。 Direct接続タイプに関しては、ここにはマウントディレクトリのパス(例えば、//testserver.sidefx.com/DeadlineRepository)を指定します。 Proxy接続タイプに関しては、ここには、ポート番号とログイン情報と併せてリポジトリのURLを指定します。

Connection Type

リポジトリの接続タイプ("Direct"または"Proxy")。

Override Plugin

これを有効にすると、Houdiniに同梱されているPDGDeadlineプラグイン以外のDeadlineプラグインを使用することができます。 カスタムDeadlineプラグインがPDGクックプロセスに対応していない場合は、これを有効にしないでください。 Deadlineに同梱されている他のプラグインは、そのまますぐに動作しません。

Plugin

各PDGワークアイテムを実行するカスタムDeadlineプラグインを指定します。 PDGワークアイテムのプロセスの実行を制御したいがためにカスタムDeadlineプラグインを書いたのであれば、以下のディレクトリ内でそのプラグインをここに指定します。 カスタムプラグインは、ワークアイテム毎に書き出されたタスクファイルを利用し、そのプロセス内で評価された環境変数を設定しなければなりません。 PDGDeadline.pyを参考にしてください。

Plugin Directory

上記で指定したカスタムDeadlineプラグインのパスを指定します。

Message Queue

Task Callback Port

XMLRPCコールバックAPIでMessage Queue Serverが使用するTCPポートを設定します。このポートはファームブレード間でアクセスできなければなりません。

Relay Port

PDGとMessage Queue Commandを走らせているブレード間のMessage Queue Server接続が使用するTCPポートを設定します。 このポートは、PDG/ユーザマシンからファームブレードに到達できなければなりません。

Job Parms

以下のパラメータは、各ノードのオーバーライド設定を介してTOPノード毎に設定することができます。

Paths

HFS

すべてのDeadline SlaveマシンのHoudiniインストールディレクトリのルートパス。 このパスに変数を使用する場合は、\を付けてエスケープしない限りは、ローカルで評価されてしまいます。 例えば、$HFSだとローカルマシン上で評価されるので、その結果の値がファームに送信されます。 (混在ファームセットアップ環境向けに)代わりに強制的にSlave上で評価させるには、\$HFSを使用してください。 DeadlineのPath Mappingでは、以下のように設定してください: (例えば、$HFS = C:/Program Files/Side Effects Software/Houdini 17.5.173)。

Python

すべてのクライアントマシンにインストールされている必要のあるPythonバージョンを指したPythonのルートパス(例えば、$HFS/bin/python)。 このパスに変数を使用する場合は、それらの変数をDeadlineのPath Mappingでマップさせてください(例えば、デフォルト値を使用する場合は、$HFSをパスマップさせてください)。 Windowsでは、混在ファームセットアップ環境向けに、そのパスマップに.exeまたは\$PDG_EXEを追加してください(例えば、$HFS/bin/python\$PDG_EXEC:/Program Files/Side Effects Software/Houdini 17.5.173/bin/python.exe)。

Task Environment

Inherit Local Environment

有効にすると、PDGの現行セッション内の環境変数がタスクの環境にコピーされます。

Houdini Max Threads

指定した値が HOUDINI_MAXTHREADS 環境変数に設定されます。 デフォルトでは、 HOUDINI_MAXTHREADS には At Most Slots (有効な場合)の値が設定されます。

デフォルトの0は、利用可能なすべてのプロセッサを使用することを意味します。

プラスの値は、使用可能なスレッドの数を制限します。 1の値は、完全にマルチスレッドを無効にします(1個のスレッドのみに制限)。 プラスの値は、利用可能なCPUコアの数に制限されます。

マイナスの値は、最大プロセッサ数からその数だけ減算して、最大スレッド数が決まります。 例えば、-1の値は、1個以外のすべてのCPUコアを使用します。

Environment Key-Values

タスク毎にカスタムキー値環境変数を追加することができます。

GPU Affinity Overrides

OpenCL Force GPU Rendering

有効な時、OpenCLノードに対して現行スレーブのGPU設定とユーザー指定のGPUに基づいてGPU Affinityを設定します。

GPUs Per Task

RedshiftノードとOpenCLノードに対して、タスクあたりに使用するGPUの数。 この値は、DeadlineのスレーブのGPU Affinity設定のサブセットでなければなりません。

Select GPU Devices

RedshiftノードとOpenCLノードで使用するGPU IDsのカンマ区切りのリスト。 ここで指定したGPU IDsは、DeadlineのスレーブのGPU Affinity設定のサブセットでなければなりません。

See also

TOPノード

  • Attribute Copy

    あるブランチのワークアイテムのアトリビュートを他のブランチのワークアイテムにコピーします。

  • Attribute Create

    入力のワークアイテムすべてに対してアトリビュートを作成または設定します。

  • Attribute Delete

    ワークアイテムからアトリビュートを削除します。

  • Attribute from String

    ファイル名などの文字列からアトリビュート値を解析します。

  • Block Begin Feedback

    For-Loop with Feedbackブロックを開始します。このブロック内のTOPノードは直列で実行され、オプションで入力のワークアイテム毎にループさせることができます。

  • Block End Feedback

    For-Loop with Feedbackブロックを終了します。このブロック内のTOPノードは直列で実行され、オプションで入力のワークアイテム毎にループさせることができます。

  • CSV Input

    CSVファイルのデータをワークアイテムのアトリビュートにコピーします。

  • CSV Output

    ワークアイテムのアトリビュートをCSVファイルに書き出します。

  • Command Send

    実行させたいコードを共有サーバーに送信します。

  • Command Server End

    サーバーブロックを終了します。

  • Deadline Scheduler

    Thinkbox社のDeadlineソフトウェア用PDGスケジューラ。

  • Download File

    1つ以上のURLの内容をファイルにダウンロードします。

  • Environment Edit

    ワークアイテムのコマンドラインが実行する環境下で設定する変数を編集します。

  • Error Handler

    失敗したワークアイテムのエラーハンドル。

  • FFmpeg Encode Video

    静止画像シーケンスを動画に変換します。

  • FFmpeg Extract Images

    動画ファイルから静止画像シーケンスを抽出します。

  • File Compress

    ファイルをアーカイブに圧縮します。

  • File Copy

    実行時またはノードがファイルを生成した時に、ファイルをある場所から別の場所にコピーします。

  • File Decompress

    入力のワークアイテムで指定されたアーカイブファイルを個々のファイルに解凍します。

  • File Pattern

    特定のパターンに合致したファイルに基づいてワークアイテムを生成します。

  • File Remove

    指定したパスのファイルを削除します。

  • File Rename

    ファイルを名前変更または移動させます。

  • Filter By Expression

    上流のワークアイテムを条件付きでフィルタリングします。

  • Generic Generator

    アトリビュートなしでコマンドラインを実行するワークアイテムを生成します。

  • Generic Server Begin

    汎用コマンドサーバーを起動します。

  • Geometry Import

    SOPまたはファイルジオメトリのポイントまたはプリミティブをワークアイテムアトリビュートまたは一時ファイルに読み込みます。

  • HDA Processor

    デジタルアセットをクックするワークアイテムを生成します。

  • HQueue Scheduler

    HQueueを使用してワークアイテムのスケジュールを組みます。

  • Houdini Server Begin

    持続型Houdiniコマンドサーバーを起動します。

  • ImageMagick

    一括で画像変換、サイズ変更、画像モザイクなどのImageMagickの機能に簡単にアクセスすることができます。

  • Invoke

    入力ジオメトリに対してコンパイルブロックを呼び出します。

  • Json Input

    JSONファイルからデータを抽出してアトリビュートを作成します。

  • Json Output

    JSON出力を生成する色々なオペレーションを実行します。

  • Local Scheduler

    ローカルマシン上でワークアイテムのスケジュールを組みます。

  • Make Directory

    ディレクトリを作成します。

  • Map All

    上流のすべてのワークアイテムを下流のワークアイテムにマップします。

  • Map by Expression

    エクスプレッションを使って、上流のワークアイテムを下流のワークアイテムにマップします。

  • Map by Index

    上流のワークアイテムをインデックスに基づいて下流のワークアイテムにマップします。

  • Map by Range

    範囲を使って上流のワークアイテムを下流のワークアイテムにマップします。

  • Maya Server Begin

    持続型Mayaコマンドサーバーを起動します。

  • Merge

    上流のすべてのワークアイテムを結合します。

  • Null

    何もしません。

  • OP Notify

    何かしらのTOPワークが完了したことを通知します。

  • Output

    サブネット出力。

  • Partition by Attribute

    アトリビュートに基づいてワークアイテムを区分けします。

  • Partition by Bounds

    境界アイテムを使って、ソースアイテムを空間的に区分けします。

  • Partition by Combination

    ワークアイテムを2個毎、3個毎などに区分けします。

  • Partition by Comparison

    既存の比較を使ってワークアイテムを区分けします。

  • Partition by Expression

    エクスプレッションに基づいてワークアイテムを区分けします。

  • Partition by Frame

    フレームに基づいてワークアイテムを区分けします。

  • Partition by Index

    インデックスに基づいてワークアイテムを区分けします。

  • Partition by Node

    ノードに基づいてワークアイテムを区分けします。

  • Partition by Range

    範囲に基づいてワークアイテムを区分けします。

  • Partition by Tile

    軸に平行な境界ボックスを使ってワークアイテムを空間的に区分けします。

  • Perforce

    PDG経由でPerforceコマンドを実行します。

  • Python Mapper

    Pythonスクリプトを使ってワークアイテムをマップします。

  • Python Partitioner

    Pythonスクリプトを使ってワークアイテムを区分けします。

  • Python Processor

    Pythonスクリプトを使ってワークアイテムを生成します。

  • Python Scheduler

    Pythonベースでプログラミング可能なPDG用スケジューラ。

  • Python Script

    スクリプトを実行するワークアイテムを生成します。

  • ROP Alembic Output

    埋め込まれたROP Alembicノードをクックするワークアイテムを生成します。

  • ROP Composite Output

    埋め込まれたROP Compositeノードをクックするワークアイテムを生成します。

  • ROP Fetch

    ROPノードまたはROPネットワークをクックするワークアイテムを生成します。

  • ROP Geometry Output

    埋め込まれたROP Geometryノードをクックするワークアイテムを生成します。

  • ROP Mantra Render

    埋め込まれたROP Mantraノードをクックするワークアイテムを生成します。

  • Render IFD

    Mantraを使ってIFDをレンダリングするワークアイテムを生成します。

  • SQL Input

    SQLクエリの作成と行毎にワークアイテムを生成する入力ノードです。

  • SQL Output

    SQL INSERTクエリを生成する出力ノードです。

  • Send Email

    電子メールを送信します。

  • Shotgun Create

    Shotgunエンティティを作成します。

  • Shotgun Download

    ShotgunからAttachmentをダウンロードします。

  • Shotgun Find

    Shotgunエンティティを検索します。

  • Shotgun New Version

    Attachmentと一緒に新しいVersionを作成します。

  • Shotgun Session

    Shotgunインスタンスに接続するセッションを開始します。

  • Shotgun Update

    既存のShotgunエンティティのフィールドを更新します。

  • Shotgun Upload

    ShotgunでAttachmentを作成します。

  • Sort

    アトリビュートのリストからワークアイテムを並べ替えます。

  • Split

    上流のワークアイテムを2つのグループに分けます。

  • Switch

    ネットワーク分岐を切り替えます。

  • TOP Fetch

    他のTOPネットワークをクックします。

  • TOP Fetch Input

    TOP Fetchで取得したネットワークの入力。

  • Text to CSV

    プレーンテキストをCSVに変換します。

  • Tractor Scheduler

    PixarのTractorを使ってワークアイテムのスケジュールを組みます。

  • Wait for All

    上流のワークアイテムすべてが完了するのを待ちます。

  • Wedge

    アトリビュート値を色々と変えながらワークアイテムを生成します。

  • Work Item Expand

    ファイルリストまたはパーティションを複数のワークアイテムに展開します。

  • Xml Input

    XMLファイルからデータを抽出し、そのデータを含んだ文字列アトリビュートを生成します。