共用方式為


job add

建立新的工作,並將它新增至指定的作業。

如需如何使用此指令的範例,請參閱 範例

語法

job add <jobId> [/depend:<task_name_list>] [/env:<variable_and_value_list>]   
[/exclusive[:{true|false}]] [/name:<task_name>]   
{[/numcores:<min>[-<max>]] | [/numnodes:<min>[-<max>]] |   
[/numprocessors:<min>[-<max>]] | [/numsockets:<min>[-<max>]]}   
[/parametric:<index_specification>] [/requirednodes:<node_list>]   
[/rerunnable[:{true|false}]] [/runtime:{<time>|Infinite}]   
[/scheduler:<name>] [/stderr:[<path>\]<file_name>]   
[/stdin:[<path>\]<file_name>] [/stdout:[<path>\]<file_name>]   
[/taskfile:<path>\<file_name>] [/type:<type_name>]  
[/validexitcodes:{<int>|<intStart>..<intEnd>}[,{<int>|<intStart>..<intEnd>}]*]  
[/workdir:<folder>] <command> [<parameters>]  
  
job add {/? | /help}  
  

參數

參數 描述
<jobID> 指定您要新增工作之作業的作業標識碼。
/depend:<task_name_list> 指定新工作相依之指定作業中的一或多個工作名稱清單。 清單的格式應為 <task_name1>[,<task_name2>...]。除非 / depend 參數指定完成執行的所有工作,否則新工作可能不會啟動。 提示: 單一 <task_name> 代表作業內的一或多個工作,其中所有工作都已指派 <task_name>。
/env:<variable_and_value_list> 指定要在工作運行時間環境中設定的環境變數清單,以及要指派給這些環境變數的值。 清單的格式應該是 <variable_name1>=<value1> [;<variable_name2>=<value2>...]。

或者,您可以藉由包含多個 /env 參數來設定多個環境變數。 每個都必須是具有 <variable_name>=<值>格式的不同自變數。

若要取消設定環境變數,請勿指定值。 例如,<variable_to_unset_name>=。
/exclusive[:{true|false}] 指定 HPC 作業排程器服務是否應該確保此工作執行時,沒有其他工作在與這項工作相同的節點上執行。

True 值表示 HPC 作業排程器服務應該確保此工作執行時,不會在相同的節點上執行其他工作。

False 的值表示此工作可以與其他工作共用計算節點。

當您指定不含值的 /exclusive 參數時,作業新增 命令的行為就如同您指定了 True 值一樣。 如果您未指定 /exclusive 參數,作業新增 命令的行為就如同您指定了 False 值一樣。
/name:<task_name> 指定要在命令輸出和使用者介面中用於這項工作的名稱。 名稱的最大長度為80個字元。 此參數沒有預設值。 提示: 單一 <task_name> 代表作業內的 1 或多個工作,其中所有工作都已指派 <task_name>。 警告: 如果這個 task_name 要與 /depend /depend 參數搭配使用,則 task_name 不應包含逗號或空格。
/numcores:<min>[-<max>] 指定工作所需的 HPC 叢集核心總數,格式 <最低>[-<最大>]。 工作至少會在核心數目下限且不超過最大值時執行。 如果您只指定一個值,此命令會將核心數目上限和最小值設定為該值。 如果您指定了超過叢集可用核心總數的最小值,當您提交作業或已提交工作時,就會發生錯誤。

最小值和最大值只能是正整數。

只有在作業的 UnitType 是核心時,才會使用 /numcores

如果您未指定 /numcores/numnodes/numprocessors/numsockets 參數,HPC 作業排程器服務會配置一個 UnitType,如作業所定義。
/numnodes:<min>[-<max>] 指定工作所需的 HPC 叢集節點總數,格式 <最低>[-<最大>]。 工作至少會在節點數目下限上執行,且不超過最大值。 如果您只指定一個值,此命令會將節點數目上限和最小值設定為該值。 如果您指定超過叢集可用節點總數的最小值,當您提交工作或包含工作的作業時,就會發生錯誤。

