Houdini 20.0 PDG/TOPsを使ってタスクを実行する方法

PDG Services

PDG Servicesは、ワークアイテムのクック時間を短くするために使用される持続型Houdiniセッションのプールを管理します。

On this page

概要

PDGサービス は、ワークアイテムをクックするためのサーバーとして動作する持続型プロセスです。 ノードがPDGサービスを使用するように設定されていれば、ワークアイテムをクックすると、そのワークアイテムはジョブをサービスのプールに投入するようになります。 利用可能な最初のサービスは、そのワークアイテムを取得して、そのワークを実行します。

PDGサービスは、新しいプロセスの起動に関連したオーバーヘッドを回避します。 PDGサービスは、ジョブ特有の最適化を実行することもできます。 例えば、HDA Processorサービスは、必要なノードを一度だけ作成し、各ジョブで同じノードを再利用して、そのネットワークの作成関連の時間を回避することができます。 その結果として、PDGサービスはジョブの処理を飛躍的に高速化することができます。

もう1つの例は、ベースアセットから多種多様なプロップを生成する軽量なワークを生成できることです。

これによって、クックの度にプロセスを再起動することなく膨大な数のバリエーションを生成することができます。

Service Blocksを使えば、同じサービスワーカープロセスを使用して、複数のワークアイテムをループで実行することができます。

対応しているノード

PDG Servicesパネル

PDG Services パネルを開くには:

  • TOP Tasksメニューから PDG Services を選択します。

  • 新しくペインタブを作成し、そのペインメニューから New Pane Tab Type ▸ TOPs ▸ PDG Services を選択します。

これでPDG Servicesパネルが表示されます。

PDG Servicesリスト

登録されている利用可能なすべてのサービスをリストし、それらのサービスが現在実行中かどうか表示します。 登録されているPDGサービスは、このリストから選択、追加削除することができます。

メニュー項目

機能

Create Service:

Add PDG Serviceウィンドウを開きます。

Delete Service:

このメニューは、登録されているサービスを削除します。 登録されているPDGサービスの削除を参照してください。

Start:

選択したPDGサービスを開始します。

Stop:

選択したPDGサービスを停止します。

Automatic:

有効にすると、選択したPDGサービスは、(そのサービスがまだ開始されていない場合に)そのサービスを使用する最初のPDGグラフクックによって自動的に開始されます。

Status:

サービスが実行中なのか停止されているのかを表示します。

Owner:

サービスの所有者を表示します。 現在のところ、サービスはHoudiniセッションでしか所有できないです。

Type:

サービスに関連付けられているスケジューラタイプの名前を表示します。

MQ Server Authenticated:

MQサーバーがすべてのクライアントで認証されているかどうかを表示します。HoudiniセッションがMQサーバーをアクティブに使用していない場合は“No Polling Client”と表示されます。

MQ Clients Authenticated:

すべてのMQクライアントがサーバーで認証されているかどうかを表示します。HoudiniセッションがMQサーバーをアクティブに使用していない場合は“No Polling Client”と表示されます。

Name:

選択したPDGサービスの名前を指定します。

Pool Size:

サービスプールで作成されるインスタンスの数を設定します。 インスタンスが多いほど、より多くのワークアイテムを並列でクックできるようになるので、クック時間が短くなります。

Connection Timeout (S)

サービスがメインのHoudiniプロセスを通信する時に待機する秒数。 この秒数を超えると、サービスプロセスは強制終了します。

MQ Server Log Level:

サービスに関連付けられているMQサーバーのログレベルを表示します。

MQ Server Log Directory:

MQサーバーのログファイルが保存されるディレクトリを表示します。

Client Log Type

サービスプロセスがログデータを書き出す場所を決めます。 デフォルトでは、サービスは、 Client Log Directory で指定されたディスク上のファイルにログをリダイレクトしますが、 そのログがファームシステムで取得できるように標準出力に直接ログが出るように構成することもできます。

Client Log Directory:

サービスプールクライアントがログファイルを書き出すフォルダを指定します。

Environment Variables:

このサービスの環境で設定したい環境変数を指定します。 Add Environment Variable ボタンをクリックすると環境変数を追加することができ、環境変数を右クリックしてDeleteを選択するとその環境変数を削除することができます。

Service Clientリスト

Service Clientリストでは、ワーカープロセスとステータスプールの状態を確認することができます。 これは、停滞していてリセット、再起動、停止をする必要があるプロセスをデバッグするのに役立ちます。

Service Clientリストを使用することで、クライアントが十分にあるかどうか判断することができます。 例えば、プールステータスが1つまたは2つしか点灯していない場合、プールサイズを小さくすることで、リソースを削減することができます。

メニュー項目

機能

Reset Client:

“reset”コマンドをサービスに送信します。これによって、サービスプロセスは読み込み済みのシーンデータをクリアします。

Restart Client

サービスプロセスを停止して、再生成します。

Stop Client

プロセスを停止します。

Create PDG Serviceウィンドウ

メニュー項目

機能

Type:

登録されているサービスに関連付けるサービスタイプ。

Owner:

