Job Submission
Job
我們有時會需要批次完成特定工作。特別是需要長時間運算的工作,使用者又無法一直監視著整個過程的時候,我們可以利用Job Submission創建一個Job把工作指令項目批次地加入,再將Job送出於背景執行,隨時地監視執行的過程及結果。如果我們想要的是週期性自動發動的job,我們可以利用 Job Scheduler 來創建這類型 job 及設定其週期性。
Lifetime
- job最長可以執行 24 個小時。一旦超過 24 小時後,會被中止宣告失敗。
- 結束 - job的工作日誌基本上會被保留 7 天;超過 7 天後,- job還是會在列表中,但- Logs資訊會被刪除;另外,結束- job預設只會保留 30 天,30 天後會從列表及系統中移除。- 由於 Job 容器有可能提早被其執行環境給回收,因此 - Logs有可能在 7 天內被刪除。
Job 列表
此頁列出已創建 Jobs 及其對應資訊。

列表中的Job對應資訊欄位:
| 欄位 | 描述 | 
|---|---|
| Status | 狀態, Pending,Preparing,Running,Failed,Succeeded及Cancelled | 
| Job name | 名稱 | 
| Schedule | 如果此 Job 是被 scheduler 根據排程時間發動的話,這裡會顯示 Scheduler 名稱;反之顯示 -。 | 
| User | 所有者 | 
| Group | 所屬群組 | 
| Timing | 執行時間 | 
| Action | 我們可以 
 | 
- New Job: 點擊按鈕,創建- job。
- Refresh: 點擊按鈕,刷新- job列表。
- Job namelink: 點擊名稱連結,進入 Job 詳細頁。
- Schedulelink: 點擊名稱連結,進入 Job Scheduler 詳細頁。
- Submitted by Me勾選,只列出該使用者創建的- job。
- Search job name關鍵字搜尋。
創建 Job
請確認目前預先決定的專案群組,是否為設想的群組;切換專案群組請用下拉選單 Group:。

- InstanceTypes: 選擇- job所需- instance type資源佈屬。
- Images: 選擇- job的執行環境。
- Job name: 指定- job名稱。
- Command: 指定- job批次工作項目。
Command
使用者可以在任務內執行 sudo apt <command> 安裝軟體套件。
例如:
sudo apt update
sudo apt install <package> --assume-yes
pip install <package>
Job 可存取工作目錄、專案目錄及資料集目錄
注意:Job 的預設路徑是在
/home/jovyan,但這是在 Job Pod 裡的環境,不是 JupyterHub Pod 裡! 所以 JupyterHub/home/jovyan下的其它檔案並 不存在 此時的 Job Pod 的/home/jovyan。Job 這裡只會有掛載的<group volume>及<dataset>。
| 目錄 | 描述 | 
|---|---|
| /home/jovyan | job執行時的暫存工作目錄。注意: 如果輸出 data 於此,此 data 將會著job結束而消失,只能做為暫存之用。 不再是/workingdir | 
| /home/jovyan/<group> -> /project/<group>/ | 用此路徑(或 Symbolic link),存取群組目錄,可以做為讀取及輸出常態性資料,即使 job已經結束。注意:group volume必須要事存在,請洽系統管理員。 | 
| /home/jovyan/datasets/<dataset> -> /datasets/<dataset> | 用此路徑(或 Symbolic link),存取群組資料集。注意: dataset volume必須要事先存在,請洽系統管理員。 | 
Job 可存取環境變數
| 變數名稱 | 描述 | 
|---|---|
| $PRIMEHUB_USER | Job 所有者 | 
| $PRIMEHUB_GROUP | Job 所屬群組 | 
Python command option
- python -u我們可以用- -u強制輸出訊息不經由緩衝,如此可以在- Logs看到即時訊息。 Example 1: 假設- train_mint.py事先存在名叫- research的- group volume,我們可以進- /project/research下,執行該 python file 做為一個- job。- job執行期間輸出的 data 則存在此路徑的相對位置。
cd /project/research/
python -u train_minst.py
Example 2: 如果我們直接執行下列指令,沒有變更路徑,job的工作目錄位在/home/jovyan job 執行期間輸出的 data 則會存在此路徑的相對位置。但此為暫存目錄,換而言之, 輸出在/home/jovyan的 data 資料會隨著job結束而消失。
python -u /project/research/train_minst.py
Submit: 點擊按鈕,送出工作執行。
查看 Job
在列表上點擊想要查看的job名稱,查看內容資訊及執行記錄;可以Rerun或Clone此 Job。
Panel
It shows the brief information of the job.

| Field | Description | 
|---|---|
| Status | 狀態, Pending,Preparing,Running,Failed,Succeeded及Cancelled | 
| Duration | 執行時間 | 
| Finished | 多久前結束 | 
| Schedule | 如果此 Job 是被 scheduler 根據排程時間發動的話,這裡會顯示 Scheduler 名稠;反之顯示 -;點擊名稱連結,進入 Job Scheduler 詳細頁。 | 
| User | 所有者 | 
Tabs

Information
Job記載內容資訊如下:
| Field | Description | 
|---|---|
| Message | 執行回傳訊息 | 
| Job ID | ID | 
| Job name | 名稱 | 
| Creation Time | 創建時間 | 
| Start Time | 開始時間 | 
| Finished Time | 結束時間 | 
| Group | 所屬群組 | 
| Instance type | 所佈屬 instance type資源 | 
| Image | 所屬執行環境 | 
| Command | 批次工作項目內容 | 
Artifacts
如果工作在執竹的過程中有產出資料 (Artifacts) 存放在 artifacts/,這裡會列舉出在此 PHFS 儲存空間 下的所有檔案;同時,在 Notebook 裡這些 artifacts 是位在此路徑  /phfs/jobArtifacts/job-xxxxx。請參照 Job Artifacts 初階範例。
Monitoring
此功能需要 PHFS 開啟;當 PHFS 功能未開啟時,顯示訊息 "feature not enabled, please contact admin".
監測表顯示此 Job 所用到的資源。
- 15 mins,- 1 hour,- 3 hours,- Lifetime: 選擇「最近時間區間內」顯示的數據; 15mins 顯示最近 15 分內的數據, Lifetime 顯示從開始到結束的數據。
- Overall Usage: CPU 及 Memory(MB).
- GPU Device Usage: 當此 Job 有配置到 GPU 時才顯示 GPU 及 Memory(MB)。

Logs
預設此頁只顯示最新的 2000 行資訊;按下
Download下載完整記錄。
當工作執行「成功」或「失敗」,我們可以由此查看整個執行過程、結果、甚至除錯。
當工作是被「取消」或「中止」,無法由此查到任何記錄!因為此時的 Pod 已被刪除回收。
有時,我們只想看最後的輸出結果,可以點擊Scroll to Bottom跳過攏長記錄直接到記錄尾端。
另外,由於介面上只顯示最後的 2000 行記錄,我們可以點擊Download下載完整的記錄檔來檢查。