最小值和最大值只能是正整數。

只有在作業的 UnitType 是節點時,才會使用 /numnodes

如果您未指定 /numcores/numnodes/numprocessors/numsockets 參數,HPC 作業排程器服務會配置一個 UnitType,如作業所定義。
/numprocessors:<min>[-<max>] 已取代。 請改用 /numcores 參數。
/numsockets:<min>[-<max>] 指定工作所需的 HPC 叢集套接字總數,格式 <最低>[-<最大>]。 工作至少會在套接字數目下限且不超過最大值時執行。 如果您只指定一個值,此命令會將套接字的最大值和最小值設定為該值。 如果您指定超過叢集可用套接字總數的最小值,當您提交工作或包含工作的作業時,就會發生錯誤。

最小值和最大值只能是正整數。

只有在作業的 UnitType 為套接字時,才會使用 /numsockets

如果您未指定 /numcores/numnodes/numprocessors/numsockets 參數,HPC 作業排程器服務會配置一個 UnitType,如作業所定義。
/parametric:<index_specification> 指出新工作是參數式工作。 參數工作會多次執行指定的命令,並在命令列中取代星號的目前索引值 。 在 /stdin/stdout和 /stderr 參數中指定時,也會取代星號。 此參數的索引規格會定義索引值的行為。 索引規格的格式為 [<start>-]<end>[:<increment>]。

目前的索引值會從起始索引開始,並在命令執行的每個後續時間增加遞增值。 當目前的索引超過結束索引時,工作會停止執行 命令。

起始索引必須小於結束索引,而遞增值必須是正整數。 如果您未指定遞增值,預設值為 1。 如果您未指定起始值,預設值為 1。 如果您指定遞增值,您也必須指定起始值。

從 Microsoft HPC Pack 2008 R2 開始,如果您以 ParametricSweep 其他值指定 /type 參數,則也無法指定 /parametric 參數。
/requirednodes:<node_list> 指定工作必須執行的節點清單,格式為 <node1_name>[,<node2_name>...]。 HPC 作業排程器服務會獨佔配置此清單中的所有節點來執行工作。
/rerunnable[:{true|false}] 指定如果工作執行且失敗,HPC 作業排程器服務是否嘗試重新執行工作。

True 值表示如果工作已先佔,或因為叢集問題而失敗,HPC 作業排程器服務可能會嘗試重新執行工作,例如無法連線到節點。 作業排程器不會嘗試重新執行執行以完成的工作,並傳回失敗結束代碼的 。

False 值表示如果工作開始,但因先占或叢集問題而未完成,HPC 作業排程器服務不應該嘗試重新執行工作。 相反地,它應該會立即將工作移至失敗的狀態。

叢集管理員可以設定 HPC 作業排程器服務在將工作移至失敗狀態之前嘗試重新執行工作的次數。

如果您未指定 /rerunnable 參數,命令的行為就如同您指定了 True 的值一樣。
/runtime:{<time>|Infinite} 指定工作應該執行的時間上限。 在工作執行此時間之後,HPC 作業排程器服務會取消工作。 您可以使用 [[<天>:]<小時>:]<分鐘>的格式指定時間量。 您也可以指定 Infinite,指出工作可以無限時間執行。

如果您只指定 [[<天>:]<小時>:]<分鐘> 格式,命令會將指定的值解譯為分鐘數。 例如,12 表示 12 分鐘。 如果您指定格式的兩個部分,命令會將左邊部分解譯為小時,並將右邊部分解譯為分鐘數。 例如,10:30 表示 10 小時 30 分鐘。

