HQueueの紹介【Houdini17.5対応版】


この記事では、Houdiniに標準で搭載されているHQueueというジョブ管理システムについて、簡単な概要を紹介します。

ここではHoudini17.5.260現在の内容について御紹介をさせて頂きます。

HQueueとは、レンダリングやシミュレーションなどのHoudini上から行うの処理を、レンダーファームなどのリモートクライアントに配布、実行させるためのジョブ管理システム(ディスパッチャー)です。また、これまではHoudini以外のジョブを配布するにはカスタマイズが必要でしたが、PDGを利用することで、Houdini以外のジョブも振り分けができるようになりました。

 

HQueueの構成

HQueueはクライアントサーバシステムを採用しており、アーティストなどの作業者は、まずHQueueサーバにジョブを投入します。
その後、HQueueサーバが自動的にジョブをHQueueクライアントに送信し、実際のデータを共有フォルダに保存します。
そして、レンダーファームとなる、HQueueクライアントは受け取ったジョブに従って共有フォルダからデータを、ライセンスサーバからHoudiniやMantraのライセンスを取得してジョブの実行を行い、その結果をHQueueサーバに送信します。

  • ジョブ投入マシン
    実際にアーティストが作業を行うマシンです。
  • HQueueサーバ
    ジョブを最初に受け取り、その管理を行います。
  • HQueueクライアント
    HQueueサーバからの命令でジョブを実際に実行します。
    こちらは1クライアントごとにジョブの実行に必要なライセンスを消費します。
  • 共有フォルダ
    ジョブに含まれるデータを格納するリポジトリです。HQueueサーバマシンと同一にすることもできますし、
    別途NASサーバを利用することもできます。
  • ライセンスサーバ
    各種ライセンスがインストールされているサーバです。
    現在Houdiniをご利用されている場合は、既に設定されているものですので、この記事では省略します。

 

利用の流れ

HQueueの簡単な利用手順は以下のようになります。

  1. 【設置場所のネットワークの確認及び、各種サーバの設置】
    HQueueサーバ、共有フォルダサーバ、HQueueクライアント
    マシンをネットワーク上に設置します。

  2. 【HQueueのインストール/マシン設定】
    手順に従ってインストールを行い、ネットワークの設定を行います。

  3. 【Houdini上でHQueueノードを作成し設定を行う】
    構築したHQueueの情報をノードに記述します。

  4. 【ジョブを送信し、クライアントに実行させる】
    (クライアントマシンは起動しているマシンしか認識されません)

  5. 【結果のフィードバック】
    作成された結果を受け取ります。ジョブが失敗した場合はWebインターフェイスよりログを取得します。

 

ライセンスの消費について

HQueue自体はライセンスを消費しません
HQueueサーバ、及びクライアントは起動させた時点では、何かのライセンスを消費することはありません。

しかし、Houdiniのシミュレーションを実行すれば、シミュレーションを実行している間だけ、実行しているクライアント分のHoudiniライセンスを消費します。
消費するライセンスの優先度は Houdini Engine ->  Houdini FX -> Houdini Coreの順になります。

同様に、レンダリングであれば、同様のタイミングでレンダラのライセンスを消費します。

Houdiniライセンスを利用しない、IFDファイルからのレンダリングであれば、当然Mantraライセンスのみの消費になります。
レンダリングにおけるライセンス消費につきましては、こちらのページをご参照ください。

このように、HQueueでは、他社のディスパッチャーとは異なり、ジョブの配布及び実行を行うためのライセンスは存在せず、
クライアント側で処理に必要なライセンスのみが消費される仕組みとなります。

ただし例外として、PDGを利用してジョブを分散している場合、分散した全てのクライアントでPDGのライセンスが必要になります。消費するライセンスの優先度はPilotPDG -> Houdini Engine -> Houdini Core -> Houdini FX の順になります。

また、PDGでMaya/Houdiniサーバやレンダリングの処理を分散している際は、別途利用するタイミングでそのライセンスを消費することになります。