View a markdown version of this page

ジョブテンプレートの式 - Deadline クラウド

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

ジョブテンプレートの式

ジョブテンプレートは、{{ }}形式文字列を使用して、ジョブ名、コマンド、引数、埋め込みファイルに値を挿入します。Open Job Description のEXPR拡張では、 内のテキスト{{ }}は式です。式は、 などのプレーンリファレンスにすることも{{Param.Name}}、算術、比較、if/else 条件、文字列とパスのオペレーション、およびリストの理解度で値を計算することもできます。構文は Python のサブセットです。

式は、ユーザーが送信するパラメータとアプリケーションが受け入れるコマンドラインの間のグルーです。GiB のメモリ要件は、ホスト要件が想定する MiB になります。フレーム範囲パラメータは、開始フレーム引数と終了フレーム引数になります。ファイルシーケンスパターンは、タスクのフレームのファイルになります。フラグは、ブールパラメータが設定されている場合にのみ引数リストに表示されます。式は、 で説明されているブール型、リスト型、フレーム範囲型など、すべてのジョブパラメータタイプで機能しますジョブパラメータタイプ。詳細な仕様については、GitHub ウェブサイトの Open Job Description 式の言語を参照してください。

次の例は、一般的な式を示しています。それぞれがジョブテンプレート内の 1 つの形式の文字列です。

式 その内容
{{ Param.WorkerMemoryGiB * 1024 }} ユーザーが GiB で入力するメモリ要件を、amount.worker.memoryホスト要件が想定する MiB に変換します。
{{ Param.InputSequence.with_number(Task.Param.Frame) }} などのファイルシーケンスパターン/data/timestep_####.h5、または などのシーケンスの最初のファイルを/data/timestep_0001.h5、フレーム 72 のタスクのフレーム/data/timestep_0072.h5の ファイルに変換します。
{{ 64 if Param.Precision == 'fp16' else 16 }} 許可された値を持つ文字列パラメータに基づいてバッチサイズを選択します。
{{ '--gpu' if Param.UseGpu else null }} ブールパラメータが true の場合に --gpu引数を追加します。式がargsリストnull内の に評価されると、Deadline Cloud は引数を完全に省略します。
{{ repr_sh(Param.InputFile) }} ファイル名のスペースと特殊文字が安全になるように、bash スクリプトのパスを引用符で囲みます。
{{ Param.Cameras.join(',') }} シーンでレンダリングするカメラなどのLIST[STRING]パラメータをカンマ区切りの文字列に結合します。

Deadline Cloud は、ジョブの送信時に式をチェックします。すべての式を解析し、参照される各パラメータが存在することを確認し、宣言されたパラメータタイプに対してオペレーションを型チェックします。スペルミスのあるパラメータ名または整数で と呼ばれる文字列メソッドは、ワーカーがタスクを取得する前に、エラーを指すメッセージで送信に失敗します。

式は決定論的で自己完結型です。ユーザー定義の関数はありません。式はファイルを読み取ったり、ネットワークに到達したり、環境変数を検査したりできないため、テンプレートの動作はパラメータ値にのみ依存します。

評価には、メモリとオペレーション数の制限も固定されています。これらの制限はテンプレートロジックに十分大きく、ジョブの作成中にテンプレートが無制限のリソースを消費するのを停止します。

テンプレートは、 EXPRにリストすることで式にオプトインしますextensions。拡張機能のないテンプレートでは、 は などのパラメータリファレンスのみ{{ }}を受け入れます{{Param.Frames}}。

式とスクリプトのどちらを使用するかを決定するには、ロジックが属する場所を検討してください。式は、パラメータ値とコマンドライン間のグルーに適した選択肢です。式を使用して、数値の計算、パスの取得、2 つの値からの選択、引数の包含または除外を行います。ファイルシステムを検査したり、アプリケーションを呼び出したり、カスタムロジックで結果を反復したりする必要がある場合は、そのロジックをステップのスクリプトに配置します。スクリプトは、式の結果を引数として受け取ることができます。

式の詳細については、以下のトピックを参照してください。