您可以針對格式的每個部分使用一或多個數位。 每個元件的最大值為 2,147,483,647。 如果您未指定 /runtime 參數,預設值為 Infinite。
/scheduler:<名稱> 指定包含您要新增工作之作業之叢集前端節點的主機名或IP位址。 此值必須是有效的計算機名稱或IP位址。 如果您未指定 /scheduler 參數,此命令會使用CCP_SCHEDULER環境變數所指定前端節點上的排程器。
/stderr:[<路徑>\]<file_name> 指定工作應該重新導向標準錯誤數據流的檔名,包括完整路徑或相對於檔案工作目錄的路徑,如果工作不應該將標準錯誤數據流重新導向至工作目錄中的檔案。 如果您指定不存在的路徑,工作就會失敗。

如果您未指定 /stderr 參數 ,工作會在 HPC 作業排程器服務的資料庫中儲存最多 4 KB 的數據,工作指定之 output 屬性。 任何超過 4 KB 的輸出都遺失。

此參數的最大長度為160個字元。
/stdin:[<路徑>\]<file_name> 指定工作應該接收標準輸入的檔名,包括工作不應該從工作目錄中的檔案接收標準輸入時,相對於檔案工作目錄的完整路徑或路徑。 如果您指定不存在的檔案或路徑,工作就會失敗。

此參數的最大長度為160個字元。
/stdout:[<路徑>\]<file_name> 指定工作應該重新導向標準輸出的檔名,包括當工作不應該將標準輸出重新導向至工作目錄中的工作目錄時,相對於檔案的完整路徑或路徑。 如果您指定不存在的路徑,工作就會失敗。

如果您未指定 /stdout 參數 ,工作會將最多 4 KB 的數據儲存在 HPC 作業排程器服務的資料庫中,輸出 屬性指定。 任何超過 4 KB 的輸出都遺失。

此參數的最大長度為160個字元。
/taskfile:<路徑>\<file_name> 指定要從中讀取工作設定之工作 XML 檔案的名稱,如果檔案不在目前目錄中,則包含檔案的完整或相對路徑。 您必須為 /taskfile 參數指定工作 XML 檔案,其中包含 CommandLine 屬性的值,或指定命令或應用程式名稱和選擇性參數。
/type:<type_name> 指定工作的型別,這個類型會定義如何執行工作的命令。 以下是您可以指定的類型:

基本-
執行序列應用程式或訊息傳遞介面 (MPI) 應用程式的單一實例。 MPI 應用程式通常會在多個核心上同時執行,而且可以跨越多個節點。

NodePrep -
在配置給作業的每個計算節點上執行命令或腳本。 節點準備工作會在作業的任何其他工作之前,於節點上執行。 如果節點準備工作無法在節點上執行,該節點就不會新增至作業。

NodeRelease -
在從作業釋出時,在每個計算節點上執行命令或腳本。 節點發行工作會在使用者取消作業或正常先占時執行。 當作業立即先佔取消時,節點發行工作不會執行。

ParametricSweep -
取消命令的指定次數,如 Start、End 和 Increment 值所指示,通常跨索引的輸入和輸出檔案。 掃掠的步驟可能會或可能不會平行執行,視工作執行時 HPC 叢集上可用的資源而定。 當您指定 ParametricSweep 類型時,應該使用 /parametric 參數來指定索引的開始、結束和遞增值。 如果您未使用 /parametric 參數,命令會執行一次,索引為 0

服務-
在指派給作業的所有資源上執行命令或服務。 當新的資源新增至作業時,命令的新實例就會啟動,或者如果先前執行中的實例結束時結束,且先前執行中實例所使用的資源仍會配置給作業。 服務工作會繼續啟動新的實例,直到取消工作、運行時間上限過期,或達到實例數目上限為止。 服務工作最多可以建立1,000,000個子工作。 您透過服務導向架構 (SOA) 用戶端提交的工作會以服務工作的形式執行。 您無法將基本工作或參數掃掠工作新增至包含服務工作的作業。

除非您也指定 /參數 參數,否則此參數的預設值為 Basic。 如果您指定 /parametric 參數,/type 參數的預設值為 ParametricSweep。

