| On this page | |
| Since | 17.5 |
概要
このスケジューラ系ノードは、Thinkbox社のDeadlineを使ってDeadlineファーム上でPDGワークアイテムのスケジュールを組んで実行します。
このスケジューラを使用するには、ローカルマシン上にDeadlineクライアントをインストールして動作させる必要があります。 さらに、ジョブを受け取って実行できるように、ファームマシン上にDeadlineをセットアップする必要があります。
Deadline 10.0.16.6が直近でテストしたバージョンです。
スケジューリング
このノードは、Deadlineファームを使って以下の2つのタイプのスケジューリングを実行することができます:
-
1つ目のタイプのスケジューリングは、ファーム上のPDGクックを調整してそのクックが完了するまで待機するローカル投入マシン上でHoudiniインスタンスを実行します。 これによって、TOPグラフ全体をクックしたり、TOPグラフの一部のみをクックしたり、特定のノードをクックすることができます。
このスケジューリングタイプを使用した場合、このノードは、生成されたワークアイテム毎にタスクを持った1つのメインジョブのスケジュールも組んで、必要に応じて、ネットワーク経由でワークアイテムの結果を受信する第2のMessage Queue (MQ)ジョブのスケジュールを組みます。 MQの詳細は、以下のMessage Queueセクションを参照してください。
-
2つ目のタイプのスケジューリングは、Submit Graph As Jobを使用します。
このスケジューリングタイプを使用した場合、このノードは、現行
.hipファイルを開いてTOPネットワーク全体をクックするHythonセッションのスケジュールを組みます。 TOPネットワークがDeadline Schedulerノード(s)を使用する場合、ファーム上で他のジョブのスケジュールも組むことができ、そのジョブは上記で説明したスケジューリングの挙動に準拠します。
PDGDeadlineプラグイン
デフォルトでは、このスケジューラはHoudiniに同梱されている独自のPDGDeadlineプラグイン($HFS/houdini/pdg/plugins/PDGDeadline)を使用します。
何もセットアップをする 必要なく このプラグインが有効になっているので、すぐに動作するはずです。
以降のこのドキュメントでは、PDGDeadlineプラグインの利用を想定していることに注意してください。
Windows版のDeadlineプロセスでは、実行ファイルの拡張子が.exeである必要があります。
この要件を満たすために、\$PDG_EXEを実行ファイルに追加することができます。
PDGDeadlineプラグインは、ワークアイテム実行ファイルで指定された\$PDG_EXEを次のとおりに評価します:
Windows
$PDG_EXEは.exeに置換されます。
例えば、hythonを$HFSと\$PDG_EXEで閉じると、Windowsでは次のとおりに評価されます:
\$HFS/bin/hython\$PDG_EXE → C:/Program Files/Side Effects Software/Houdini 17.5.173/bin/hython.exe
Mac
$PDG_EXEは除去されます。
Linux
$PDG_EXEは除去されます。
ワークアイテム内でPATH環境変数を設定する場合、クロスプラットフォームなファームに対応できるように、タスクの仕様ファイル内のパスセパレータを__PDG_PATHSEP__に置換します。
そして、ファーム上でタスクが実行された時に、PDGDeadlineプラグインが__PDG_PATHSEP__をローカルOSのパスセパレータに変換します。
ワークアイテム内にPATHが設定されていれば、そのローカルマシンのPATH環境変数がオーバーライドされます。
インストール
-
TOPネットワークをクックする際に使用するマシン上にDeadlineクライアントをインストールします。プラットフォーム別のDeadlineのインストール方法に関しては、Thinkbox社のマニュアルを参照してください。
-
以下の事を確認します:
-
deadlinecommand実行ファイルが動作している。以下の$DEADLINE_PATHの記述を参照してください。 -
ジョブ(例えば、TOPグラフのクック)を投入するマシンは、Deadlineリポジトリにアクセスできなければなりません。このリポジトリがリモートマシン上に存在する場合、そのリポジトリをローカルマシン上にマウントするか(ダイレクト接続タイプ)、または、HTTPでリモート接続サーバ経由でアクセスする必要があります(プロキシ接続タイプ)。
-
混在したファームセットアップを構築している場合(例えば、Linux、MacOS、Windowsのマシンを組み合わせた場合)、OS毎に以下のパスマップを設定します。
-
Deadlineの
Configure Repository Options>Mapped Pathsに移動します。 -
Windows の場合:
-
$HFSがDeadline Workerマシン上のHoudiniインストールディレクトリにマッピングされるようにパスマップをセットアップします。 -
$PYTHONが<expanded HFS path>/bin/python.exeまたはローカルのPythonインストールディレクトリにマッピングされるようにパスマップをセットアップします。
-
-
MacOS または Linux の場合:
-
$HFSがHoudiniインストールディレクトリにマッピングされるようにパスマップをセットアップします。または、Job ParmsインターフェースのHythonとPythonのデフォルトパラメータ値をオーバーライドします。
Houdiniのローカル評価をエスケープするために
$HFSの頭に\を置きます。\$HFSとすることで、そのジョブを走らせるファームマシン上で正しく評価されるようになります。
-
ファームマシン上で評価する必要のある他の変数も同様です。
-
-
-
-
$DEADLINE_PATH変数にDeadlineインストールディレクトリ(例えば、C:\Program Files\Thinkbox\Deadline10\bin)を設定します。-
DEADLINE_PATHを設定しなかった場合:-
Deadlineインストールディレクトリをシステムパスに追加することができます。
-
MacOS では、このノードは標準のDeadlineインストールディレクトリをチェックするようになります。
-
-
TOP Attributes
|
|
string |
このスケジューラがワークアイテムをDeadlineに投入した時に、そのDeadlineジョブIDとタスクIDを追跡できるように、そのワークアイテムにはこのアトリビュートが追加されます。 |
パラメータ
Scheduler
すべてのワークアイテムのグローバルパラメータ。
Verbose Logging
有効にすると、クック中に問題をデバッグするのに役立つ情報がコンソールにプリントされます。
Block on Failed Work Items
有効にすると、スケジューラ上で失敗したワークアイテムが存在すれば、クックの完了がブロックされ、PDGグラフのクックを終了できなくなります。 これによって、手動で失敗したワークアイテムを再試行することができます。 スケジューラのクックが失敗したワークアイテムによってブロックされると、ESCキーを押したり、TOP Tasksバーの Cancel Current cook ボタンをクリックしたり、キャンセルAPIメソッドを使用することで、そのスケジューラのクックを キャンセル することができます。
Ignore Command Exit Code
有効にすると、Deadlineはタスクのexitコードを無視するので、タスクが(エラーコードなどの)ゼロ以外のexitコードを返しても常に成功を返します。
Force Reload Plugin
有効にすると、Deadlineはジョブのフレーム間でプラグインをリロードします。 これによって、メモリリークを抑えたり、すべてのジョブ特性を適切にアンロード しない ようなアプリケーションに対処することができます。
デフォルトの Force Reload Plugin は 無効 です。
Monitor Machine Name
ジョブのスケジュールを組んだ際にDeadline Monitorを起動させたいマシンの名前を指定します。
Task Submit Batch Max
一度にDeadlineに投入可能なタスクの最大数を設定します。
この値を上げるほど多くのタスクが投入されます。タスクの数が原因でHoudiniのUIパフォーマンスが悪くなった場合には、この値を下げてください。
Tasks Check Batch Max
一度にDeadlineでチェック可能なタスクの最大数を設定します。
この値を上げるほど多くのタスクがチェックされます。タスクの数が原因でHoudiniのUIパフォーマンスが悪くなった場合には、この値を下げてください。
Repository Path
有効にすると、システムのデフォルトのDeadlineリポジトリがここで指定したリポジトリでオーバーライドされます。
Deadlineリポジトリが1つしかない、または、システムのデフォルトのDeadlineリポジトリを使用したい場合は、このフィールドを空っぽのままにしてください。 それ以外の場合、必要に応じてSSL証明と併せて使用する他のDeadlineリポジトリを指定することができます。
Connection Type
リポジトリの接続タイプ。
Direct
マウントディレクトリのパスを指定することができます。例: //testserver.com/DeadlineRepository。
Proxy
ポート番号とログイン情報と併せてリポジトリのURLを指定することができます。
Plugin
有効にすると、各PDGワークアイテムを実行するカスタムDeadlineプラグインを指定することができます。 無効にすると、Houdiniに同梱されているPDGDeadlineプラグインが使用されます。
カスタムDeadlineプラグインがPDGクックプロセスに対応していない場合は、このパラメータを有効に しないでください 。 Deadlineに同梱されている他のプラグインは、そのままでは 動作しません 。
PDGワークアイテムのプロセスの実行を制御したいがためにカスタムDeadlineプラグインを書いたのであれば、以下の Plugin Directory でそのプラグインを指定することができます。
カスタムプラグインは、ワークアイテム毎に書き出されたタスクファイルを利用し、そのプロセス内で評価された環境変数を設定しなければなりません。
PDGDeadline.pyを参考にしてください。
Plugin Directory
Plugin パラメータフィールドで指定されたカスタムDeadlineプラグインのパスを指定します。
このパラメータは、 Plugin が 有効 な時にのみ利用可能です。
Copy Plugin to Working Directory
ファームマシンからDeadlineプラグインにアクセスできるようにするために、そのDeadlineプラグインファイルをローカルのHoudiniインストール場所または指定したカスタムパスからPDG作業ディレクトリにコピーします。
オーバーライドパスを使用していて、そのプラグインが既にファーム上で利用可能である場合は、このパラメータを 無効 にしても構いません。
Local Shared Path
ジョブが中間ファイルと出力を生成するディレクトリを指したローカルマシン上のルートパスを指定します。 中間ファイルはサブディレクトリに配置されます。
ローカルマシンとファームマシンが同じパス設定の場合は、このパラメータを使用します。
Load Item Data From
このスケジューラで処理されるジョブがワークアイテムのアトリビュートとデータを読み込む方法を決めます。
Temporary JSON File
スケジューラは、ワークアイテム毎に.jsonファイルをPDG一時ファイルディレクトリに書き出します。
このオプションは、デフォルトで有効になっています。
RPC Message
スケジューラが実行するワークアイテムは、RPC経由でアトリビュートとデータを要求します。 このスケジューラがファームスケジューラの場合でも、ファーム上で実行されるジョブスクリプトは、Out-of-Processワークアイテムオブジェクトを作成する時にサブミッターからアイテムデータを要求します。
このパラメータオプションは、データファイルをディスクに書き出す必要性がないので、ローカルマシンとリモートマシンがファイルシステムを 共有しない 時に役立ちます。
Compress Work Item Data
有効にすると、PDGはワークアイテムの.jsonファイルをディスクに書き出す時にそれらのファイルを圧縮します。
このパラメータは、 Load Item Data From が Temporary JSON File に設定されている時にのみ利用可能です。
Validate Outputs When Recooking
有効にすると、グラフが再クックされた時に、PDGは、スケジューラがクックしたワークアイテムの出力ファイルを検証し、それらのファイルがまだディスク上に存在しているかどうかを確認します。 出力ファイルが見つからないワークアイテムは、自動的にDirty(変更あり)となり、再度クックされます。 パラメータの変更によってワークアイテムがDirty(変更あり)となった場合、それらのキャッシュファイルも自動的に無効となります。 Validate Outputs When Recooking はデフォルトで 有効 になっています。
Check Expected Outputs on Disk
有効にすると、PDGは、スケジューラのワークアイテムがクックを終了した時に明示的に報告されなかった不要な出力(例えば、場合によって内部ロジックを処理するカスタム出力が生成してしまう出力など)を検索します。 このチェックは、スケジューラがワークアイテムをクック済みとマークした直後に行なわれ、正常に報告された必要な出力はチェックされません。 PDGは、必要な出力とは異なるファイルを検索し、それらのファイルは自動的に実際の出力ファイルとして追加されます。
Path Mapping
Global
PDG Path Mapが存在すれば、それがファイルパスに適用されます。
None
PDG_DIRトークンを使ってパスを非ローカル化します。
Path Map Zone
有効にすると、このスケジューラで実行されるすべてのジョブに適用する独自マップゾーンを指定します。
無効な時、そのローカルプラットフォームはLINUX、MAC、WINのどれかです。
Job Spec
Deadlineジョブファイルに書き出されるジョブ記述プロパティ。
Batch Name
(任意)ジョブのグループ先となるバッチ名を指定します。
Job Name
(必須)ジョブの名前を指定します。
Comment
(任意)すべてのジョブに書き込むコメントを指定します。
Job Department
(任意)すべてのジョブが所属するデフォルトの部門(例えば、Lighting)を指定します。
これによって、ジョブをグループ化して、ファームオペレータにその情報を渡すことができます。
Pool
ジョブの実行に使用するプールを指定します。
デフォルトの Pool はnoneです。
Group
ジョブの実行に使用するグループを指定します。
デフォルトの Group はnoneです。
Priority
すべての新しいジョブの優先度を指定します。
0が一番優先度が低いです。最大優先度は、DeadlineのRepository OptionsのJob Settings(通常では100)で設定することができます。
デフォルトの Priority は50です。
Concurrent Tasks
Deadline Worker毎に同時に走らせるタスクの数を指定します。
デフォルトの Concurrent Tasks は1です(同時に1個のタスクが走ります)。
Limit Concurrent Tasks to CPUs
有効にすると、Concurrent TasksがDeadline Worker上のCPU数、または、Deadlineの現在の CPU Affinity 設定に制限されます。
Pre Job Script
ジョブが開始した時に走らせるPythonスクリプトのパスを指定します。
Post Job Script
ジョブが終了した時に走らせるPythonスクリプトのパスを指定します。
Machine Limit
このジョブを実行可能なDeadline Workerマシンの最大数を指定します。
デフォルトの Machine Limit は0(制限なし)です。
Machine List
このジョブを実行可能なDeadline Workerマシンの制限リストを指定します。 書き出されるリストの種類は、以下の Machine List is A Blacklist パラメータで決まります。
Machine List is A Blacklist パラメータが 無効 な場合、このリストはJob InfoファイルにWhitelistとして書き出されます。
Machine List is A Blacklist パラメータが 有効 な場合、Blacklistとして書き出されます。
Machine List is a Blacklist
有効にすると、 Machine List がBlacklistとして書き出されます。
つまり、そのリストにあるマシンは、このジョブを実行することが できません 。
無効にすると、そのリストにあるマシンのみが、このジョブを実行することができます。
Limits
スケジュールが組まれたジョブに必要なDeadline Limits(ResourceまたはLicenseタイプ)を指定します。 このLimitsは、Deadlineの Deadline Monitor を介して作成して管理されます。
On Job Complete
ジョブが終了した際のそのジョブの情報の扱い方を決めます。
デフォルトの On Job Complete は Nothing です。
詳細は、Deadlineのドキュメントを参照してください。
Job Key-Values
このジョブに対して独自にキー値オプションを追加することができます。
これらのオプションは、Deadlineプラグインで必要なジョブファイルに書き出されます。
Plugin File Key-Values
プラグインに対して独自にキー値オプションを追加することができます。
これらのオプションは、Deadlineプラグインで必要なプラグインファイルに書き出されます。
Submit As Job
Deadlineファーム上に現行TOPネットワークをクックするスタンドアローンジョブ(Houdiniの実行が 不要 なジョブ)のスケジュールを組むことができます。
以下のパラメータは、このジョブの挙動を決めます。
Job Name
ジョブに使用する名前を指定します。
Output Node
クックするノードのパスを指定します。 ノードを指定しなかった場合、このスケジューラを含んだネットワーク内のディスプレイノードが代わりにクックされます。
Use MQ Job Options
有効にすると、このノードはMQ Job Optionsパラメータで指定されたジョブ設定を使用します。
Submit Graph As Job
現行TOPネットワークをDeadlineファーム上でhythonセッションのスタンドアローンジョブとしてクックします。
Enable Server
有効にすると、ファーム上でクックするTOPジョブ用のデータレイヤーサーバーが有効になります。 これによって、PilotPDGまたは他のWebSocketクライアントは、クック中のジョブにリモートで接続して、PDGの状態を閲覧することができます。
Server Port
データレイヤーサーバーに使用するサーバーポートを決めます。
このパラメータは、 Enable Server が 有効 な時にのみ利用可能です。
Automatic
データレイヤーサーバーに使用するTCPの空きポートがこのノードによって選択されます。
Custom
データレイヤーサーバーに使用するTCPのカスタムポートをユーザ側で指定します。
これは、ファームマシンと監視マシン間にファイアーウォールが挟まれている時に役立ちます。
Auto Connect
有効にすると、このスケジューラはジョブが開始した時にコマンドを送信してリモートビジュアライザの作成を試みます。 成功すると、リモートグラフが作成され、ジョブを実行中のサーバーに自動的に接続します。 ジョブを投入するクライアントがそのジョブを実行するサーバー側で 必ず見えていないと 、接続が失敗します。
このパラメータは、 Enable Server が 有効 な時にのみ利用可能です。
Message Queue
Message Queue(MQ)サーバーは、ファーム上で実行されているジョブからワークアイテムの結果を取得するのに必要です。 ファイアーウォールなどのネットワーク問題を回避できるようにするために、いくつかのタイプのMQが用意されています。
Type
使用するMessage Queue(MQ)サーバーのタイプ。
Local
ローカルマシン上でMQサーバーを起動または共有します。
(現行Houdiniセッション内の)他のDeadline Schedulerノードが既にローカルでMQサーバーを起動していた場合、このノードは自動的にそのMQサーバーを使用します。
ローカルマシンとファームマシン間に何もファイアーウォールが ない 場合、このパラメータを使用することを推奨します。
Farm
ファーム上でMQサーバーを別ジョブとして起動または共有します。
MQ Job Optionsでは、そのジョブ設定を指定することができます。
(現行Houdiniセッション内の)他のDeadline Schedulerノードが既にファーム上でMQサーバーを起動していた場合、このノードは自動的にそのMQサーバーを使用します。
ローカルマシンとファームマシン間にファイアーウォールがある場合、このパラメータを使用することを推奨します。
Connect
既に起動中のMQサーバーに接続します。
このMQサーバーは手動で起動している必要があります。 これは、MQを管理するための手動オプションであり、単一マシン上でMQをサービスとして起動し、すべてのPDG Deadlineジョブを処理するのに役立ちます。
Address
MQサーバーに接続する際に使用するIPアドレスを指定します。
このパラメータは、 Type が Connect に設定されている時にのみ利用可能です。
Task Callback Port
XMLRPCコールバックAPIでMessage Queue Serverが使用するTCPポートを設定します。このポートはファームブレード間でアクセスできなければなりません。
このパラメータは、 Type が Connect に設定されている時にのみ利用可能です。
Relay Port
PDGとMessage Queue Commandを走らせているブレード間のMessage Queue Server接続が使用するTCPポートを設定します。 このポートは、PDG/ユーザマシンからファームブレードに到達できなければなりません。
このパラメータは、 Type が Connect に設定されている時にのみ利用可能です。
以下のパラメータは、 Type が Farm に設定されている時にのみ利用可能です。
Batch Name
有効にすると、MQジョブの独自のDeadlineバッチ名を指定します。 無効にすると、MQジョブはジョブバッチ名を使用します。
Job Name
(必須)MQジョブの名前を指定します。
Comment
(任意)MQジョブに書き込むコメントを指定します。
Department
(任意)MQジョブが所属するデフォルトの部門(例えば、Lighting)を指定します。
これによって、ジョブをグループ化して、ファームオペレータにその情報を渡すことができます。
Pool
MQジョブの実行に使用するプールを指定します。
デフォルトの Pool はnoneです。
Group
MQジョブの実行に使用するグループを指定します。
デフォルトの Group はnoneです。
Priority
MQジョブの優先度を指定します。
0が一番優先度が低いです。最大優先度は、DeadlineのRepository OptionsのJob Settings(通常では100)で設定することができます。
デフォルトの Priority は50です。
Machine Limit
このMQジョブを実行可能なDeadline Workerマシンの最大数を指定します。
デフォルトの Machine Limit は0(制限なし)です。
Machine List
このMQジョブを実行可能なDeadline Workerマシンの制限リストを指定します。 書き出されるリストの種類は、以下の Machine List is A Blacklist パラメータで決まります。
Machine List is A Blacklist パラメータが 無効 な場合、このリストはJob InfoファイルにWhitelistとして書き出されます。
Machine List is A Blacklist パラメータが 有効 な場合、Blacklistとして書き出されます。
Machine List is a Blacklist
有効にすると、 Machine List がBlacklistとして書き出されます。
つまり、そのリストにあるマシンは、このMQジョブを実行することが できません 。
無効にすると、そのリストにあるマシンのみが、このMQジョブを実行することができます。
Limits
スケジュールが組まれたMQジョブに必要なDeadline Limits(ResourceまたはLicenseタイプ)を指定します。 このLimitsは、Deadlineの Deadline Monitor を介して作成して管理されます。
On Job Complete
MQジョブが終了した際のそのMQジョブの情報の扱い方を決めます。
デフォルトの On Job Complete は Nothing です。
詳細は、Deadlineのドキュメントを参照してください。
Job Parms
以下のジョブ特有のパラメータは、投入されたすべてのジョブに影響を与えますが、各ノードによって上書きすることができます。
詳細は、Scheduler Job Parms / Propertiesを参照してください。
HFS
すべてのDeadline WorkerマシンのHoudiniインストールディレクトリのルートパスを指定します。
このパスに変数を使用する場合は、\を付けてエスケープしない限りは、ローカルで評価されてしまいます。
例えば、$HFSだとローカルマシン上で評価されるので、その結果の値がファームに送信されます。
(混在ファームセットアップ環境向けに)代わりに強制的にWorker上で評価させるには、\$HFSを使用してください。
DeadlineのPath Mappingでは、以下のように設定してください
$HFS = C:/Program Files/Side Effects Software/Houdini 17.5.173
Python
すべてのWorkerマシンにインストールされている必要のあるPythonバージョンを指したPythonのルートパス(例えば、$HFS/bin/python)を指定します。
このパスに変数を使用する場合は、それらの変数をDeadlineのPath Mappingでマップさせてください。
例えば、デフォルト値を使用する場合は、$HFSをパスマップさせてください。
Windowsの場合、(混在ファームセットアップ環境向けに)そのパスマップに.exeまたは\$PDG_EXEも追加してください。
そのため、そのマッピングは次のようになります: $HFS/bin/python\$PDG_EXE → C:/Program Files/Side Effects Software/Houdini 17.5.173/bin/python.exe
Pre Task Script
タスクを実行する前に走らせるPythonスクリプトを指定します。
Post Task Script
タスクを実行した後に走らせるPythonスクリプトを指定します。
Inherit Local Environment
有効にすると、PDGの現行セッション内の環境変数がタスクの環境にコピーされます。
Houdini Max Threads
有効にすると、指定した値がHOUDINI_MAXTHREADS環境変数に設定されます。
デフォルトでは、 Houdini Max Threads は0(すべてのプロセッサが利用可能)に設定されています。
プラスの値は、使用可能なスレッドの数を制限し、その値は利用可能なCPUコア数に制限されます。
1の値は、完全にマルチスレッドを無効にします。つまり、スケジューラが1スレッドのみに制限されます。
マイナスの値は、最大プロセッサ数からその数だけ減算して、最大スレッド数が決まります。
例えば、-1の値は、1個以外のすべてのCPUコアを使用します。
Unset Variables
タスク環境でUnsetしたい環境変数、または、このスケジューラのタスク環境から削除したい環境変数をスペースで区切ったリストを指定します。
Environment Variables
タスク毎に独自の環境変数を追加することができます。
OpenCL Force GPU Rendering
OpenCLノード限定。
現行WorkerのGPU設定とユーザー指定のGPUsに基づいてGPU Affinityを設定します。
GPUs Per Task
RedshiftノードとOpenCLノード用。
タスクあたりに使用するGPUの数を指定します。 この値は、DeadlineのWorkerのGPU Affinity設定のサブセットでなければなりません。
Select GPU Devices
RedshiftノードとOpenCLノード用。
使用するGPU IDsのカンマ区切りのリストを指定します。 ここで指定したGPU IDsは、DeadlineのWorkerの GPU Affinity 設定のサブセットでなければなりません。
| See also |