TACC 集羣使用筆記

1註冊賬號

先在網頁上註冊賬號,之後需要聯繫導師或者管理員把你添加到對應的集羣裏去,例如我加入的是 Lonestar6 集羣。

之後需要跟着這個教程綁定 MFA 軟件(可以是 DUO 或者 1password)

MFA 綁定

之後登錄賬號,系統會要求先後輸入你的賬戶密碼和 MFA 的 6 位數 token

local@username$ ssh [email protected]
([email protected]) Password:
([email protected]) TACC Token Code:

login1.ls6(22)$ cd $SCRATCH/
login1.ls6(23)$

密碼都正確之後你會進入到 login 節點,在這裏千萬不能隨意執行大規模的計算任務,因爲很有可能會被封號。你需要使用 compute 節點執行計算任務。

Login 和 Compute 節點

成功登入後,默認進入 login 節點下的 /home目錄,一般而言我們需要進入 /scratch 目錄。大多數TACC HPC資源上掛載了三個文件系統:$HOME$WORK、和$SCRATCH,以下是它們的區別、使用場景和注意事項的總結:

在Lonestar6高性能計算系統中,HOMEWORKSCRATCH路徑的使用場景分別如下:

  1. HOME路徑
    • 使用場景:主要用於存儲用戶個人的文件,如配置文件、源代碼、小型數據集等。
    • 特點:這個目錄是用戶個性化的,其他用戶無法訪問。它的空間通常較小,不適合存儲大量數據。
    • 建議用途:存儲個人設置、備份的代碼、文檔等。
  2. WORK路徑
    • 使用場景:用於存儲需要跨TACC系統共享的文件,如大型數據集、中間結果等。
    • 特點:WORK路徑是全局共享的,可以在TACC的不同系統之間訪問,空間相對較大。
    • 建議用途:共享項目數據、協作研究的大型文件、需要在不同系統間傳輸的數據。
  3. SCRATCH路徑
    • 使用場景:用於存儲計算作業期間產生的大量臨時數據,尤其是那些不需要長期保留的數據。
    • 特點:SCRATCH路徑提供快速訪問,但空間有限,且不保證數據持久性。系統可能會定期清理這個目錄中的數據。
    • 建議用途:存儲計算作業的中間結果、大型臨時數據文件、不需要長期保存的數據。
      總的來說,HOME路徑適合個人文件和配置,WORK路徑適合需要跨系統共享的文件,而SCRATCH路徑則適用於臨時和大量數據的存儲。這些路徑的設計旨在優化存儲效率、數據共享和系統性能。

從實操性的角度說,進入computing node 後,默認先進入的是HOME目錄,在這裏你可以先設置好 conda 環境。接着,假如你要運行一個 pytorch 代碼,你需要cd $SCRATCH 才能使用 GPU,這個目錄下運行代碼保存的日誌是臨時的,你需要將重要文件備份到 $WORK 目錄下。

2. 交互式開發環境 idev

idev 是一個用於在TACC(Texas Advanced Computing Center)集羣上創建交互式計算環境的命令行工具,可以在計算節點上創建一個交互式會話,可以在其中執行串行、OpenMP並行或MPI並行的代碼,就像在批處理作業中一樣。。以下是關於 idev 的一些主要用法和選項的介紹:

2.1 idev 參數選項:

  • -A account_name:設置賬戶名稱(默認爲 -A use_default)。
  • -m minutes:設置計算時間(默認爲 30 分鐘)。
  • -n total_tasks:設置總任務數。
  • -N nodes:設置節點數量。
  • -tpn tpn:設置每節點任務數。
  • -p queue_name:設置隊列名稱(默認爲 -p development)。
  • -R:查找用戶的預約。
  • -r reservation_name:請求使用特定的預約。
  • -r none:禁用預約檢查。
  • -E:在作業開始時通知。
  • -e email_address:在作業開始時通過指定的電子郵件地址通知。
  • -t hh:mm:ss:設置計算時間(默認爲 30 分鐘)。
  • -queues:列出系統的隊列。
  • -pselect:顯示可選擇的 Slurm 隊列。
  • -qselect:顯示可選擇的 Slurm 隊列。
  • -- <other SLURM options>:必須在所有 idev 選項之後使用,用於指定其他 Slurm 選項。

2.2 示例

# 默認設置:1 節點,16 任務,30 分鐘,使用默認賬戶
idev

# 顯示幫助信息
idev --help

# 設置隊列、時間和賬戶
idev -p development -m 90 -A AB-ccviss

# 設置隊列、時間、賬戶、節點和任務數
idev -p normal -t 00:90:00 -A TG-STA123 -N 2 -n 16

# 顯示可選擇的 Slurm 隊列
idev -pselect

# 設置交互式會話的最長時間爲2小時, 1個節點,4 個任務,請求在 development 隊列中執行計算任務
idev -t 02:00:00 -N 1 -n 4 -p development

上面最後一個例子使用的是名爲development的節點,你也可以先使用sinfo命令查看所有節點,然後手動設置成空閒的節點,例如:

$ sinfo
gpu-a100          up   infinite      1 drain* c317-003
gpu-a100          up   infinite     67  alloc c302-[001-004],c303-[001-004],c305-[001-002,004],c306-[002-004],c308-[001-004],c309-[001-004],c310-[001-004],c315-[001,003-016],c316-[001-002,007-016],c317-[001-002,004-008,010-016]
gpu-a100          up   infinite      5   idle c304-001,c305-003,c306-001,c316-003,c317-009
gpu-a100-dev      up   infinite      2  alloc c301-[001,004]
$ idev -t 02:00:00 -N 1 -n 4 -p gpu-a100-dev

上面命令會自動申請一個空閒的gpu-a100-dev節點。

微信公衆號:AutoML機器學習
MARSGGBO原創
如有意合作或學術討論歡迎私戳聯繫~
郵箱:[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章