如果您使用 ParametricSweep 以外的值來指定 /type 參數,則也無法指定 /parametric 參數。

此參數是在 HPC Pack 2008 R2 中引進的,無法在舊版中使用。
/validexitcodes:{<int>|<intStart>..<intEnd>}[,{<int>|<intStart>..<intEnd>}]* 指定要用於檢查工作是否成功結束的有效工作結束代碼。 /validexitcodes 必須由以逗號分隔的離散整數和整數範圍指定。

最小最大 可用來做為範圍的開始或結尾。 例如,0..max 代表所有非負整數。

如果未定義,/validexitcodes 會從作業的 /validexitcodes 參數繼承其值。 如果兩者都未定義,則預設值為 0。 注意: 這個參數是在 HPC Pack 2012 中引進,舊版不支援。
/workdir:<資料夾> 指定工作應該執行的工作目錄。

此參數的最大長度為160個字元。
<命令> [<参數>] 指定工作的命令行,包括命令或應用程式名稱和任何必要的參數。

除非在 /taskfile 工作 XML 檔案中定義,否則必須有命令才能新增工作。 除非命令包含完整路徑,否則此命令將會相對於工作目錄執行。
/? 在命令提示字元中顯示說明。
/help 在命令提示字元中顯示說明。

備註

  • 您可以將工作新增至尚未提交的作業、您提交的作業,以及目前正在佇列中等候的工作、已執行的工作,或已失敗或已取消的工作。

  • 您無法將工作新增至已完成的工作。

  • 當您將工作新增至在佇列或執行中等候的工作,以及 HPC 作業排程器服務配置給作業的資源可供使用時,工作就會開始執行。

  • 從 Microsoft HPC Pack 2008 R2 開始,您可以指定參數工作的命令行中的星號 ≦ 不應該取代為參數索引的目前值,方法是在星號前面加上三個插入號 (^) 字元。 例如,如果您使用 作業新增 命令來建立參數工作,而且您會將命令行指定為 echo *,工作會列印參數索引的值。 如果您改為使用 作業新增 命令來建立參數工作,並將命令行指定為 echo ^^^*,則工作會針對參數索引的每個值列印星號。

範例

若要將名為 My Task 的新工作新增至作業,其作業標識符為 39,其執行 hostname.exe 程式、具有 \\headnode\output 共用的工作目錄,並將標準輸出重新導向至工作目錄中名為 hostname.out 的檔案,請使用下列命令:

job add 39 /name:"My Task" /workdir:\\headnode\output share /stdout:"hostname.out" hostname.exe  

若要將新的節點準備工作新增至作業,其作業標識符為 47,執行 ver 命令,請輸入:

job add 47 /type:NodePrep ver  

若要將名為 Sweep Task 的新參數工作新增至作業,其作業標識符為 25,它會針對從 10 開始的索引執行一系列 echo * 命令,並將 2 增加至索引達到 100,並將標準輸出重新導向至 \\headnode\output share\sweepstep*.out 的一系列檔案。 使用下列命令:

job add 25 /name:"Sweep Task" /parametric:10-100:2 /stdout:\\headnode\output share\sweepstep*.out echo *  

上述範例會獨立執行下列每一個命令行:

echo 10  
echo 12  
echo 14  
...  
echo 98  
echo 100  

此參數掃掠會在 \\headnode\output 共享目錄中建立下列檔案:

  • sweepstep10.out

  • sweepstep12.out

  • ...

  • sweepstep100.out

參數掃掠會建立 45 個檔案,每個檔案都包含其索引
數。

若要建立新的作業,請將工作新增至作業,然後提交作業,請執行包含下列命令的批處理檔,它會使用 for 命令來取得新作業的標識碼:

for /f "usebackq tokens=4 delims=. " %%i in (`job new`) do (  
job add %%i echo Hello World  
job submit /id:%%i  
)  

其他參考