FAQs | 容器運算服務 (CCS)
使用之前
Q1. 怎麼使用超級電腦?
Q2. 如何開始使用容器?
Q3. 容器與高速運算該如何選擇?
兩種服務皆可運行 GPU 的容器化環境:
- 若您的運算工作僅需要 8 顆 GPU 以下的計算資源,請使用容器運算服務。
- 而若需要 8 顆 以上的 GPU 資源,並希望能部署跨節點的分散式高速平行運算環境,請使用台灣杉二號 (命令列介面) 高速運算服務。
連線登入
Q1. 如何登入容器?
可以透過 SSH 或 Jupyter Notebook 連線容器,請參考連線容器。
Q2. SSH 連線至 TWSC 上的資源 CCS、VCS 和 HPC 有哪些可使用的的開源軟體?
可以使用 MobaXterm、PuTTY 和 VSCode...等第三方開源軟體。
Q3. 開發型容器 SSH 連線時顯示 Permission denied
?
Permission denied
? 可能是主機密碼輸入錯誤,請重新輸入或參考此文件至會員中心重設主機密碼。
Q4. 無法連線 Jupyter Notebook 時如何處理?
請參考以下 2 種處理方式:
- 進行以下操作將容器還原至初始狀態:
- Step 1. 參考程式執行異常的建議排除方式 清空或搬移
/home/主機帳號/.local/
目錄下之套件。 - Step 2. 進入
/home/主機帳號/.cache/
目錄,清除計算過程產生的暫存檔。 - Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
- Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔,再連線 Jupyter Notebook。
- Step 1. 參考程式執行異常的建議排除方式 清空或搬移
- 請檢查貴單位防火牆設定是否有阻擋容器使用的 port,容器 port 範圍為 50000 ~ 60000。
管理容器
Q1. 如何暫停容器?
目前系統不支援容器暫停的功能,您可依需求選擇任一節省計算成本的方案:
- 您可製作容器映像檔保留工作環境,並刪除容器,待需要使用容器時再以映像檔建立新容器。
- 您可參考此文件,編寫腳本自動執行運算、刪除容器。
Q2. 我要如何將容器還原至初始狀態?
進行以下操作即可將容器還原至初始狀態:
Step 1. 參考程式執行異常的建議排除方式 清空或搬移/home/主機帳號/.local/
目錄下之套件。
Step 2. 進入 /home/主機帳號/.cache/
目錄,清除計算過程產生的暫存檔。
Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔。
Q3. 不同容器中的環境是否也不同?
容器的儲存環境是高速檔案系統 (HFS),用戶建立不同的容器,系統皆會自動將用戶的 HFS 掛載作為容器環境。
而 HFS 空間的生命週期是隨著用戶的主機帳號,因此只要是同一用戶建立的容器,環境都是相同的 HFS 空間。
Q4. 為何容器無法刪除?
請先檢查刪除保護機制
是否被開啟,若被開啟,請於開發型容器詳細資料頁面將刪除保護機制
關閉,即可刪除該容器。
若刪除保護機制
未開啟依然無法刪除容器,請與我們的技術支援團隊或客服人員連絡。
資源配置與監控
Q1. 如何使用 8 張 GPU 以上的資源?
請改為使用 台灣杉二號 (命令列介面),使用方法可參考網路上 Horovod 和 Singularity 的使用說明文件,或參考以下的 tutorial 進行: HowTo:容器跨節點高速運算-AI Benchmark。
Q2. 如何知道容器配置的 GPU 數量?
以下兩種方式皆可查詢容器的 GPU 配置數量:
- 在 terminal 執行指令:
nvidia-smi
- 在使用者網站中,開發型容器管理頁 > 容器詳細資料頁的「基本設定」欄位即有顯示。
Q3. 在程式執行時,如何知道 GPU 使用情況?
請參考以下步驟:
Step 1. 在 terminal 執行指令: nvidia-smi
Step 2. 確認 GPU-Util
欄位,非 0% 代表使用中,0% 即為未使用 (如下圖)。
Q4. 為何無法使用容器內的 GPU?
可能是以下問題造成無法使用容器的 GPU:
- 您的程式使用的 GPU 數量與建立數量不符,請確認兩處 GPU 數量是否相符。
- 套件版本有相容性問題,請按照以下步驟:
- Step 1. 參考程式執行異常的建議排除方式 清空或搬移
/home/主機帳號/.local/
目錄下之套件。 - Step 2. 進入
/home/主機帳號/.cache/
目錄,清除計算過程產生的暫存檔。 - Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
- Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔。
- Step 1. 參考程式執行異常的建議排除方式 清空或搬移
Q5. 建立容器時基本設定中,為何有共享記憶體?
共享記憶體是使用某些 framework 運算時會使用到的記憶體空間,例:PyTorch,詳情可查看PyTorch document。
Q6. 如何知道程式運行時的記憶體用量?
在使用者網站或是容器內部皆可查詢記憶體用量:
- 在使用者網站開發型容器監控頁面,可查看記憶體用量圖,詳情可參考開發型容器監控頁面文件。
- 在容器中下指令
top
或free
查看記憶體用量。
Q7. 開發型容器監控頁面中,「記憶體用量」與「GPU 記憶體用量」的差異?
- 記憶體用量:系統分配給您的容器記憶體之使用量,其容量即為您在建立容器時,在基本設定選擇的規格。
- GPU 記憶體用量:容器配置的 GPU 顯示核心上的記憶體之使用量,TWCC 的 GPU 為 NVIDIA V100,關於 GPU 記憶體容量與詳細資訊,可參考 NVIDIA 官網說明。
套件軟體
Q1. 目前容器支援多少種計算環境?
在 TWSC 的容器服務中,提供了 25 種環境供使用者選擇,包含:
- TensorFlow
- PyTorch
- CUDA
- MATLAB (BYOL)
- Caffe
- CNTK
- MXNet
- Caffe2
- TensorRT
- Triton Inference Server
- Theano
- Torch
- DIGITS
- NeMo
- RAPIDS
- Clara Train SDK
- CUDA GL
- Morpheus
- Merlin Training
- Merlin Inference
- Maxine Audio Effect SDK
- HPC SDK
- TAO Toolkit for Computer Vision
- Modulus
- Clara Parabricks
Q2. 如何確認容器映像檔中包了什麼套件及其版本?
以下兩種方法皆可確認映像檔套件及版本:
- 在 NGC 網站 中,在右上角搜尋框依不同框架輸入 TensorFlow release notes、PyTorch release notes ...等內容,進入 release notes 列表頁面後,再點擊您要確認的框架版本,即可檢視套件內容及版本。
- 建立開發型容器、選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到相關資訊。
Q3. 為何我刪除容器後再重新建立容器,新容器內仍存在舊容器上的套件?
為提供運算便利性,TWSC 預設會將高速檔案系統之儲存空間 (/home 及 /work,綁定個人帳號) 掛載至您建立的所有容器,讓您的資料或套件可跨容器使用,因此刪除容器不會影響安裝在 /home 及 /work 的套件與資料。
Q4. 安裝套件時發生錯誤訊息 Permission denied
如何處理?
Permission denied
如何處理? 以下圖為例,如果 Permission denied
指出的檔案,其位置不在 /home 或 /work 底下,請參考 其他疑問 Q3 切換成容器 root 身分後再行安裝。
Q5. 在容器中如何安裝 cuDNN?
容器環境已有安裝 cuDNN,詳細版本資訊可透過以下三種方法確認:
- 在 NGC 網站 中,在右上角搜尋框依不同框架輸入 TensorFlow release notes、PyTorch release notes ...等內容,進入 release notes 列表頁面後,再點擊您要確認的框架版本,即可檢視套件內容及版本。
- 建立開發型容器、選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到相關資訊。
- 連線容器後執行
set | grep CUDNN
指令
Q6. 容器中有哪些內建的套件管理工具?
容器環境中有內建 apt
, apt-get
, pip
等3個套件管理工具可供管理套件。
Q7. 安裝套件時發生 Unable to change to /home/主機帳號 - chdir (13: Permission denied)
如何處理?
Unable to change to /home/主機帳號 - chdir (13: Permission denied)
如何處理? 為保障資料安全,容器的 root 身分無法存取您的 /home與 /work 目錄,因此請使用主機帳號的身分安裝,勿切換成 root 權限。
Q8. 如何在容器中安裝 docker 使用?
TWSC 容器不提供 OS 層權限,因此無法安裝與使用 docker 服務。
儲存與資料傳輸
Q1. 如何將檔案上傳至容器,或從容器下載?
請參考此文件,將檔案上傳到容器的 /home 或 /work 中,或將檔案下載到 local 端。
Q2. 為何切換成 root 無法存取自己的 /home 與 /work?
為保障資料安全,容器的 root 身分無法存取您的目錄,僅限用戶本人帳號有權限存取。
Q3. 要如何分享 /home 與 /work 的資料給其他同計畫使用者?
可以透過 TWCC CLI 操作 TWSC 雲端物件儲存 (COS),將容器資料分享給其他使用者,操作方式請參考此文件。
Q4. 如何設定自動化將容器內資料回傳 local 端?
請利用容器對外連接埠 (port) 進行與 local 端的資料傳送,容器可使用的 port 為:22、80、443。
Q5. 以 Matlab 映像檔建立的容器為何無法存取 /home 及 /work?
因目前的 Matlab 映像檔尚未整合 HFS 高速檔案系統,因此請在 terminal 執行以下指令來存取 /home 及 /work:
sudo su -
su [主機帳號]
/opt/matlab/R2019b/bin/matlab
Q6. 能否將共享記憶體當硬碟空間使用?
若您選擇有共享記憶體設定的規格,/dev/shm
即為共享記憶體空間,可供存放資料當硬碟使用
- 由於存放資料在共享記憶體中會占掉共享記憶體空間,因此存放前請先考量您程式所需要的空間。
- 存放於此的資料會隨容器刪除而消失,若資料需保存,請在刪除容器前將資料搬移到
/home/主機帳號
或/work/主機帳號
。
Q7. 為何 Jupyter Notebook 無法寫入檔案?
高速檔案系統空間已快用滿,導致無法寫入檔案,請參考高速檔案系統 FAQ Q6,檢查並清理您的儲存空間,或參考增購更多儲存空間,增購方式請參考高速檔案系統中的「查看使用容量」及「空間管理政策」兩個段落,即可得知價格以及增購空間的方法。
Q8. 為何 Jupyter Notebook 儲存檔案失敗?
高速檔案系統空間已快用滿,導致無法寫入檔案,請參考高速檔案系統 FAQ Q6,檢查並清理您的儲存空間,或參考增購更多儲存空間,增購方式請參考高速檔案系統中的「查看使用容量」及「空間管理政策」兩個段落,即可得知價格以及增購空間的方法。
Q9. 如何上傳檔案到 Jupyter Notebook?
Jupyter Notebook 所使用的儲存空間即為高速檔案系統 (HFS),請透過此文件,上傳您的檔案。
Q10. 如何於容器內與雲端物件儲存間傳輸檔案?
- 請在容器內安裝 TWCC CLI。
- 再參考此文件,使用 TWCC CLI 進行容器與雲端物件儲存的檔案傳輸。
Q11. 請問如何將雲端物件的儲存體掛載到容器上使用?
TWSC 容器所使用的儲存系統為高速檔案系統 (HFS),目前不支援直接將雲端物件的儲存體掛載到容器上進行使用。
若僅需與雲端物件儲存進行檔案傳輸,請您參考 Q10 的操作步驟。
網路安全
Q1. 容器的 Port 範圍是什麼?
容器 Port 的範圍為:50000 ~ 60000。
Q2. 容器是否可以使用 VPN?
目前 TWSC 容器不支援部署 VPN 服務 (例如:OpenVPN)。VPN 服務預設開啟的對外埠與 TWSC 容器所支援的對外埠不同,且 TWSC 容器採用 Port-Forwarding 的技術,對外埠為隨機配發,無法指定對應的埠號。
容器映像檔
Q1. 容器映像檔如何下載?
目前系統尚未支援此功能。
執行效能
Q1. 執行程式時發現 I/O 緩慢?
可能是 dataset 問題或是容器所處的節點較為繁忙:
- 若您的 dataset 為許多小檔案,且 dataset 佔了大量空間,我們建議您將小檔案集合成大檔案,以減少 I/O 壓力。
- 製作容器映像檔,再以映像檔開一個新的容器,若系統整體負載仍有餘裕,可以將容器安排建立在較不繁忙的節點。
Q2. 程式執行時效能不如預期?
按照下列步驟排除套件相容性問題:
Step 1. 參考程式執行異常的建議排除方式 清空或搬移/home/主機帳號/.local/
目錄下之套件。
Step 2. 進入 /home/主機帳號/.cache/
目錄,清除計算過程產生的暫存檔。
Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔。
Q3. 程式執行時發現比 local 端還慢?
改善效能的方式請參考如下:
- 排除套件相容性問題
- Step 1. 參考程式執行異常的建議排除方式 清空或搬移
/home/主機帳號/.local/
目錄下之套件。 - Step 2. 進入
/home/主機帳號/.cache/
目錄,清除計算過程產生的暫存檔。 - Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
- Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔。
- Step 1. 參考程式執行異常的建議排除方式 清空或搬移
- 若您的 dataset 為許多小檔案,且 dataset 佔了大量空間,我們建議您將小檔案集合成大檔案,以減少 I/O 壓力。
- 製作容器映像檔,再以映像檔開一個新的容器,若系統整體負載仍有餘裕,可以將容器安排建立在較不繁忙的節點。
執行錯誤
Q1. 程式執行時顯示 insufficient shared memory
?
insufficient shared memory
? - 若為 PyTorch 容器環境,請將 Dataloader 的 num workers 設置為 0
- 或重新建立一個容器,並選擇有 shared memory 的規格。
Q2. 程式執行時顯示 bus error
?
bus error
? 按照以下步驟排除套件相容性問題:
Step 1. 參考程式執行異常的建議排除方式 清空或搬移/home/主機帳號/.local/
目錄下之套件。
Step 2. 進入 /home/主機帳號/.cache/
目錄,清除計算過程產生的暫存檔。
Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔。
Q3. 程式執行時發生有些 library 無法載入 (Could not load dynamic library...
)?
Could not load dynamic library...
)? 可能是程式中呼叫的 library 版本與容器中的版本不符。請執行以下指令,取得環境中的 library 版本後,再修改程式所呼叫的 library 版本: sudo find / -name [library名稱]
Q4. 為何 sudo apt update
產生 Unable to change to /home/wistron1/ -chdir (13: Permission denied)
?
sudo apt update
產生 Unable to change to /home/wistron1/ -chdir (13: Permission denied)
? 請切換成 root 身分後再執行 apt update
。
Q5. 為何使用 Jupyter Notebook 時,右上角顯示 kernel busy
?
kernel busy
? 請按照以下程序解決套件相容性問題:
Step 1. 參考程式執行異常的建議排除方式 清空或搬移/home/主機帳號/.local/
目錄下之套件。
Step 2. 進入 /home/主機帳號/.cache/
目錄,清除計算過程產生的暫存檔。
Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔。
其他疑問
Q1. 如何從容器轉移至台灣杉二號(命令列介面)進行訓練運算?
可參考網路上 Conda 和 Singularity 的使用說明文件,或參考以下的 tutorial 進行:
Q2. 我可以建立一個容器給其他人用嗎?
建立容器給他人使用時,需考量以下幾點注意事項:
- 您的主機密碼必須提供給他人連線容器。
- /home 與/work 為您的個人 HFS 儲存空間,他人在使用上可能造成這兩個檔案夾中的資料毀損、遺失...等可能,即使您再開新容器也無法復原這些變動。
- 分享計算資源會有資料安全的風險,請審慎考慮。
因此,除為他人建立容器之外,您亦可以透過 會員中心 ,將他人加入計畫中,該使用者即可自行運用容器資源。
Q3. 如何切換成容器的 root 身份?
執行以下指令即可切換為 root 身分:
sudo su
或
sudo -i
Q4. 容器是一建立就開始收費,還是開始跑程式才收費?
容器一建立即開始佔用計算資源,因此建立後、在您刪除容器之前,將會持續計費。