On this page | |
Since | 17.5 |
このノードは、リモートマシン上でワークアイテムを実行できるようにHQueueを使ってそれらのワークアイテムのスケジュールを組みます。
HQueueの組み方に関する情報は、HQueueをはじめようまたはPDG For Design Workパート3 - 分散PDGのセットアップを参照してください。
Cook Modes
このスケジューラは、2種類のクックモードで動作させることができます:
-
通常のクック モードは、HQueueスケジューラに接続して、ワークアイテムの実行の準備が整った時にそのワークアイテムのジョブを作成してから、それらのジョブがステータスを変更させて投入マシンと通信します。 つまり、ジョブを投入するHoudiniセッションは、クック中に 必ず 開いたままでなければなりません。
このモードは、メニューまたはTOP UIのボタンから Cook を選択した時に使用されます。
-
スタンドアローンジョブ モードは、TOPネットワーク全体をスタンドアローンジョブとしてクックします。 このモードでは、ジョブを投入するHoudiniセッションは、TOPネットワークのクックから切り離され、必要に応じて
.hip
ファイルがコピーされ、hython
プロセスは、そのTOPネットワークのデフォルトスケジューラを使ってTOPネットワークを実行します。 現行Houdiniセッションの更新内容も反映 されなくなります 。このモードを使用した時のジョブの進捗をチェックしたいのであれば、HQueueウェブポータルを使用する必要があります。このモードは、HQueue Schedulerのパラメータ内のSubmit Graph As Job > Submit ボタンをクリックした時に使用されます。
ネットワーク要件
クックの一部として、メッセージキュー(MQ)ジョブが投入されます。 このジョブは、実行中のジョブから投入マシンに情報を返すために使用されます。 このため、ファームマシンは、他のファームマシンのホスト名を解決できる必要があります。
Tip
これは、/etc/hosts
(Linux / MacOS)またはC:\Windows\System32\Drivers\etc\hosts
(Windows)を編集することと同じくらい簡単です。
さらに、ファームマシン間にファイアーウォールを設定 しない ようにするか、または、 Task Callback Port パラメータを使って、使用する開放ポートを指定する必要があります。
クックが開始されると、ジョブ投入マシンは、MQジョブを実行しているファームマシンに接続するので、そのジョブ投入マシンとファームマシン間にファイアーウォールを設定しないようにするか、または、 Relay Port パラメータを使って開放ポートを指定する必要があります。
Enable Server
有効にすると、ファーム上でクックするTOPジョブ用のデータレイヤーサーバーが有効になります。 これによって、PilotPDGまたは他のWebSocketクライアントは、クック中のジョブにリモートで接続して、PDGの状態を閲覧することができます。
Server Port
データレイヤーサーバーに使用するサーバーポートを決めます。
このパラメータは、 Enable Server が 有効 な時にのみ利用可能です。
Automatic
データレイヤーサーバーに使用するTCPの空きポートがこのノードによって選択されます。
Custom
データレイヤーサーバーに使用するTCPのカスタムポートをユーザ側で指定します。
これは、ファームマシンと監視マシン間にファイアーウォールが挟まれている時に役立ちます。
Auto Connect
有効にすると、このノードはジョブが開始した時にコマンドを送信してリモートビジュアライザの作成を試みます。 成功すると、リモートグラフが作成され、ジョブを実行中のサーバーに自動的に接続します。
ジョブを投入するクライアントがそのジョブを実行するサーバー側で 必ず見えていないと 、接続が失敗します。
このパラメータは、 Enable Server が 有効 な時にのみ利用可能です。
When Finished
TOP Cookが終了した時の挙動。ジョブ管理人がData Layerビューアを使用してジョブを検査できるように、ジョブを実行し続ける方が役立つ場合があります。
Terminate
ジョブを通常通りに終了します。
Keep Open If Error
エラーが検知された場合にのみジョブの実行を続けます。そのジョブを手動でKillする必要があります。
Keep Open
ジョブの実行を続けます。そのジョブを手動でKillする必要があります。
Block on Failed Work Items
このオプションを有効にすると、スケジューラ内に失敗したワークアイテムが存在すれば、そのスケジューラはクックが完了するのをブロックします。 これによって、失敗したワークアイテムがリトライされる前にPDGグラフクックがそれを終了しないようにすることで、その失敗したワークアイテムを手動でリトライすることができます。 失敗したワークアイテムに対してブロックされたクックは、 ⎋ Escキー、TOPタスクバー内のキャンセルボタン、キャンセルAPIメソッドでもキャンセルすることができます。
Warning
Windowsサービス側からはネットワークマウントされたドライブを 使用することができません 。
WindowsでのHQueueジョブはWindowsサービス側で実行されるので、 UNCパス のみを使用してください。
例えば、H:/project/myhip.hip
の代わりに//myserver/hq/project/myhip.hip
を使用してください。
他にもパス内のバックスラッシュに注意してください。バックスラッシュを含んだパスがHoudiniまたはコマンドシェルで評価される、そのバックスラッシュはエスケープ文字として解釈されてしまいます。
Tip
HQueue Schedulerノード上の Path Mapping セクション内のLoad Path Mapボタンを押すと、必要なパスマップが自動的に読み込まれます。
TOP Attributes
|
integer |
HQueue SchedulerがワークアイテムをHQueueに投入した時、HQueueジョブIDを追跡できるように、このアトリビュートがそのワークアイテムに追加されます。 |
パラメータ
Scheduler
以下のパラメータは、このスケジューラを使ったすべてのワークアイテムのグローバルパラメータです。
Submit
このスケジューラがTOPネットワーク全体をスタンドアローンのジョブとしてクックします。
投入されたジョブには、ステータスURIを表示します。
投入したHoudiniセッションは、TOPネットワークのクックから切り離されます。
この.hip
ファイルは必要に応じてコピーされ、hython
プロセスは、そのTOPネットワークのデフォルトスケジューラを使用してそのTOPネットワークを普段どおりに実行します。
Tip
HQueue Web UIを使用することで、終了したスタンドアローンジョブを再スタートすることができます。 しかし、親ジョブではなくて TOP Cook という名前の子ジョブを再スタートするべきです。
Job Name
投入されるジョブの名前を指定します。
Enable Server
有効にすると、ファーム上でクックするTOPジョブ用のデータレイヤーサーバーが有効になります。 これによって、PilotPDGまたは他のWebSocketクライアントは、クック中のジョブにリモートで接続して、PDGの状態を閲覧することができます。
Server Port
データレイヤーサーバーに使用するサーバーポートを決めます。
このパラメータは、 Enable Server が 有効 な時にのみ利用可能です。
Automatic
データレイヤーサーバーに使用するTCPの空きポートがこのノードによって選択されます。
Custom
データレイヤーサーバーに使用するTCPのカスタムポートをユーザ側で指定します。
これは、ファームマシンと監視マシン間にファイアーウォールが挟まれている時に役立ちます。
Auto Connect
有効にすると、このノードはジョブが開始した時にコマンドを送信してリモートビジュアライザの作成を試みます。 成功すると、リモートグラフが作成され、ジョブを実行中のサーバーに自動的に接続します。
ジョブを投入するクライアントがそのジョブを実行するサーバー側で 必ず見えていないと 、接続が失敗します。
このパラメータは、 Enable Server が 有効 な時にのみ利用可能です。
HQueue Server
HQueueサーバーのURL。例えば、http://localhost:5000
です。
Job Name
投入されるクックのトップレベルのHQueueジョブの名前。
Job Description
トップレベルのHQueue Jobの説明。 これは、そのジョブのJob Propertiesに表示することができます。
Block on Failed Work Items
このオプションを有効にすると、スケジューラ内に失敗したワークアイテムが存在すれば、そのスケジューラはクックが完了するのをブロックします。 これによって、失敗したワークアイテムがリトライされる前にPDGグラフクックがそれを終了しないようにすることで、その失敗したワークアイテムを手動でリトライすることができます。 失敗したワークアイテムに対してブロックされたクックは、 ⎋ Escキー、TOPタスクバー内のキャンセルボタン、キャンセルAPIメソッドでもキャンセルすることができます。
Working Directory
クックが中間ファイルと出力を生成するディレクトリを指定します。
これらの中間ファイルは、pdgtemp
という名前のサブディレクトリに配置されます。
Houdiniで共有ネットワークパス(例えば、H:/myproj/myhip.hip
)から.hip
ファイルを開いている場合、ここには$HIP
(デフォルト)を使用することができます。
しかし、ローカルディレクトリ(例えば、C:/temp/myhip.hip
)から.hip
ファイルを開いている場合、ファームマシンからそのhip
ファイルにアクセスできるようにするために共有ネットワークにコピーしておく必要があります。
この場合、 Working Directory には、その共有ネットワークロケーションの絶対パスまたは相対パスを指定してください(例えば、//MYPC/Shared/myproj
)。
その場合には、.hip
ファイルは自動的にコピーされますが、クロスプラットフォームで互換性を持たせるには、ローカルの$HIPパスをファームの Working Directory にマップする Path Map (例えば、c:/temp → /mnt/hq/pyproj)を追加する必要があることに注意してください。
Path Mapping
Global
PDG Path Mapが存在すれば、それがファイルパスに適用されます。
None
PDG_DIR
トークンを使ってパスを非ローカル化します。
Path Map Zone
有効にすると、このスケジューラで実行されるすべてのジョブに適用する独自マップゾーンを指定します。
無効な時、そのローカルプラットフォームはLINUX
、MAC
、WIN
のどれかです。
Load Path Map
PDG Path Mapパネルを開き、LINUX,MAC,WINのデフォルトゾーンに対するHQueueサーバーの設定に基づいてパスマップを収集します。
Validate Outputs When Recooking
有効にすると、PDGは、グラフが再クックされた時にワークアイテムの出力ファイルをチェックして、それらのファイルがまだディスク上に存在するかどうかを確認します。 出力ファイルが見つからないワークアイテムは、Dirty(変更あり)としてマークされ、再クックされます。
Check Expected Outputs on Disk
有効にすると、PDGは、ワークアイテムがクックされた時に明示的にレポートされなかった必要なワークアイテム出力をディスク上で検索します。 ワークアイテムに必要な出力は、スケジューラがそのワークアイテムをクック済みとしてマークした直後にチェックされます。 クック中にそのワークアイテムから正常にレポートされた出力ファイルは、チェックされません。
HQueueファームは、共有ネットワークファイルシステムで構成し、この共有ファイルシステムのマウントポイントをプラットフォーム別に指定してください。
以下のパラメータは、 Override Local Shared Root が 有効 になっている時にのみ利用可能です。
Load from HQueue
HQueueサーバーを照会して、プラットフォーム別にローカル共有ルートパスを取得し、以下のパラメータを埋めます。
Windows
Windowsマシン上のローカル共有ルートパス。例えば、I:/
。
macOS
MacOSマシン上のローカル共有ルートパス。例えば、/Volumes/hq
。
Linux
Linuxマシン上のローカル共有ルートパス。例えば、/mnt/hq
。
Universal HFS
有効にすると、$HFS
ディレクトリ(Houdiniインストールディレクトリ)の単一パスがすべてのプラットフォームで使用されます。
$HQROOT
と$HQCLIENTARCH
を使用すれば、そのディレクトリパスの指定に役立ちます。
Linux HFS Path
Linux用$HFS
パス。
このパラメータは、 Universal HFS が無効な時にのみ利用可能です。
macOS HFS Path
MacOS用$HFS
パス。
このパラメータは、 Universal HFS が無効な時にのみ利用可能です。
Windows HFS Path
Windows用$HFS
パス。
このパラメータは、 Universal HFS が無効な時にのみ利用可能です。
Python
Pythonジョブに使用したいPythonインタープリターを決めます。
コマンド内にPDG_PYTHON
トークンを使ってこのPythonを指定することもできます。
From HFS
HoudiniにインストールされているPythonインタープリターを使用します。
From HQClient
HQClientがファームマシン上で使用しているのと同じPythonインタープリターを使用します。
Custom
Python Executable パラメータで指定された実行可能ファイルのパスを使用します。
Python Executable
このパラメータは、 Python が Custom に設定されている時にのみ利用可能です。
Pythonジョブで使用するPython実行可能ファイルのフルパス。
Message Queue(MQ)サーバーは、ファーム上で実行中のジョブからワークアイテムの結果を取得するのに必須です。 ファイアーウォールなどのネットワーク問題を回避するために、いくつかのタイプのMQが用意されています。
Create Queue
使用するMessage Queue(MQ)サーバーのタイプ。
Local
ローカルマシン上でMQサーバーを起動または共有します。
(現行Houdiniセッション内に)もう1つのHQueue Schedulerノードが既にMQサーバーをローカルで起動していた場合、このHQueue Schedulerノードは、そのMQサーバーを自動的に使用します。
ローカルマシンとファームマシン間に何もファイアーウォールを 挟んでいない 場合は、この設定を使用することを推奨します。
Farm
ファーム上でMQサーバーを別ジョブとして起動または共有します。
ローカルマシンとファームマシン間にファイアーウォールを挟んでいる場合は、この設定を使用することを推奨します。
Connect
既に起動中のMQサーバーに接続します。
MQサーバーは手動で起動されている必要があります。 これは、MQを管理するための手動オプションであり、MQを単一マシン上で一元管理されたサービスとして起動して、この設定を使用したすべてのPDGジョブに提供するのに役立ちます。
Task Callback Port
Message Queue ServerのXMLRPC
コールバックAPIで使用するTCP Portを設定します。このポートはファームクライアント間でアクセスできなければなりません。
Relay Port
PDGとMessage Queue Commandを実行しているクライアントとの間のMessage Queue Server接続で使用するTCP Portを設定します。 このポートは、PDG/ユーザマシンからファームクライアントに到達できなければなりません。
Verbose Logging
出力をコンソールにプリントします。 これは問題をデバッグするのに役立ちます。
Tick Period
onTick
コールバックをコールする間隔の最小時間(秒)を設定します。
Max Items Per Tick
Tick間でonSchedule
コールバックが準備するワークアイテムの最大数を設定します。
Job Parms
以下のジョブ特有のパラメータは、投入されたすべてのジョブに影響を与えますが、各ノードによって上書きすることができます。 Scheduler Job Parms / Propertiesを参照してください。
Note
これらのパラメータのほとんどがHQueue Job Propertiesと等価です。
Job Priority
ジョブのHQueue優先度。
優先度の高いジョブほど優先度の低いジョブよりも先にスケジュールが組まれて処理されます。
0
が一番低い優先度です。
Assign To
優先度の割り当て先となるクライアント。
Any Client
任意のクライアントに割り当てます。
Listed Clients
指定したクライアントに割り当てます。
Clients from Listed Groups
指定したクライアントグループに割り当てます。
Clients
ジョブを割り当てるクライアントの名前をスペースで区切ります。
このパラメータは、 Assign To が Listed Clients に設定されている時にのみ利用可能です。
Select Clients
HQueueからクライアントを選択して、 Clients リストを集計します。
このパラメータは、 Assign To が Listed Clients に設定されている時にのみ利用可能です。
Client Groups
ジョブを割り当てるクライアントグループの名前をスペースで区切ります。
このパラメータは、 Assign To が Clients from Listed Groups に設定されている時にのみ利用可能です。
Select Groups
HQueueからクライアントグループを選択して、 Client Groups リストを集計します。
このパラメータは、 Assign To が Clients from Listed Groups に設定されている時にのみ利用可能です。
CPUs per Job
ジョブが消費するCPUsの最大数。 この数がクライアントマシンの空きCPU数を超えている場合、そのクライアントマシンにはジョブが 割り当てられなくなります 。
Note
いくつかのジョブのマルチスレッド化はHoudini Max Threadsで制御することができます。 Tags パラメータを使用することで、このジョブに専用マシンが必要かどうかを制御することもできます。
Job Description
ジョブのDescriptionプロパティ。
Allowed Host
ジョブを実行させるマシンのホスト名。
Resources
ジョブが消費するHQueueリソースをスペースで区切ったリスト。
例えば、sidefx.license.render sidefx.license.engine
。
Maximum Run Time
ワークアイテムの実行が許可される最大時間(秒)。 実行時間がこの最大時間を越えると、そのワークアイテムは自動的にHQueueにキャンセルされます。
Handle By
コマンドが失敗した(ゼロ以外のexitコードを返した)時の挙動をカスタマイズします。
Reporting Error
ワークアイテムが失敗します。
Reporting Warning
ワークアイテムが成功し、警告がノードに追加されます。
Retrying Task
Retries の回数だけHQueueによってワークアイテムを再試行します。
Ignoring Exit Code
ワークアイテムが成功します。
Handle All Non Zero
無効にすると、特定のexitコードを指定することができます。
Exit Code
Handle By を使って制御したいexitコードを指定します。 ゼロ以外のすべてのexitコードは、通常では失敗として扱われます。
このパラメータは、 Handle All Non Zero が無効になっている時にのみ利用可能です。
Retries
コマンドが失敗した時にそのジョブを再試行する回数。
このパラメータは、 Handle By が Retrying Task に設定されている時にのみ利用可能です。
Houdini Max Threads
HOUDINI_MAXTHREADS
環境変数に値を設定します。
CPUs per Job が有効の場合、 Houdini Max Threads に値が設定されます。
CPUs per Job が無効の場合、 Houdini Max Threads にデフォルトで0
が設定されます。つまり、ジョブは利用可能なプロセッサすべてを使用することを意味します。
プラスの値は、利用可能なスレッド数を制限します。
例えば、1
の値は、ジョブを1スレッドに制限することで完全にマルチスレッド処理を無効にします。
プラスの値は、利用可能なCPUコア数で制限されます。
マイナスの値を指定すると、最大プロセッサ数からその値が引かれて、スレッド数が決定されます。
例えば、-1
の値は全CPUコア数から1を引いたCPUコア数が使用されます。
リソースの使用量を制限する方法を参照してください。
Inherit Local Environment
有効にすると、現行Houdiniセッション内の環境変数がジョブの環境変数にコピーされます。
Environment Variables
独自のKey-Value環境変数を各タスクに追加します。
See also |