通過(guò)命令行提交作業(yè)
E-HPC支持PBS、SLURM、SGE等作業(yè)調(diào)度系統(tǒng),本文介紹如何使用三種調(diào)度系統(tǒng),通過(guò)命令行提交作業(yè)。
準(zhǔn)備工作
創(chuàng)建集群用戶。具體操作,請(qǐng)參見創(chuàng)建用戶。
集群用戶用于登錄集群,進(jìn)行編譯軟件、提交作業(yè)等操作,本文創(chuàng)建的用戶示例如下:
用戶名:testuser
用戶組:sudo權(quán)限組
重要不推薦使用root用戶提交任何作業(yè),避免作業(yè)腳本中的誤操作導(dǎo)致E-HPC集群數(shù)據(jù)遭受破壞。
在相應(yīng)的目錄下準(zhǔn)備好作業(yè)數(shù)據(jù)文件和執(zhí)行程序文件。
本文以以下路徑作為示例:
$HOME/test.py # 作業(yè)執(zhí)行程序 $HOME/test.data # 作業(yè)相關(guān)數(shù)據(jù)
作業(yè)執(zhí)行命令如下:
test.py -i test.data
連接集群
選擇以下一種方式連接集群。本文使用的用戶名為testuser,連接集群后會(huì)默認(rèn)登錄到/home/testuser
。
通過(guò)客戶端
該方式僅支持使用PBS調(diào)度器的集群。操作前,請(qǐng)確保您已下載安裝E-HPC客戶端,且已配置客戶端所需環(huán)境。具體操作,請(qǐng)參見配置客戶端所需環(huán)境。
打開并登錄E-HPC客戶端。
在客戶端左側(cè)導(dǎo)航欄,單擊會(huì)話管理。
在會(huì)話管理頁(yè)面的右上角,單擊terminal,打開Terminal窗口。
通過(guò)控制臺(tái)
在頂部菜單欄左上角處,選擇地域。
在左側(cè)導(dǎo)航欄,單擊集群。
在集群頁(yè)面,找到目標(biāo)集群,單擊遠(yuǎn)程連接。
在遠(yuǎn)程連接頁(yè)面,輸入集群用戶名、登錄密碼和端口,單擊ssh連接。
提交作業(yè)
請(qǐng)根據(jù)集群的調(diào)度器類型,以及您準(zhǔn)備好的作業(yè)文件,編寫作業(yè)腳本,并提交作業(yè)。示例如下:
自動(dòng)伸縮場(chǎng)景下,E-HPC不支持基于內(nèi)存來(lái)擴(kuò)縮容,建議您在提交作業(yè)時(shí)指定作業(yè)所需的vCPU數(shù)。
PBS
編寫作業(yè)腳本,腳本文件命名為jobscript.pbs。
vim jobscript.pbs
jobscript.pbs的內(nèi)容示例如下。更多關(guān)于PBS命令行的信息,請(qǐng)參見PBS官網(wǎng)。
#!/bin/sh #PBS -l ncpus=4,mem=1gb #指定作業(yè)運(yùn)行所需的計(jì)算資源 #PBS -l walltime=00:10:00 #預(yù)估作業(yè)運(yùn)行時(shí)長(zhǎng) #PBS -o test_pbs.log #指定stdout輸出文件 #PBS -j oe #把stderr和stdout的輸出合并到指定的輸出文件 cd $HOME test.py -i test.data
提交作業(yè)。
qsub jobscript.pbs
SLURM
編寫作業(yè)腳本,腳本文件命名為jobscript.slurm。
vim jobscript.slurm
jobscript.slurm的內(nèi)容示例如下,更多關(guān)于SLURM命令行的信息,請(qǐng)參見SLURM官網(wǎng)。
#!/bin/sh #SBATCH --job-name=slurm-quickstart #設(shè)置作業(yè)名稱 #SBATCH --output=test_slurm.log #指定stdout輸出文件 #SBATCH --nodes=1 #指定節(jié)點(diǎn)數(shù)量 #SBATCH --ntasks=1 #指定任務(wù)數(shù)量 #SBATCH --cpus-per-task=1 #指定每個(gè)任務(wù)需要的vCPU數(shù) #SBATCH --time=00:10:00 #預(yù)估作業(yè)運(yùn)行時(shí)長(zhǎng) #SBATCH --mem-per-cpu=1024 #指定每個(gè)vCPU分配的內(nèi)存數(shù) cd $HOME test.py test.data
提交作業(yè)。
sbatch jobscript.slurm
SGE
編寫作業(yè)腳本,腳本文件命名為jobscript.sh。
vim jobscript.sh
jobscript.sh的內(nèi)容示例如下,更多關(guān)于SGE命令行的信息,請(qǐng)參見SGE官網(wǎng)。
#!/bin/bash #$ -cwd #指定執(zhí)行路徑為當(dāng)前路徑 #$ -N test1 #設(shè)置作業(yè)名稱 #$ -q all.q #指定隊(duì)列 #$ -pe smp 2 #指定運(yùn)行作業(yè)所需的vCPU數(shù) #$ -l vf=1g #指定運(yùn)行作業(yè)所需的內(nèi)存數(shù) #$ -o /home/testuser #指定輸出日志路徑 #$ -e /home/testuser #指定錯(cuò)誤日志路徑 cd $HOME test.py test.data
重要自動(dòng)伸縮場(chǎng)景下,E-HPC會(huì)基于作業(yè)所需vCPU數(shù)來(lái)匹配擴(kuò)容的ECS規(guī)格,編寫SGE作業(yè)腳本時(shí)必須使用-pe smp的方式來(lái)指定作業(yè)所需vCPU數(shù)。
提交作業(yè)。
qsub -V jobscript.sh