Slurm集群搭建的教程

本篇內(nèi)容主要講解“Slurm集群搭建的教程”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Slurm集群搭建的教程”吧!

創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為原陽企業(yè)提供專業(yè)的成都網(wǎng)站設計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設公司,原陽網(wǎng)站改版等技術(shù)服務。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

一、系統(tǒng)環(huán)境

a) Centos 7.8
b) 兩臺機器規(guī)劃IP 分別為10.10.0.20 與10.10.0.21
c) 機器主機名分別為node1、node2
d) 均關(guān)閉了防火墻以及selinux
e) 已經(jīng)配置好SSH 免密、NIS、NFS

二、配置munge 及Slurm

a) 安裝依賴
	yum install -y epel-release
	yum install -y gtk2 gtk2-devel munge munge-devel python python3
b) 配置munge #兩臺機器均要配置
	chown slurm:slurm /etc/munge
	chown slurm:slurm /var/run/munge
	chown slurm:slurm /var/lib/munge
	chown slurm:slurm /var/log/munge
	create-munge-key #此步驟只在node1 節(jié)點做即可
	scp /etc/munge/munge.key node2:/etc/munge/
	chown slurm:slurm /etc/munge/munge.key
	su - slurm #所有節(jié)點使用slurm 用戶啟動munged
	munged
c) 配置Slurm #所有節(jié)點配置相同
	tar xvf slurm-20.11.5.tar.bz2
	cd slurm-20.11.5/
	./configure
	make -j3
	make install -j3
	cp etc/{slurmctld.service,slurmdbd.service,slurmd.service}
	/usr/lib/systemd/system
	vi /usr/local/etc/slurm.conf #配置文件附在PS 中
	scp /usr/local/etc/slurm.conf node2:/usr/local/etc/
	chown slurm:slurm /var/spool/
	systemctl start slurmctld #主節(jié)點啟動slurmctld、slurmd
	systemctl start slurmd #從節(jié)點只需啟動slurmd 即可

三、測試

a) 系統(tǒng)命令測試
	[root[@node1](https://my.oschina.net/u/4273199) ~]# sinfo
	PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
	control up infinite 1 idle node1
	compute* up infinite 2 idle node[1-2]
	[root[@node1](https://my.oschina.net/u/4273199) ~]# srun -N 2 -l hostname # -N 2 執(zhí)行的節(jié)點數(shù)
	0: node1
	1: node2
	至此Slurm 集群搭建完成
b) mpi 測試
	vi test.c #測試程序在PS 中
	mpicc -o test test.c #編譯mpi 程序
	vi tj.sh #作業(yè)腳本在PS 中
	sbatch tj.sh #提交作業(yè)
	squeue #查看作業(yè)狀態(tài)
	[root[@node1](https://my.oschina.net/u/4273199) ~]# cat test.out #查看作業(yè)結(jié)果
	node2: Hello world from process 2
	number of processes: 4
	...node1: Hello world from process 0
	node2: Hello world from process 3
	node1: Hello world from process 1

四、PS

a) tj.sh 作業(yè)腳本
	#!/bin/sh
	#SBATCH -o /root/test.out #結(jié)果輸出到test.out
	#SBATCH --nodes=2 #節(jié)點數(shù):2
	#SBATCH --ntasks-per-node=2
	mpirun /root/test
b) slurm.conf 配置文件
	SlurmctldHost=node1 #主節(jié)點
	MpiDefault=none
	ProctrackType=proctrack/pgid #通過網(wǎng)站配置注意修改
	ReturnToService=1
	SlurmctldPidFile=/var/run/slurmctld.pid
	SlurmctldPort=6817
	SlurmdPidFile=/var/run/slurmd.pid
	SlurmdPort=6818
	SlurmdSpoolDir=/var/spool/slurmd
	SlurmUser=slurm #slurm 管理用戶
	StateSaveLocation=/var/spool
	SwitchType=switch/none
	TaskPlugin=task/affinity
	InactiveLimit=0
	KillWait=30
	MinJobAge=300
	SlurmctldTimeout=120
	SlurmdTimeout=300
	Waittime=0
	SchedulerType=sched/backfill
	SelectType=select/cons_tres
	SelectTypeParameters=CR_Core
	AccountingStorageType=accounting_storage/none
	AccountingStoreJobComment=YES
	ClusterName=siton #集群名
	JobCompType=jobcomp/none
	JobAcctGatherFrequency=30
	JobAcctGatherType=jobacct_gather/none
	SlurmctldDebug=info
	SlurmdDebug=info
	NodeName=node1,node2 CPUs=4 RealMemory=2 Sockets=4 CoresPerSocket=1 ThreadsPerCore=1 State=UNKNOWN
		/*節(jié)點名稱,CPUs 核數(shù),corepersocket,threadspersocket,使用lscpu 查看,realmemory 實際分配給slurm 內(nèi)存,procs 是實際CPU 個數(shù),/proc/cpuinfo 里查看state=unknown是啟動集群的時候為unknown,之后會變成idle*/
	PartitionName=control Nodes=node1 Default=YES MaxTime=INFINITE State=UP	
	PartitionName=compute Nodes=node1,node2 Default=YES MaxTime=INFINITE State=UP
		/*partitionname 是分成control 和compute,default=yes 是說這個用來計算*/
		可以通過https://slurm.schedmd.com/configurator.html 生成配置文件
c) mpi 測試程序
	#include <stdio.h>
	#include <mpi.h>
	#include <stdlib.h>
	#include <time.h>
	int main(int argc, char* argv[])
	{
	int myid, numprocs, namelen;
	char processor_name[MPI_MAX_PROCESSOR_NAME];
	MPI_Init(&argc, &argv);
	MPI_Comm_rank(MPI_COMM_WORLD, &myid);
	MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
	MPI_Get_processor_name(processor_name, &namelen);
	if (myid == 0) printf("number of
	processes: %d\n...", numprocs);
	printf("%s: Hello world from process %d \n",
	processor_name, myid);
	MPI_Finalize();
	return 0;
	}

五、進階(GPU)

修改slurm.conf 文件
GresTypes=gpu
NodeName=slave3 Sockets=2 Procs=32 CoresPerSocket=8 ThreadsPerCore=2
RealMemory=3000 Gres=gpu:tesla:2 State=UNKNOWN NodeAddr=10.135.12.29
此外,slave3 這個機器需配置GPU 信息,編輯/usr/local/etc/gres.conf 文件
Name=gpu Type=tesla File=/dev/nvidia0
Name=gpu Type=tesla File=/dev/nvidia1
slurm 腳本中添加gres 指定gpu 資源
#SBATCH --gres=gpu:tesla:2

到此,相信大家對“Slurm集群搭建的教程”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

標題名稱:Slurm集群搭建的教程
URL標題:http://bm7419.com/article22/ijpcjc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化網(wǎng)站收錄、虛擬主機、網(wǎng)頁設計公司網(wǎng)站設計公司、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設