View a markdown version of this page

任務範本的任務區塊 - 截止日期雲端

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

任務範本的任務區塊

轉譯和模擬任務通常比處理每個影格需要更多的時間載入應用程式和場景檔案。當任務執行每個任務一個影格時,每個影格都會重複載入時間。任務區塊會將多個任務分組為稱為區塊的單一工作單位,因此應用程式會為每個區塊載入一次,而不是每個影格載入一次。當載入時間長於處理每個影格的時間,例如載入幾分鐘,然後在幾秒鐘內轉譯每個影格的場景,區塊有助於大多數。

如果您要從截止日期 10 遷移,任務區塊會取代截止日期 10 提交者中每個任務設定的影格,也稱為區塊大小。

任務區塊是名為 的 Open Job Description (OpenJD) 延伸模組TASK_CHUNKING。在使用 延伸模組的任務範本中,您可以定義類型為 的任務參數CHUNK[INT]。當任務執行時,Deadline Cloud 會將一系列的值分派給每個任務,而不是單一值,而且指令碼中的{{Task.Param.Frame}}變數會擴展到範圍表達式,例如 1-10。您的指令碼會將該範圍傳遞給應用程式。如需完整規格,請參閱 RFC 0001:GitHub 上的任務區塊。 GitHub

若要使用任務區塊,請做出兩個決策:

  • 範圍限制 – 選擇應用程式接受開始和結束影格引數CONTIGUOUS的時間。然後,每個區塊都是連續的範圍,例如 1-10。選擇應用程式接受任意影格清單NONCONTIGUOUS的時間。區塊接著可以涵蓋稀疏的影格集,例如 1-3,5,7-20:2,這在轉譯挑選影格時非常有用。

  • 區塊大小defaultTaskCount 欄位會為每個區塊設定固定的影格數。如果區塊太小,負載時間會主導,而且任務執行效率不佳。如果區塊太大,則任務無法在更大的機群之間平衡工作。若要避免手動調校值,請設定選用targetRuntimeSeconds欄位。Deadline Cloud 接著會根據已完成區塊的觀察執行時間,針對該目標執行時間調整區塊大小。

區塊大小也會限制平行處理。步驟為每個區塊產生一個任務,大約是影格計數除以區塊大小,而每個任務會在一個工作者上執行。下表顯示區塊大小如何限制可以平行處理 100 個影格任務的工作者數量。

任務中的影格 區塊大小 任務 (平行工作者上限)
100 1 100
100 10 10
100 50 2

如果區塊大小大於影格計數除以可用工作者的數量,有些工作者會保持閒置。當您設定 時targetRuntimeSeconds,Deadline Cloud 會針對目標執行時間調整區塊大小,以平衡此取捨。

區塊任務與one-frame-per-task任務有兩種不同。在截止日期雲端監視器中,步驟的任務清單會顯示每個區塊的一個任務,由其影格範圍識別。當您下載區塊任務中單一任務的輸出時,Deadline Cloud 會下載整個區塊的輸出。例如,如果 Deadline Cloud 將影格 1-10 一起處理為區塊,則下載影格 3 的輸出會下載所有影格 1-10。下載區塊輸出需要 0deadline-cloud.53.3 版或更新版本。

如需任務區塊的詳細資訊,請參閱下列主題: