On this page |
このノードは、リモートマシン上でワークアイテムを実行できるように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 を使って開放ポートを指定する必要があります。
Warning
Windowsサービス側からはマップされたドライブを 使用することができません 。
WindowsでのHQueueジョブはWindowsサービス側で実行されるので、 UNCパス のみを使用してください。
例えば、H:/project/myhip.hip
の代わりに//myserver/hq/project/myhip.hip
を使用してください。
他にもパス内のバックスラッシュに注意してください。バックスラッシュを含んだパスがHoudiniまたはコマンドシェルで評価される、そのバックスラッシュはエスケープ文字として解釈されてしまいます。
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
投入されるクックのトップレベルのHQueue Jobの名前。
Enable Server
ファーム上でクックするTOPジョブのデータレイヤーサーバーを有効化します。 これによって、PilotPDGまたは他のWebSocketクライアントからリモートでクック中のジョブに接続して、そのPDGの状態を確認することができます。
Server Port
このパラメータは、 Enable Server が 有効 になっている時にのみ利用可能です。
データレイヤーサーバーで使用するサーバーポートを決定します。
Automatic
TCPポートはこのノードで自動的に選択されます。
Custom
ユーザーが指定したカスタムTCPポート。
これは、ファームマシンとモニタリングマシン間にファイアーウォールがある時に役立ちます。
Auto Connect
このパラメータは、 Enable Server が 有効 になっている時にのみ利用可能です。
有効にすると、このノードは、ジョブが開始された時にコマンドを送信してリモートビジュアライザの作成を試みます。
成功すると、リモートグラフが作成され、それがジョブを実行するサーバーに自動的に接続されます。 ジョブを投入するクライアントは、そのジョブを実行するサーバー側で 見えていなければなりません 。見えていなければ、接続は失敗します。
Working Directory
クックが中間ファイルと出力を生成するディレクトリを指定します。
これらの中間ファイルは、pdgtemp
という名前のサブディレクトリに配置されます。
Houdiniで共有ネットワークパス(例えば、H:/myproj/myhip.hip
)から.hip
ファイルを開いている場合、ここには$HIP
(デフォルト)を使用することができます。
しかし、ローカルディレクトリ(例えば、C:/temp/myhip.hip
)から.hip
ファイルを開いている場合、ファームマシンからそのhip
ファイルにアクセスできるようにするために共有ネットワークにコピーしておく必要があります。
この場合、 Working Directory には、その共有ネットワークロケーションの絶対パスまたは相対パスを指定してください(例えば、//MYPC/Shared/myproj
)。
Job Name
TOPネットワークをクックするジョブの名前。
Job Description
トップレベルのHQueue Jobの説明。 これは、そのジョブのJob Propertiesに表示することができます。
以下のパラメータは、 Override Local Shared Root が 有効 になっている時にのみ利用可能です。
HQueueファームは、共有ネットワークファイルシステムで構成し、この共有ファイルシステムのマウントポイントをプラットフォーム別に指定してください。
Load from HQueue
HQueueサーバーを照会して、プラットフォーム別にローカル共有ルートパスを取得し、以下のパラメータを埋めます。
Windows
Windowsマシン上のローカル共有ルートパス。例えば、I:/
。
macOS
MacOSマシン上のローカル共有ルートパス。例えば、/Volumes/hq
。
Linux
Linuxマシン上のローカル共有ルートパス。例えば、/mnt/hq
。
HQueue Server
HQueueサーバーのURL。例えば、http://localhost:5000
。
Universal HFS
有効にすると、$HFS
ディレクトリ(Houdiniインストールディレクトリ)の単一パスがすべてのプラットフォームで使用されます。
$HQROOT
と$HQCLIENTARCH
を使用すれば、そのディレクトリパスの指定に役立ちます。
Linux HFS Path
このパラメータは、 Universal HFS が無効な時にのみ利用可能です。
Linux用$HFS
パス。
macOS HFS Path
このパラメータは、 Universal HFS が無効な時にのみ利用可能です。
MacOS用$HFS
パス。
Windows HFS Path
このパラメータは、 Universal HFS が無効な時にのみ利用可能です。
Windows用$HFS
パス。
Python
Pythonジョブに使用したいPythonインタープリターを選択します。 このPythonは、 PDG_PYTHON トークンを使ってコマンド内で指定することができます。
From HFS
HoudiniにインストールされているPythonインタープリターを使用します。
From HQClient
HQClientがファームマシン上で使用しているのと同じPythonインタープリターを使用します。
Custom
Python Executable で指定された実行可能ファイルのパスを使用します。
Python Executable
Pythonジョブで使用するPython実行可能ファイルのフルパス。
Create Queue
Message Queueジョブをインタラクティブクックで作成するかどうかを決定します。
Message Queueは、投入したHoudiniセッションがネットワーク制限やファイアーウォールが原因でファームマシンから アクセスできない 時に役立ちます。
Automatically
Message Queueをインタラクティブクックで作成します。
ファーム上のジョブは、自身のステータスの変化をMessage Queueに伝えます。このMessage Queueは、投入したHoudiniセッションに次々に接続されていきます。
Never
Message Queueをインタラクティブクックで 作成しません 。
ファーム上のジョブは、自身のステータスの変化を、投入したHoudiniセッションに 直接 伝えます。
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
このパラメータは、 Assign To が Listed Clients に設定されている時にのみ利用可能です。
HQueueからクライアントを選択して、 Clients リストを集計します。
Client Groups
このパラメータは、 Assign To が Clients from Listed Groups に設定されている時にのみ利用可能です。
ジョブを割り当てるクライアントグループの名前をスペースで区切ります。
Select Groups
このパラメータは、 Assign To が Clients from Listed Groups に設定されている時にのみ利用可能です。
HQueueからクライアントグループを選択して、 Client 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 All Non Zero が無効になっている時にのみ利用可能です。
Handle By を使って制御したいexitコードを指定します。 ゼロ以外のすべてのexitコードは、通常では失敗として扱われます。
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 |