Houdini 18.5 HQueue

HQueueについて

HQueueは多目的なジョブ管理システムです。このシステムを利用することで、レンダリング、シミュレーション、他の処理をリモートクライアント上に分散させることができます。

On this page

Note

現在のところ、HQueue ServerとHQueue ClientのPython3実装は利用不可です。 しかし、Houdini Python3ビルドからジョブを投入し、HQueue Python2ファーム上のジョブでHoudini Python3を実行することができます。

概要

HQueueは演算ノードの集合体やクライアントマシンにわたってタスクの分散、モニター、管理をする多目的なジョブ管理システムです。これはHoudiniからサブミットされたレンダリングとダイナミックシミュレーションのジョブに特化していますが、任意のアプリケーションからのジョブを扱えるようにカスタマイズすることもできます。

マシン構成

HQueueファームの主なマシン構成は以下の通りです:

  • HQueueサーバー

    このマシンは、全体のシステムの心臓部になるHQueueサーバープロセスを実行します。 サーバーはジョブを他のマシンに分散したり、Webインターフェースを提供したり、ジョブのスケジュールデータを保存します。

  • HQueueクライアント

    これらのマシンは、HQueueクライアントプロセスを実行します。 クライアントはサーバーが割り当てたジョブを受け取って実行します。HQueueクライアントは、クライアントマシン、演算ノード、レンダーノードとも呼ばれています。

  • ワークステーション

    これらのマシンは、ユーザがインタラクティブにHoudiniを使ってジョブを投入します。 ジョブはHQueueサーバーに送信されてから、クライアントに分散されます。

  • 共有フォルダサーバー

    このマシンはネットワークで共有されたフォルダ(ドライブ)を提供します。 ワークステーションは、ジョブ実行時にクライアントマシンで読み込まれる共有フォルダに入力ファイルを転送します。 さらにクライアントマシンは、ワークステーションからアクセス可能な共有フォルダに出力ファイルを書き出します。

  • Houdiniライセンスサーバー

    このマシンは、ワークステーション上のインタラクティブなHoudini、クライアントマシン上の非インタラクティブなHoudiniとMantra、それらを実行するのに必要なライセンスを提供します。

動作の仕組み

HQueueの動作の仕組みを理解する最も簡単な方法は、Mantraレンダリングジョブの分散といった典型的なワークフローを経験することです:

  1. ワークステーションはHQueueサーバーにジョブをサブミットします。

    ワークフローはワークステーションから始まります。アーティストがHoudiniでシーンを作成して、シーンのレンダリングの準備が完了したら、アーティストはHQueue Rendr ROPを使ってHQueueサーバーにレンダリングジョブをサブミットします。またHQueue Render ROPはシーンファイル(.hip)とそれに関連するファイルを共有フォルダにコピーします。

    この時点で、アーティストはHQueueのWebインターフェースをWebブラウザで開いてジョブの進捗状況をモニターすることができます。

  2. HQueueサーバーはジョブをクライアントマシンに割り当てます。

    HQueueサーバーはジョブを分析して次に利用可能なクライアントマシンにジョブを割り当てます。クライアントマシンはHQueueサーバーと通信してジョブを取得します。

  3. クライアントマシンはジョブを実行して、作業をより細かいタスクに分けます。

    クライアントマシンはジョブの実行を開始して、共有フォルダから入力ファイルを読み込みます。特にMantraのレンダリングジョブに関しては、クライアントは.hipファイルを読み込んでレンダリングで必要なIFDファイル(シーン記述ファイル)を生成します。それと同時に、実際にレンダリング作業を行うサブジョブや子ジョブを作成します。

    作成される子ジョブの数は、通常はレンダリングで要求されたフレーム数に基づいています。例えば、フレーム1から240までをレンダリングすると仮定すると、そのレンダリングに対応したIFDファイルから1つのフレームをレンダリングするように指示されたジョブが240個の子ジョブとして作成されます。

  4. 細かくしたタスクをHQueueサーバーに送り返し、残りのファームに分散します。

    クライアントマシンは、新しい子ジョブをHQueueサーバーに送り返して、それらのジョブがキューとしてファーム上の他の利用可能なクライアントに割り当てられます。これが複数のマシンが同じレンダリングジョブに対して作業できる仕組みになっています。

    それと同時に、最初のクライアントマシンは、残りのフレームのIFDの生成とその新しい子ジョブの作成を続けます。

  5. 細かくしたタスクを実行します。

    他のクライアントマシンは子ジョブを実行して、それと平行で共有フォルダに出力画像を書き出します。

  6. ジョブを終了します。

    すべてのジョブが完了すると、最終的なレンダリング画像が共有フォルダに作成されます。アーティストはレンダリングされた画像を見て、失敗したフレームの子ジョブを再度サブミットすることができます。シーンに変更があれば、アーティストは、すべてのレンダリングジョブを再度サブミットすることができます。

ライセンス供与

HQueueサーバーを動かすのに、ライセンスは不要です。

HQueueクライアントはHoudiniジョブを実行するのにライセンスを必要とします。 HoudiniのシミュレーションジョブとIFD生成ジョブにはHoudini Engineライセンス(または、それと同等以上のライセンス、例えばHoudini FX)が必要です。 MantraレンダージョブにはRenderライセンスが必要です。.hipファイルをクックする他のレンダージョブは、Houdini Engineライセンス(または、それと同等以上のライセンス)が必要です。

HQueue

はじめよう

  • HQueueについて

    HQueueは多目的なジョブ管理システムです。このシステムを利用することで、レンダリング、シミュレーション、他の処理をリモートクライアント上に分散させることができます。

  • インストール

    基本的なHQueueファームのセットアップ方法。

  • 設定

    HQueueサーバーとクライアントのオプションを設定する方法。

  • ジョブを投入する方法

    ファーム上にワークを配置する方法。

ファームの管理

  • クライアントの管理

    ウェブインターフェースまたはローカルログインを使って、クライアントマシンを追加/削除/再起動/管理する方法。

  • ジョブの管理

    ファーム上のジョブを閲覧/管理する方法。

  • クライアントグループの管理

    ウェブインターフェースまたはローカルログインを使って、クライアントマシンのグループを作成/管理する方法。

  • ノート

    各クライアントとジョブには、情報を記載したノートを添付することができます。

  • リソース

    各クライアントで利用可能なリソース(例えば、ライセンス)を指定することができるので、そのジョブを実行可能なクライアントに対してそのジョブのスケジュールを組むことができます。

  • ネットワークフォルダ

    Network Folder管理ページの使い方。

次のステップ

  • ログ

    HQueueサーバーはエラーとスケジュールイベントのログを別々に記録し、各クライアントもログを生成します。

  • アンインストールする方法

    HQueueサーバーまたはクライアントのソフトウェアをアンインストールする方法。

  • FAQs

    よくある質問の回答。

導師レベル

  • Remote API

    ネットワーク上のHQueueサーバーに接続して関数をコールすることで、ジョブや他の情報を制御したり照会することができます。

  • ジョブの仕様の詳細

    独自のジョブを投入したいユーザ向けに、ジョブの内部仕様に関する詳細を載せています。

  • MySQLに切り替える方法(Linuxのみ)

    LinuxではSQLiteの代わりにオプションでMySQLを使用するようにHQueueを設定することができます。