E-HPC支援PBS、SLURM、SGE等作業調度系統,本文介紹如何使用三種調度系統,通過命令列提交作業。
準備工作
建立叢集使用者。具體操作,請參見系統管理使用者。
叢集使用者用於登入叢集,進行編譯軟體、提交作業等操作,本文建立的使用者樣本如下:
使用者名稱:testuser
使用者組:sudo許可權組
重要不推薦使用root使用者提交任何作業,避免作業指令碼中的誤操作導致E-HPC叢集資料遭受破壞。
在相應的目錄下準備好作業資料檔案和執行程式檔案。
本文以以下路徑作為樣本:
$HOME/test.py # 作業執行程式 $HOME/test.data # 作業相關資料
作業執行命令如下:
test.py -i test.data
串連叢集
選擇以下一種方式串連叢集。本文使用的使用者名稱為testuser,串連叢集後會預設登入到/home/testuser
。
通過用戶端
該方式僅支援使用PBS調度器的叢集。操作前,請確保您已下載安裝E-HPC用戶端,且已配置用戶端所需環境。具體操作,請參見配置用戶端所需環境。
開啟並登入E-HPC用戶端。
在用戶端左側導覽列,單擊會話管理。
在會話管理頁面的右上方,單擊terminal,開啟Terminal視窗。
通過控制台
登入彈性高效能運算控制台。
在頂部功能表列左上方處,選擇地區。
在左側導覽列,單擊叢集。
在叢集頁面,找到目的地組群,單擊遠端連線。
在遠端連線頁面,輸入集群使用者名稱、登入密碼和連接埠,單擊ssh串連。
提交作業
請根據叢集的調度器類型,以及您準備好的作業檔案,編寫作業指令碼,並提交作業。樣本如下:
自動調整情境下,E-HPC不支援基於記憶體來擴縮容,建議您在提交作業時指定作業所需的vCPU數。
PBS
編寫作業指令碼,指令檔命名為jobscript.pbs。
vim jobscript.pbs
jobscript.pbs的內容樣本如下。更多關於PBS命令列的資訊,請參見PBS官網。
#!/bin/sh #PBS -l ncpus=4,mem=1gb #指定作業運行所需的計算資源 #PBS -l walltime=00:10:00 #預估作業運行時間長度 #PBS -o test_pbs.log #指定stdout輸出檔案 #PBS -j oe #把stderr和stdout的輸出合并到指定的輸出檔案 cd $HOME test.py -i test.data
提交作業。
qsub jobscript.pbs
SLURM
編寫作業指令碼,指令檔命名為jobscript.slurm。
vim jobscript.slurm
jobscript.slurm的內容樣本如下,更多關於SLURM命令列的資訊,請參見SLURM官網。
#!/bin/sh #SBATCH --job-name=slurm-quickstart #設定作業名稱 #SBATCH --output=test_slurm.log #指定stdout輸出檔案 #SBATCH --nodes=1 #指定節點數量 #SBATCH --ntasks=1 #指定任務數量 #SBATCH --cpus-per-task=1 #指定每個任務需要的vCPU數 #SBATCH --time=00:10:00 #預估作業運行時間長度 #SBATCH --mem-per-cpu=1024 #指定每個vCPU分配的記憶體數 cd $HOME test.py test.data
提交作業。
sbatch jobscript.slurm
SGE
編寫作業指令碼,指令檔命名為jobscript.sh。
vim jobscript.sh
jobscript.sh的內容樣本如下,更多關於SGE命令列的資訊,請參見SGE官網。
#!/bin/bash #$ -cwd #指定執行路徑為當前路徑 #$ -N test1 #設定作業名稱 #$ -q all.q #指定隊列 #$ -pe smp 2 #指定運行作業所需的vCPU數 #$ -l vf=1g #指定運行作業所需的記憶體數 #$ -o /home/testuser #指定輸出日誌路徑 #$ -e /home/testuser #指定錯誤記錄檔路徑 cd $HOME test.py test.data
重要自動調整情境下,E-HPC會基於作業所需vCPU數來匹配擴容的ECS規格,編寫SGE作業指令碼時必須使用-pe smp的方式來指定作業所需vCPU數。
提交作業。
qsub -V jobscript.sh