簡體   English   中英

使用SLURM運行多階段作業

[英]Running a multi-stage job using SLURM

我是SLURM的新手。 我的問題是我有一個多階段作業,該作業需要在群集上運行,該群集的作業由SLURM管理。 具體來說,我想安排一份工作:

  1. 抓取N個節點,
  2. 在所有它們上安裝軟件
  3. (一旦所有節點成功完成安裝),它將在節點上創建數據庫實例
  4. 加載數據庫
  5. (一旦成功完成加載)運行一組查詢,以進行基准測試
  6. 刪除數據庫並返回節點

每個步驟都可以使用單獨的bash腳本運行; 腳本的執行和階段之間的過渡由主節點協調。

我的問題是我知道如何使用SLURM在每個節點上分配節點並調用單個命令或腳本(在每個節點上作為獨立作業運行)。 但是,在每個節點上完成命令(或完成調用的腳本)后,該節點將返回到空閑資源池,從而使分配的節點排隊等待我的工作。 但是上述用例涉及幾個階段/腳本; 並且需要它們之間的協調。

我想知道使用SLURM為這種用例設計/運行一組腳本的正確方法是什么。 任何建議或示例都將非常有幫助,並受到高度贊賞。

您只需要將所有腳本封裝到一個腳本中即可提交:

#!/bin/bash
#SBATCH --nodes=4 --exclusive

# Setting Bash to exit whenever a command exits with a non-zero status.
set -e 
set -o pipefail

echo "Installing software on each of $SLURM_NODELIST"
srun ./install.sh

echo "Creating database instance"
./createDBInstance.sh $SLURM_NODELIST

echo "Loading DB"
./loadDB.sh params

echo Benchmarking
./benchmarks.sh params

echo Done.

您需要填寫空白...確保您的腳本遵循退出時的標准,錯誤狀態為非零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM