全部產品
Search
文件中心

Elastic High Performance Computing:通過命令列提交作業

更新時間:Jul 06, 2024

E-HPC支援PBS、SLURM、SGE等作業調度系統,本文介紹如何使用三種調度系統,通過命令列提交作業。

準備工作

  1. 建立叢集使用者。具體操作,請參見系統管理使用者

    叢集使用者用於登入叢集,進行編譯軟體、提交作業等操作,本文建立的使用者樣本如下:

    • 使用者名稱:testuser

    • 使用者組:sudo許可權組

    重要

    不推薦使用root使用者提交任何作業,避免作業指令碼中的誤操作導致E-HPC叢集資料遭受破壞。

  2. 在相應的目錄下準備好作業資料檔案和執行程式檔案。

    本文以以下路徑作為樣本:

    $HOME/test.py           # 作業執行程式
    $HOME/test.data         # 作業相關資料

    作業執行命令如下:

    test.py -i test.data

串連叢集

選擇以下一種方式串連叢集。本文使用的使用者名稱為testuser,串連叢集後會預設登入到/home/testuser

  • 通過用戶端

    該方式僅支援使用PBS調度器的叢集。操作前,請確保您已下載安裝E-HPC用戶端,且已配置用戶端所需環境。具體操作,請參見配置用戶端所需環境

    1. 開啟並登入E-HPC用戶端。

    2. 在用戶端左側導覽列,單擊會話管理

    3. 會話管理頁面的右上方,單擊terminal,開啟Terminal視窗。

  • 通過控制台

    1. 登入彈性高效能運算控制台

    2. 在頂部功能表列左上方處,選擇地區。

    3. 在左側導覽列,單擊叢集

    4. 叢集頁面,找到目的地組群,單擊遠端連線

    5. 遠端連線頁面,輸入集群使用者名稱、登入密碼和連接埠,單擊ssh串連

提交作業

請根據叢集的調度器類型,以及您準備好的作業檔案,編寫作業指令碼,並提交作業。樣本如下:

說明

自動調整情境下,E-HPC不支援基於記憶體來擴縮容,建議您在提交作業時指定作業所需的vCPU數。

PBS

  1. 編寫作業指令碼,指令檔命名為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
  2. 提交作業。

    qsub jobscript.pbs

SLURM

  1. 編寫作業指令碼,指令檔命名為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
  2. 提交作業。

    sbatch jobscript.slurm

SGE

  1. 編寫作業指令碼,指令檔命名為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數。

  2. 提交作業。

    qsub -V jobscript.sh