跳至主要内容

FAQs | 容器運算服務 (CCS)

使用之前

Q1. 怎麼使用超級電腦?

TWSC 中有許多超級電腦的運算資源,您可以透過下列方式使用:

  1. 開發型容器:您可參考此文件,建立快速部署的容器環境。
  2. 高速運算服務:您可參考此文件,連線進入高速運算節點,以 Command Line 的方式使用超級電腦資源,進行跨節點的高速運算。
Q2. 如何開始使用容器?

您可使用容器訓練 AI 模型並生成推論引擎,步驟參考如下:

Step 1. 參考高速檔案系統文件,將 AI 模型程式上傳到高速檔案系統,儲存於 /home/主機帳號/work/主機帳號 目錄之下。
Step 2. 參考開發型容器文件,建立容器,並連線容器進行模型訓練。
Step 3. 訓練完成,可參考高速檔案系統文件,下載所需要的資料。
Step 4. 若要進行推論,可參考HowTo文件於容器內進行,或參考虛擬運算文件,建立虛擬運算個體進行推論。

Q3. 容器與高速運算該如何選擇?

兩種服務皆可運行 GPU 的容器化環境:

  • 若您的運算工作僅需要 8 顆 GPU 以下的計算資源,請使用容器運算服務。
  • 而若需要 8 顆 以上的 GPU 資源,並希望能部署跨節點的分散式高速平行運算環境,請使用台灣杉二號 (命令列介面) 高速運算服務。

連線登入

Q1. 如何登入容器?

可以透過 SSH 或 Jupyter Notebook 連線容器,請參考連線容器

Q2. SSH 連線至 TWSC 上的資源 CCS、VCS 和 HPC 有哪些可使用的的開源軟體?

可以使用 MobaXterm、PuTTY 和 VSCode...等第三方開源軟體。

Q3. 開發型容器 SSH 連線時顯示 Permission denied

可能是主機密碼輸入錯誤,請重新輸入或參考此文件至會員中心重設主機密碼。

Q4. 無法連線 Jupyter Notebook 時如何處理?

請參考以下 2 種處理方式:

  1. 進行以下操作將容器還原至初始狀態:
    • Step 1. 參考程式執行異常的建議排除方式 清空或搬移/home/主機帳號/.local/ 目錄下之套件。
    • Step 2. 進入 /home/主機帳號/.cache/ 目錄,清除計算過程產生的暫存檔。
    • Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
    • Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔,再連線 Jupyter Notebook。
  2. 請檢查貴單位防火牆設定是否有阻擋容器使用的 port,容器 port 範圍為 50000 ~ 60000。

管理容器

Q1. 如何暫停容器?

目前系統不支援容器暫停的功能,您可依需求選擇任一節省計算成本的方案:

  1. 您可製作容器映像檔保留工作環境,並刪除容器,待需要使用容器時再以映像檔建立新容器。
  2. 您可參考此文件,編寫腳本自動執行運算、刪除容器。
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 配置數量:

  1. 在 terminal 執行指令:nvidia-smi
  2. 在使用者網站中,開發型容器管理頁 > 容器詳細資料頁的「基本設定」欄位即有顯示。

Q3. 在程式執行時,如何知道 GPU 使用情況?

請參考以下步驟: Step 1. 在 terminal 執行指令: nvidia-smi
Step 2. 確認 GPU-Util 欄位,非 0% 代表使用中,0% 即為未使用 (如下圖)。

Q4. 為何無法使用容器內的 GPU?

可能是以下問題造成無法使用容器的 GPU:

  1. 您的程式使用的 GPU 數量與建立數量不符,請確認兩處 GPU 數量是否相符。
  2. 套件版本有相容性問題,請按照以下步驟:
    • Step 1. 參考程式執行異常的建議排除方式 清空或搬移/home/主機帳號/.local/ 目錄下之套件。
    • Step 2. 進入 /home/主機帳號/.cache/ 目錄,清除計算過程產生的暫存檔。
    • Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
    • Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔。
Q5. 建立容器時基本設定中,為何有共享記憶體?

共享記憶體是使用某些 framework 運算時會使用到的記憶體空間,例:PyTorch,詳情可查看PyTorch document

Q6. 如何知道程式運行時的記憶體用量?

在使用者網站或是容器內部皆可查詢記憶體用量:

  1. 在使用者網站開發型容器監控頁面,可查看記憶體用量圖,詳情可參考開發型容器監控頁面文件。
  2. 在容器中下指令 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. 如何確認容器映像檔中包了什麼套件及其版本?

