View a markdown version of this page

ジョブテンプレートのタスクチャンキング - Deadline クラウド

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ジョブテンプレートのタスクチャンキング

レンダリングジョブとシミュレーションジョブは、多くの場合、各フレームを処理するよりもアプリケーションとシーンファイルのロードに時間がかかります。ジョブがタスクごとに 1 フレームを実行すると、そのロード時間はフレームごとに繰り返されます。タスクチャンキングは、複数のタスクをチャンクと呼ばれる 1 つの作業単位にグループ化するため、アプリケーションは、フレームごとに 1 回ではなく、チャンクごとに 1 回ロードします。チャンキングは、ロード時間が各フレームの処理時間に対して長い場合に役立ちます。たとえば、 が数分ロードしてから、各フレームを秒単位でレンダリングするシーンなどです。

Deadline 10 から移行する場合、タスクチャンキングは、Deadline 10 送信者のチャンクサイズとも呼ばれるタスク設定ごとのフレームを置き換えます。

タスクチャンキングは、 という名前の Open Job Description (OpenJD) の拡張機能ですTASK_CHUNKING。拡張機能を使用するジョブテンプレートでは、タイプ のタスクパラメータを定義しますCHUNK[INT]。ジョブが実行されると、Deadline Cloud は 1 つの値ではなく各タスクに値の範囲をディスパッチし、スクリプトの {{Task.Param.Frame}}変数は などの範囲式に展開されます1-10。スクリプトはその範囲をアプリケーションに渡します。詳細な仕様については、GitHub の「RFC 0001: タスクチャンキング」を参照してください。

タスクチャンキングを使用するには、次の 2 つの決定を行います。

  • 範囲制約 – アプリケーションが開始フレーム引数と終了フレーム引数を受け入れるCONTIGUOUS場合に選択します。すべてのチャンクは、 などの連続した範囲になります1-10。アプリケーションが任意のフレームリストを受け入れるNONCONTIGUOUSタイミングを選択します。その後、チャンクは などのスパースフレームセットをカバーできます。1-3,5,7-20:2これは、ピックアップフレームをレンダリングするときに便利です。

  • チャンクサイズdefaultTaskCountフィールドは、チャンクごとに固定数のフレームを設定します。チャンクが小さすぎると、ロード時間が優先され、ジョブが非効率的に実行されます。チャンクが大きすぎる場合、ジョブはより大きなフリート間で作業のバランスを取ることはできません。手動で値をチューニングしないようにするには、オプションの targetRuntimeSecondsフィールドを設定します。Deadline Cloud は、完了したチャンクの観測されたランタイムに基づいて、そのターゲットランタイムに合わせてチャンクサイズを調整します。

チャンクサイズは並列処理も制限します。ステップは、チャンクごとに 1 つのタスクを生成します。これは、およそフレーム数をチャンクサイズで割ったもので、各タスクは 1 つのワーカーで実行されます。次の表は、チャンクサイズが 100 フレームジョブを並行して処理できるワーカーの数を制限する方法を示しています。

ジョブのフレーム チャンクサイズ タスク (最大並列ワーカー)
100 1 100
100 10 10
100 50 2

チャンクサイズがフレーム数を使用可能なワーカー数で割った値より大きい場合、一部のワーカーはアイドル状態のままになります。を設定するとtargetRuntimeSeconds、Deadline Cloud はチャンクサイズをターゲットランタイムに合わせて調整することで、このトレードオフのバランスを取ります。

チャンクジョブは、2 つの点でone-frame-per-taskジョブとは異なります。Deadline Cloud モニターでは、ステップのタスクリストに、そのフレーム範囲によって識別されるチャンクごとに 1 つのタスクが表示されます。チャンクジョブ内の 1 つのタスクの出力をダウンロードすると、Deadline Cloud はチャンク全体の出力をダウンロードします。例えば、Deadline Cloud がフレーム 1~10 をチャンクとしてまとめて処理した場合、フレーム 3 の出力をダウンロードすると、すべてのフレーム 1~10 がダウンロードされます。チャンク出力をダウンロードするには、deadline-cloudバージョン 0.53.3 以降が必要です。

タスクチャンキングの詳細については、以下のトピックを参照してください。