Houdini 20.0 HQueue

HQueueについて

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

On this page

概要

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

マシン構成

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

  • HQueueサーバー

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

  • HQueueクライアント

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

  • ワークステーション

    これらのマシンは、ユーザがインタラクティブなHoudiniや非グラフィカルなHoudiniまたは他のアプリケーションを使ってジョブを投入します。 これらのマシンからジョブがHQueueサーバーに投入され、そのHQueueサーバーがそのジョブをクライアントに分散します。

  • 共有フォルダサーバー

    このマシンはファームのストレージバックエンドの役割をし、その典型がファーム内でどのマシンからもアクセス可能な共有ネットワークフォルダまたはネットワークドライブです。 ワークステーションは、ジョブ実行時にクライアントマシンで読み込まれる共有フォルダに入力ファイルを転送します。 さらにクライアントマシンは、ワークステーションからアクセス可能な共有フォルダに出力ファイルを書き出します。

  • Houdiniライセンスサーバー

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

動作の仕組み

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ライセンスが必要です。 KarmaレンダージョブにはKarmaライセンスが必要です。 .hipファイルをクックする他のレンダージョブは、Houdini Engineライセンス(または、それと同等以上のライセンス)が必要です。

HQueue

はじめよう

  • HQueueについて

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

  • インストール

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

  • 設定

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

  • ジョブを投入する方法

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

ファームの管理

  • ジョブの管理

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

  • クライアントの管理

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

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

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

  • ネットワークフォルダ

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

  • リソース

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

  • ノート

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

次のステップ

  • ログ

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

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

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

  • FAQs

    よくある質問の回答。

導師レベル

  • Remote API

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

  • ジョブの仕様の詳細

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

  • 複数クライアント、単一マシン

    単一マシン上で複数のHQueueクライアントを走らせる方法を説明したガイド。