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

PDG Services

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

On this page

概要

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

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

Another example is to create light weight work to generate a large assortment of different props from a base asset.

This allows you to generate a huge number of variations without restarting the process for every cook.

You can use Service Blocks to run multiple work items in a loop using the same service worker process.

対応しているノード

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:

Shows whether the MQ server is authenticated by all its clients, or “No Polling Client” if the Houdini session is not actively using the server.

MQ Clients Authenticated:

Shows whether all the MQ clients are authenticated by the server, or “No Polling Client” if the Houdini session is not actively using the server.

Name:

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

Pool Size:

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

Connection Timeout (S)

The time in seconds that a service process will wait when communicating with the main Houdini process. If the timeout is exceeded, the service proces will terminate.

MQ Server Log Level:

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

MQ Server Log Directory:

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

Client Log Type

Determines where service processes should write their log data. By default, services will redirect their log to a file on disk as specified using the Client Log Directory, however they can also be configured to log directly to standard output so that the logs are picked up by a farm system.

Client Log Directory:

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

Environment Variables:

Specifies the environment variables that should be set in this service’s environment. Click Add Environment Variable to add an environment variable, and right click on an environment variable and click delete to delete one.

Service Clientリスト

The Service Client list allows you to see the status of the worker processes and status pool. This helps to debug any processes that may be stuck and need to reset, restart, or stop.

You can use the service client list to decide if you have sufficient clients. For example, if you only see one or two of your pool status lit, you may be able to reduce resources by reducing the pool size.

メニュー項目

機能

Reset Client:

Sends a “reset” command to the service, which causes the service process to clear any loaded scene data

Restart Client

Stops and recreates the service process.

Stop Client

Stops the process.

Create PDG Serviceウィンドウ

メニュー項目

機能

Type:

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

Owner:

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

Name:

A unique name for the service. This is the name that will be used when referring to the service in node parameters, for example.

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:

Determines where service processes should write their log data, either to a file on disk or to the standard output of the service process.

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サービスにノードを追加する

The supported nodes for PDG service are HDA Processor, ROP Fetch, and Python Script

  1. Create a __supported node___ for PDG Services This example uses a Rop Fetch TOP node.

  2. Select the ROP Fetch TOP node.

  3. In the Parameters Editor window, use the Cook Type dropdown menu and select Service.

  4. In Service Name, use the dropdown arrow and select a PDG Service.

Your node is added to the selected PDG Service.

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

基本

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

次のステップ

リファレンス

  • すべてのTOPsノード

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

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

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

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

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

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

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

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

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

  • Python API

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

  • Job API

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

  • ユーティリティAPI

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