面試官常考的MySQL索引(MySQL進(jìn)階)
2203
2025-03-31
SLURM (Simple Linux Utility for Resource Management)是一種可用于大型計(jì)算節(jié)點(diǎn)集群的高度可伸縮和容錯(cuò)的集群管理器和作業(yè)調(diào)度系統(tǒng)。SLURM 以一種共享或非共享的方式管理可用的計(jì)算節(jié)點(diǎn)(取決于資源的需求),以供用戶執(zhí)行工作。SLURM 會(huì)為任務(wù)隊(duì)列合理地分配資源,并監(jiān)視作業(yè)至其完成。
最常用的 SLURM 命令如下:
sacct:查看歷史作業(yè)信息
salloc:分配資源
sbatch:提交批處理作業(yè)
scancel:取消作業(yè)
scontrol:系統(tǒng)控制
sinfo:查看節(jié)點(diǎn)與分區(qū)狀態(tài)
squeue:查看隊(duì)列狀態(tài)
srun:執(zhí)行作業(yè)
SLURM 環(huán)境變量如下表:
變量
說(shuō)明
SLURM_NPROCS
要加載的進(jìn)程數(shù)
SLURM_TASKS_PER_NODE
每節(jié)點(diǎn)要加載的任務(wù)數(shù)
SLURM_JOB_ID
作業(yè)的 JobID
SLURM_SUBMIT_DIR
提交作業(yè)時(shí)的工作目錄
SLURM_JOB_NODELIST
作業(yè)分配的節(jié)點(diǎn)列表
SLURM_JOB_CPUS_PER_NODE
每個(gè)節(jié)點(diǎn)上分配給作業(yè)的 CPU 數(shù)
SLURM_JOB_NUM_NODES
作業(yè)分配的節(jié)點(diǎn)數(shù)
HOSTNAME
對(duì)于批處理作業(yè),此變量被設(shè)置為批處理腳本所執(zhí)行節(jié)點(diǎn)的節(jié)點(diǎn)名
SLURM 資源管理系統(tǒng)的管理對(duì)象包括:節(jié)點(diǎn),分區(qū),作業(yè)和作業(yè)步。
節(jié)點(diǎn):Node
即指計(jì)算節(jié)點(diǎn)
包含處理器、內(nèi)存、磁盤(pán)空間等資源
具有空閑、分配、故障等狀態(tài)
使用節(jié)點(diǎn)名字標(biāo)識(shí)
分區(qū):Partition
節(jié)點(diǎn)的邏輯分組
提供一種管理機(jī)制,可設(shè)置資源限制、訪問(wèn)權(quán)限、優(yōu)先級(jí)等
分區(qū)可重疊,提供類(lèi)似于隊(duì)列的功能
使用分區(qū)名字標(biāo)識(shí)
作業(yè):Job
一次資源分配
位于一個(gè)分區(qū)中,作業(yè)不能跨分區(qū)
排隊(duì)調(diào)度后分配資源運(yùn)行
通過(guò)作業(yè) ID 標(biāo)識(shí)
作業(yè)步:Jobstep
通過(guò) srun 進(jìn)行的任務(wù)加載
作業(yè)步可只使用作業(yè)中的部分節(jié)點(diǎn)
一個(gè)作業(yè)可包含多個(gè)作業(yè)步,可并發(fā)運(yùn)行
在作業(yè)內(nèi)通過(guò)作業(yè)步 ID 標(biāo)識(shí)
SLURM 系統(tǒng)有三種作業(yè)運(yùn)行模式:交互模式,以 srun 命令運(yùn)行;批處理模式,以 sbatch 命令運(yùn)行;分配模式,以 salloc 命令運(yùn)行。
交互模式作業(yè)的使用過(guò)程為:
在終端提交資源分配請(qǐng)求,指定資源數(shù)量與限制;
等待資源分配;
獲得資源后,加載計(jì)算任務(wù);
運(yùn)行中,任務(wù) I/O 傳遞到終端;
可與任務(wù)進(jìn)行交互,包括 I/O,信號(hào)等;
任務(wù)執(zhí)行結(jié)束后,資源被釋放。
如:使用 srun 申請(qǐng) 4 個(gè)進(jìn)程生成一個(gè)作業(yè)步:
$ srun -n 4 ./example
批處理模式作業(yè)的使用過(guò)程為:
用戶編寫(xiě)作業(yè)腳本;
提交作業(yè);
作業(yè)排隊(duì)等待資源分配;
分配資源后執(zhí)行作業(yè);
腳本執(zhí)行結(jié)束,釋放資源;
運(yùn)行結(jié)果定向到指定的文件中記錄。
下面給出作業(yè)腳本示例:
#!/bin/env bash
# file: example.sh
# set the number of nodes
#SBATCH --nodes=2
# set the number of tasks (processes) per node
#SBATCH --ntasks-per-node=4
# set partition
#SBATCH --partition=example-partition
# set max wallclock time
#SBATCH --time=2:00:00
# set name of job
#SBATCH --job-name=example-mpi4py
# set batch script's standard output
#SBATCH --output=example.out
# mail alert at start, end and abortion of execution
#SBATCH --mail-type=ALL
# send mail to this address
#SBATCH --mail-user=user@mail.com
# run the application
srun python example-mpi4py.py
如: 提交批處理作業(yè)example.sh:
$ sbatch example.sh
分配模式作業(yè)的使用過(guò)程為:
提交資源分配請(qǐng)求;
作業(yè)排隊(duì)等待資源分配;
執(zhí)行用戶指定的命令;
命令執(zhí)行結(jié)束,釋放資源。
如:使用 2 個(gè)節(jié)點(diǎn),4 個(gè)進(jìn)程,預(yù)計(jì)運(yùn)行時(shí)間 100 秒):
$ salloc -N 2 -n 4 -p example-partition -t 100 /bin/bash
資源分配請(qǐng)求成功后會(huì)進(jìn)入 bash shell 終端,在其中可以使用 srun 交互式地執(zhí)行作業(yè)任務(wù)。在終端輸入 exit 命令或 Ctrl+D 退出分配模式。
附:天河二號(hào)上使用的SLURM 資源管理系統(tǒng),是將標(biāo)準(zhǔn)的 SLURM 命令開(kāi)頭的 s 改成了 yh,如下:
yhacct:查看歷史作業(yè)信息
yhalloc:分配資源
yhbatch:提交批處理作業(yè)
yhcancel:取消作業(yè)
yhcontrol:系統(tǒng)控制
yhinfo/yhi:查看節(jié)點(diǎn)與分區(qū)狀態(tài)
yhqueue/yhq:查看隊(duì)列狀態(tài)
yhrun:執(zhí)行作業(yè)
MapReduce 項(xiàng)目管理 ProjectMan
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。