目次
Deadline Client のインストール
Thinkbox から取得できる Dealine Client をインストールします。
プラグインのインストール
BBJobManager-X.X.X-py27-none-any.whl の中の BBJobManager\libScheduler\Deadline\deadline8Plugins の中にカスタムプラグインがあります。 この中をすべて リポジトリの plugins ディレクトリにコピーします。
Pyton API の使用
BBJobManager は Deadline Python API を使用してジョブの管理をおこないます。 Deadline Python API を使用するためには deadlinewebservice を立ち上げ、サービスへのアクセス権の設定をおこなう必要があります。
詳細は Deadline のマニュアルを参照してください。
設定には netsh コマンドを使用します。DEADLINEUSER の部分は、deadlinewebservice を立ち上げるユーザー名を指定します。
Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\Windows\system32>netsh http add urlacl url=http://*:8082/ user=DEADLINEUSER URL 予約を正常に追加しました
これで設定は完了です。
Pool と Group
Deadline では計算機を Pool と Group という二種類の方法で管理することができます。 Pool と Group は一見すると違いが分かりにくいですが、通常使用時は Pool の管理がメインになります。
Group
インストールされているアプリケーションや OS、搭載メモリ量など計算機の設定毎に分類します。
Pool
レンダージョブがどのように実行されるかを管理します。
Pool は階層化して管理することができ、上位の Pool に登録されたジョブから優先的に実行されます。
また、下位の Pool が空いている場合、上位の Pool に登録されたジョブが下位の Pool に登録されている計算機に割り当てられます。
レンダーファームが空いている場合、最終的にはデフォルトで存在する、全ての計算機が登録されている none Pool が有効になるため、全ての計算機が処理対象になります。
上図の場合、もし ProjectB で一切ジョブが投入されていなかった場合は ProjectA で全ての計算機を使うことができます。
Pool のメンテナンス
Pool はプロジェクトの進行状況や計算機のリソースを元に、常に調整をおこないます。
ここでは、プロジェクトと、その中のタスクという2階層で管理されている場合を例に挙げて説明します。
ProjectA と ProjectB が走っていた場合、プロジェクト毎のリソースの調整はプロジェクト毎の Pool でおこないます。
プロジェクト内のリソースは、タスク毎の Pool で調整します。
ジョブ登録時の指定
ジョブを登録するときは、Pool と Group を一組で指定します。
Pool も Group も、デフォルトで全ての計算機が登録されている none という名前のものがあるので、何も指定しなければそれが使用され、全ての計算機で処理されるようになります。
例
Group に
Maya 3dsmax Houdini
Pool に
ProjectA ProjectA_render ProjectA_sim
がそれぞれ登録されていたとすると、プロジェクトA で Maya を使用してレンダリングをおこないたい場合は
- Pool : ProjectA_render
- Group : Maya
をそれぞれ指定してジョブの登録をします。
BBJobManager 上での選択
BBJobManager 上では、 Pool と Group の組み合わせをプルダウンで選びます。
最初の段階としては全ての Pool と Group の組み合わせをリストアップするようにしますが、 BBJobManager で選択しているプロジェクトを元に表示する Pool を絞るとか、選択しているテンプレートを元に Group を絞るなどしてできるだけユーザーへの負担を減らすようにしたいところです。
※Pool のフィルタリングに関しては、Pool 名がプロジェクト名に前方一致するものだけ表示するということでいい気もします。