On this page

このセクションでは、HQueueリソースを管理する方法について説明します。HQueueはリソース情報を利用して、(ジョブ仕様で指定された)HoudiniライセンスまたはRenderライセンスなどのリソースを要するジョブのスケジュールを決定します。

Houdiniリソース

HOUDINI RESOURCES セクション( RESOURCES ページに進んで、"Manage Resources"ボタンをクリック)下のリソース管理のページ上で、Houdiniリソース、つまりHoudiniライセンスまたはRenderライセンスを管理することができます。ファーム上で利用可能なHoudiniライセンスとRenderライセンスの数を指定することができます。HQueueは、使用するのに必要なライセンスが最低でも1本利用可能である時にのみ、それらのライセンスを要するジョブのスケジュールを立てます。例えばHoudiniライセンスが5本あるとすると、HQueueは、未使用ライセンスが最低でも1本ある場合、または、既にライセンスを使用しているマシン上で他のジョブを実行できる場合にのみ、Houdiniライセンスを要するジョブのスケジュールを立てます。HoudiniライセンスとRenderライセンスは"マシン毎のリソース"です。つまり、ジョブ毎に1ライセンスではなくて、マシン毎に1ライセンスを消費します。マシン毎のリソースに関する詳細は、カスタムリソースを参照してください。

Note

Houdiniリソースの数を減らすために、その新しい数を、現在使用されているリソース数よりも少なくしてはいけません。現在使用されているリソース数は、"Amount in Use"項目下の RESOURCES ページに表示されます。

カスタムリソース

HQueueを使ってカスタムリソースを登録することで、共有ファームリソース(例えば、サードパティーのソフトウェアライセンス、ネットワークファイルなど)へのアクセスを管理することができます。 これによって、特定の時間に共有リソースにアクセスするジョブの数を制限する制御が可能になります。

ジョブ毎のリソース vs マシン毎のリソース

ジョブ毎のリソースとは、ジョブ毎に消費されるリソースを意味します。例えば、データベースに複数のジョブが接続されていて、同時接続の数を制限したいと仮定します。 それをするには、それらの接続を表現したジョブ毎のリソースを独自に作成し、その接続の名前を"db_connection"にして、その制限数を例えば5にすることができます。次に、ジョブ仕様に"resources": {"db_connection": 1}プロパティを追加すれば、最大5個のジョブが同時に実行されます。

それに対し、マシン毎のリソースとは、マシン毎に消費されるリソースを意味します。例えば、Houdiniライセンスはマシン毎のリソースです。つまり、あるマシンがHoudiniライセンスを要するジョブを実行していたとしても、そのマシンでは追加でHoudiniライセンスを必要とすることなくHoudiniライセンスを要する他のジョブを実行することができます。マシン毎のリソースとジョブ毎のリソースの違いに応じて、ジョブはマシン毎のリソースでは1つのリソースだけ必要とすると同時に、ジョブ毎のリソースを1つ以上のリソースを取得できることを暗黙的に想定しています。

カスタムリソースを追加する方法

HQueueにカスタムリソースを追加するには、リソース管理のページ(http://<server_name>:5000/resources/view)に進んで、 CUSTOM RESOURCES 下の Add をクリックします。該当するフィールドにリソース名とリソース数を指定します。そのリソースがマシン毎のリソースであれば、"Per machine resource"の隣にあるチェックボックスを選択します。そのカスタムリソースの詳細を指定した後に、 CUSTOM RESOURCES 下の Save ボタンをクリックすれば、その新しいリソースが保存されます。

カスタムリソースを要するジョブを指定する方法

前のセクションで追加したカスタムリソースの名前は、ジョブがカスタムリソースを必要とすることを示したジョブ仕様のプロパティの一部として使用することができます。それを行なうには、ジョブの"resources"プロパティに辞書を指定します。この辞書は、キーがリソース名、値がそれに必要なリソース数です。以下のサンプルでは、ジョブ仕様の中の"Custom_resource_1"というカスタムリソースを使用したジョブを指定する方法を説明しています。

job_spec = { 
    "name": "Hello World",
    "shell": "bash",
    "command": 'echo "Hello World"'
    "resources": {"Custom_resource_1": 1}
}

このサンプルでは、"Hello World"というジョブを定義しています。このジョブは、Bashシェルを使ってコマンドセットを実行します。このジョブの"resources"プロパティに辞書を割り当てることで、そのジョブには"Custom_resource_1"というカスタムリソースが必要になります。この辞書は、キーと値の組で構成し、キーがリソース名、値がそれに必要なリソース数です。この場合では、サンプルのジョブは"Custom_resource_1"リソースを1個必要とします。複数のリソースを必要とするジョブに関しては、その辞書に対してそのジョブが要するリソースのキーと値の組を追加すれば良いだけです。ジョブの仕様と利用可能なプロパティに関する詳細は、ジョブのプロパティのページを参照してください。

カスタムリソースを修正する方法

CUSTOM RESOURCES セクション下のリソース管理のページ上でカスタムリソースを修正することができます( RESOURCES ページに進んで、"Manage Resources"ボタンをクリックします)。該当するフィールドを編集することで、リソース名、リソース数、リソースをマシン毎のリソースにするかどうかを修正することができます。

Note

Houdiniリソースの数を減らすために、その新しい数を現在使用されているリソースの数よりも少なくしてはいけません。現在使用されているリソース数は、"Amount in Use"項目下の RESOURCES ページに表示されます。

さらに、リソースをマシン毎のリソースからジョブ毎のリソースに切り替えたい場合(その逆も然り)、そのリソースは使用中であってはいけません。つまり、修正するリソースを必要とするジョブが実行中または停止中であってはいけません。

HQueue