1註冊賬號
先在網頁上註冊賬號,之後需要聯繫導師或者管理員把你添加到對應的集羣裏去,例如我加入的是 Lonestar6 集羣。
之後需要跟着這個教程綁定 MFA 軟件(可以是 DUO 或者 1password)
之後登錄賬號,系統會要求先後輸入你的賬戶密碼和 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 節點下的 /home
目錄,一般而言我們需要進入 /scratch
目錄。大多數TACC HPC資源上掛載了三個文件系統:$HOME
、$WORK
、和$SCRATCH
,以下是它們的區別、使用場景和注意事項的總結:
在Lonestar6高性能計算系統中,HOME
、WORK
和SCRATCH
路徑的使用場景分別如下:
- HOME路徑:
- 使用場景:主要用於存儲用戶個人的文件,如配置文件、源代碼、小型數據集等。
- 特點:這個目錄是用戶個性化的,其他用戶無法訪問。它的空間通常較小,不適合存儲大量數據。
- 建議用途:存儲個人設置、備份的代碼、文檔等。
- WORK路徑:
- 使用場景:用於存儲需要跨TACC系統共享的文件,如大型數據集、中間結果等。
- 特點:WORK路徑是全局共享的,可以在TACC的不同系統之間訪問,空間相對較大。
- 建議用途:共享項目數據、協作研究的大型文件、需要在不同系統間傳輸的數據。
- 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
節點。