以下兩種方法皆可確認映像檔套件及版本:

  1. NGC 網站 中,在右上角搜尋框依不同框架輸入 TensorFlow release notesPyTorch release notes ...等內容,進入 release notes 列表頁面後,再點擊您要確認的框架版本,即可檢視套件內容及版本。
  2. 建立開發型容器、選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到相關資訊。
Q3. 為何我刪除容器後再重新建立容器,新容器內仍存在舊容器上的套件?

為提供運算便利性,TWSC 預設會將高速檔案系統之儲存空間 (/home 及 /work,綁定個人帳號) 掛載至您建立的所有容器,讓您的資料或套件可跨容器使用,因此刪除容器不會影響安裝在 /home 及 /work 的套件與資料。

Q4. 安裝套件時發生錯誤訊息 Permission denied 如何處理?

以下圖為例,如果 Permission denied 指出的檔案,其位置不在 /home 或 /work 底下,請參考 其他疑問 Q3 切換成容器 root 身分後再行安裝。

Q5. 在容器中如何安裝 cuDNN?

容器環境已有安裝 cuDNN,詳細版本資訊可透過以下三種方法確認:

  1. NGC 網站 中,在右上角搜尋框依不同框架輸入 TensorFlow release notesPyTorch release notes ...等內容,進入 release notes 列表頁面後,再點擊您要確認的框架版本,即可檢視套件內容及版本。
  2. 建立開發型容器、選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到相關資訊。
  3. 連線容器後執行 set | grep CUDNN 指令
Q6. 容器中有哪些內建的套件管理工具?

容器環境中有內建 apt , apt-get , pip 等3個套件管理工具可供管理套件。

Q7. 安裝套件時發生 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. 如何於容器內與雲端物件儲存間傳輸檔案?
  1. 請在容器內安裝 TWCC CLI
  2. 再參考此文件,使用 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 問題或是容器所處的節點較為繁忙:

  1. 若您的 dataset 為許多小檔案,且 dataset 佔了大量空間,我們建議您將小檔案集合成大檔案,以減少 I/O 壓力。
  2. 製作容器映像檔,再以映像檔開一個新的容器,若系統整體負載仍有餘裕,可以將容器安排建立在較不繁忙的節點。
Q2. 程式執行時效能不如預期?

按照下列步驟排除套件相容性問題:
Step 1. 參考程式執行異常的建議排除方式 清空或搬移/home/主機帳號/.local/ 目錄下之套件。
Step 2. 進入 /home/主機帳號/.cache/ 目錄,清除計算過程產生的暫存檔。
Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔。

Q3. 程式執行時發現比 local 端還慢?

改善效能的方式請參考如下:

  1. 排除套件相容性問題
    • Step 1. 參考程式執行異常的建議排除方式 清空或搬移/home/主機帳號/.local/ 目錄下之套件。
    • Step 2. 進入 /home/主機帳號/.cache/ 目錄,清除計算過程產生的暫存檔。
    • Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
    • Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔。
  2. 若您的 dataset 為許多小檔案,且 dataset 佔了大量空間,我們建議您將小檔案集合成大檔案,以減少 I/O 壓力。
  3. 製作容器映像檔,再以映像檔開一個新的容器,若系統整體負載仍有餘裕,可以將容器安排建立在較不繁忙的節點。

執行錯誤

Q1. 程式執行時顯示 insufficient shared memory

  1. 若為 PyTorch 容器環境,請將 Dataloader 的 num workers 設置為 0
  2. 或重新建立一個容器,並選擇有 shared memory 的規格。

Q2. 程式執行時顯示 bus error

按照以下步驟排除套件相容性問題:
Step 1. 參考程式執行異常的建議排除方式 清空或搬移/home/主機帳號/.local/ 目錄下之套件。
Step 2. 進入 /home/主機帳號/.cache/ 目錄,清除計算過程產生的暫存檔。
Step 3. 若有安裝 Anaconda 或 Miniconda,也請移除或重新命名。
Step 4. 重新建立一個新的容器,選擇映像檔類型時,請將滑鼠移至 ,提示內容將顯示 NGC 的網址,進入後即可找到每個映像檔的環境設定,選擇適合的映像檔。

Q3. 程式執行時發生有些 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)

請切換成 root 身分後再執行 apt update

Q5. 為何使用 Jupyter Notebook 時,右上角顯示 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. 容器是一建立就開始收費,還是開始跑程式才收費?

容器一建立即開始佔用計算資源,因此建立後、在您刪除容器之前,將會持續計費。