サービスの所有者を制御します。 現在のところ、サービスはHoudiniセッションでしか所有できないです。 つまり、サービスの寿命は現行Houdiniセッションと結びついています。 Houdiniが終了した時にサービスがまだ実行中だった場合、そのサービスは自動的にシャットダウンされます。

Name:

サービスの固有の名前。 これは、例えば、ノードパラメータでサービスを参照する時に使用される名前です。

Automatically Start Service:

有効にすると、サービスは、(そのサービスがまだ開始されていない場合に)そのサービスを使用する最初のPDGクックによって自動的に開始されます。

Pool Size:

サービスで作成されるクライアントの数。

Port:

ポートの設定方法を選択します。

Automatic: (Portのオプション)

サービスが使用するポートが自動的に決定されます。

Custom: (Portのオプション)

サービスが使用するポートに独自のポートを指定する必要があります。

MQ Server Log Level:

MQサーバーのログファイルに書き出される情報のタイプを制御します。

None: (MQ Server Log Levelのオプション)

何も情報がログに書き出されません。

Errors: (MQ Server Log Levelのオプション)

エラーのみがログに書き出されます。

Warnings: (MQ Server Log Level option)

警告とエラーがログに書き出されます。

All: (MQ Server Log Level option)

一般的なステータスメッセージ、警告、エラーがログに書き出されます。

MQ Server Log Directory:

MQサーバーがログファイルを生成するログディレクトリを指定します。

Client Log Type:

サービスプロセスがログデータを書き出す場所を決めます。 ディスク上のファイル、サービスプロセスの標準出力のどれかを指定することができます。

Client Log Directory:

サービスプール内のクライアントがログファイルを書き出すログディレクトリを指定します。

Add:

サービスを登録します。

Cancel:

サービス登録の操作をキャンセルします。

PDG Servicesノード

PDG Services パネルを使用してサービスを作成/管理するだけでなく、以下のTOPノードを使用してグラフ内で直接PDGサービスを取り扱うこともできます:

How-to

PDGサービスに対応しているノードタイプのどれかでPDGサービスを使用する手順を以下に載せています。

PDGサービスの追加

  1. PDG Services ウィンドウで、 Create Service ボタンをクリックします。

    Add PDG Serviceウィンドウが表示されます。

  2. Add PDG Service ウィンドウで、新しいサービスの詳細(ノードの設定を含む)を指定します。

    この手順に関しては、そのノードがサービスを使用するように設定する上でそのノードのドキュメントの情報を参照してください。

  3. Add をクリックします。

    新しく登録したサービスがPDG Servicesリスト内に表示されます。

    設定した関連ノードがクックされると、それらのノードは新しいPDGサービスプールを使用してワークアイテムをクックするようになります。

PDGサービスの開始

  1. PDG Services ウィンドウで、PDG Servicesリストから開始したいサービスを選択します。

  2. Start をクリックします。

PDGサービスの停止

  1. PDG Services ウィンドウで、PDG Servicesリストから停止したいサービスを選択します。

  2. Stop をクリックします。

PDGサービスの削除

  1. PDG Services ウィンドウで、 Delete Service ボタンをクリックします。

    選択したサービスがPDG Servicesリストから削除されます。

Tip

いつでもPDGサービスを再登録することができます。

PDGサービスにノードを追加する

PDGサービスをサポートしているノードは、 HDA Processor ROP Fetch Python Scriptです。

  1. PDGサービスを サポートしているノード を追加します。この例では、 ROP Fetch TOP ノードを追加します。

  2. ROP Fetch TOP ノードを選択します。

  3. パラメータエディタ ウィンドウで、 Cook Type ドロップダウンメニューから Service を選択します。

  4. Service Name パラメータの右側にあるドロップダウンメニューからPDGサービスを選択します。

これで、選択したPDGサービスにそのノードが追加されます。

PDG/TOPsを使ってタスクを実行する方法

基本

初心者向けチュートリアル

次のステップ

リファレンス

  • すべてのTOPsノード

    TOPノードは、データをネットワークに送り込んでワークアイテムに変換し、色々なノードでそれを制御するワークフローを定義します。たいていのノードは、ローカルマシンまたはサーバーファーム上で実行可能な外部プロセスを表現しています。

  • プロセッサ系ノードコールバック

    プロセッサ系ノードはスケジューラで実行可能なワークアイテムを生成します。

  • パーティショナー系ノードコールバック

    パーティショナー系ノードは複数の上流ワークアイテムを単一パーティションにグループ化します。

  • スケジューラ系ノードコールバック

    スケジューラ系ノードはワークアイテムを実行します。

  • 独自のファイルタグとハンドラー

    PDGはファイルタグを使用して出力ファイルのタイプを決めます。

  • Python API

    ディペンデンシーグラフを扱うためのPython PDGパッケージのクラスと関数。

  • Job API

    ジョブスクリプトで使用するPython API

  • ユーティリティAPI

    Python pdgutilsパッケージのクラスと関数は、PDGノードでの使用だけでなく、スクリプトやプロセス外のジョブスクリプトでの使用も想定されています。