On this page |
概要
このスケジューラ系ノードは、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
すべてのワークアイテムのグローバルパラメータ。
Deadlineファーム上に現行TOPネットワークをクックするスタンドアローンジョブ(Houdiniの実行が 不要 なジョブ)のスケジュールを組むことができます。
以下のパラメータは、このジョブの挙動を決めます。
Job Name
ジョブに使用する名前を指定します。
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 が 有効 になっている時にのみ利用可能です。
有効にすると、このノードは、ジョブが開始された時にコマンドを送信してリモートビジュアライザの作成を試みます。
成功すると、リモートグラフが作成され、それがジョブを実行するサーバーに自動的に接続されます。 ジョブを投入するクライアントは、そのジョブを実行するサーバー側で 見えていなければなりません 。見えていなければ、接続は失敗します。
Local Shared Path
ジョブが中間ファイルと出力を生成するディレクトリを指したローカルマシン上のルートパスを指定します。 中間ファイルはサブディレクトリに配置されます。
ローカルマシンとファームマシンが同じパス設定の場合は、このパラメータを使用します。
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プラグインで必要なプラグインファイルに書き出されます。
Verbose Logging
有効にすると、クック中に問題をデバッグするのに役立つ情報がコンソールにプリントされます。
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 が 有効 な時にのみ利用可能です。
Plugin パラメータフィールドで指定されたカスタムDeadlineプラグインのパスを指定します。
Copy Plugin to Working Directory
ファームマシンからDeadlineプラグインにアクセスできるようにするために、そのDeadlineプラグインファイルをローカルのHoudiniインストール場所または指定したカスタムパスからPDG作業ディレクトリにコピーします。
オーバーライドパスを使用していて、そのプラグインが既にファーム上で利用可能である場合は、このパラメータを 無効 にしても構いません。
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
このパラメータは、 Type が Connect に設定されている時にのみ利用可能です。
MQサーバーに接続する際に使用するIPアドレスを指定します。
Task Callback Port
このパラメータは、 Type が Connect に設定されている時にのみ利用可能です。
XMLRPCコールバックAPIでMessage Queue Serverが使用するTCPポートを設定します。このポートはファームブレード間でアクセスできなければなりません。
Relay Port
このパラメータは、 Type が Connect に設定されている時にのみ利用可能です。
PDGとMessage Queue Commandを走らせているブレード間のMessage Queue Server接続が使用するTCPポートを設定します。 このポートは、PDG/ユーザマシンからファームブレードに到達できなければなりません。
以下のパラメータは、 Type が Farm に設定されている時にのみ利用可能です。
Batch Name
#id deadline_mqjobbatchname
有効にすると、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コアを使用します。
Environment Key-Values
タスク毎に独自のキー値環境変数を追加することができます。
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 |