使用 Slurm 配置 Nvidia GPU 集群

记录下使用 slurm 搭建 gpu 集群的过程,以下命令都是用 root 用户执行,切记。

安装

编译 munge

wget https://github.com/dun/munge/releases/download/munge-0.5.15/munge-0.5.15.tar.xz
tar xvf munge-0.5.15.tar.xz
cd munge-0.5.15
./configure --prefix=/usr/local/munge-0.5.15 
# 如果报错
# centos: yum install -y libgcrypt-devel libgcrypt11-dev
# ubuntu: apt-get install libssl-dev
make -j
make install
cd ..
ln -s munge-0.5.15 munge

编译 pmix

# 编译 hwloc
mkdir hwloc-2 && cd hwloc-2
wget https://download.open-mpi.org/release/hwloc/v2.9/hwloc-2.9.1.tar.gz
tar xvf hwloc-2.9.1.tar.gz 
cd hwloc-2.9.1
./configure --prefix=/usr/local/hwloc-2
make -j
make install
cd ../..
ln -s hwloc-2 hwloc# 编译 libevent
wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
tar xvf libevent-2.1.12-stable.tar.gz 
cd libevent-2.1.12
./configure --prefix=/usr/local/libevent-2.1.12
make -j
make install
cd ..
ln -s libevent-2.1.12 libevent # 编译 pmix
mkdir pmix-4 && cd pmix-4
wget https://github.com/openpmix/openpmix/releases/download/v4.2.7/pmix-4.2.7.tar.gz
tar xvf pmix-4.2.7.tar.gz
cd pmix-4.2.7
./configure --prefix=/usr/local/pmix-4 --with-hwloc=/usr/local/hwloc --with-libevent=/usr/local/libevent
make -j
make install
cd ../..
ln -s pmix-4 pmix

编译 openmpi

# 编译 ucx
wget https://github.com/openucx/ucx/releases/download/v1.15.0/ucx-1.15.0.tar.gz
tar xvf ucx-1.15.0.tar.gz 
cd ucx-1.15.0
./configure --prefix=/usr/local/ucx-1.15.0
make -j
make install
cd ..
ln -s ucx-1.15.0 ucx# 编译 openmpi 
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz
tar xvf openmpi-4.1.6.tar.gz
cd openmpi-4.1.6
./configure --prefix=/usr/local/openmpi-4.1.6 --with-pmix=/usr/local/pmix --with-ucx=/usr/local/ucx --with-hwloc=/usr/local/hwloc --with-libevent=/usr/local/libevent
make -j
make install
cd ..
ln -s openmpi-4.1.6 openmpi

编译 Slurm

wget https://download.schedmd.com/slurm/slurm-23.02.6.tar.bz2
tar xvf slurm-23.02.6.tar.bz2
cd slurm-23.02.6
./configure --prefix=/usr/local/slurm-23.02.6 --with-pmix=/usr/local/pmix --with-munge=/usr/local/munge --with-hwloc=/usr/local/hwloc --with-ucx=/usr/local/ucx
make -j
make install
cd ..
ln -s slurm-23.02.6 slurm

添加环境变量

参考 slurm集群安装与踩坑详解 | 我是谁 (yuhldr.github.io)。

配置(node 数目为 2)

slurm.conf 参见:slurm.conf (github.com)

gres.conf 参见:gres.conf (github.com)

启动

# control machine: /var/log/slurmctld.log 查看是否报错
munged
munge
slurmctld
slurmd# node:/var/log/slurmd.log 查看是否报错
munged
munge
slurmd

检查

sinfo # 打印信息 是 idle 说明配置成功
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
debug*       up   infinite      2    idle 8A800-[1-2]# 如果遇到 "undrain" 的情况
scontrol update nodename=node10 state=idle

集群训练模型

使用集群用 xtuner 微调 yi-34b 为例:

srun -p debug --job-name=xtuner --nodes=2 --gres=gpu:8 --ntasks-per-node=8 --kill-on-bad-exit=1 xtuner train yi_34b_qlora_alpaca_enzh_e3 --launcher slurm

参考

  1. slurm集群安装与踩坑详解 | 我是谁 (yuhldr.github.io)

  2. Slurm 20.02.3 集群添加gpu节点 No. 2-1_slurm 添加节点-CSDN博客

  3. Slurm | NVIDIA Developer

  4. How to "undrain" slurm nodes in drain state - Stack Overflow

  5. Slurm Workload Manager - gres.conf --- Slurm 工作负载管理器 - gres.conf (schedmd.com)

  6. Slurm Workload Manager - Generic Resource (GRES) Scheduling --- Slurm 工作负载管理器 - 通用资源 (GRES) 调度 (schedmd.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机导论Lesson0——认识函数的基本原理

学习资料:https://www.bilibili.com/video/BV1HW4y1A7Yi?p2&vd_sourced6b1de7f052664abab680fc242ef9bc1 为什么计算机里计数从0开始?——0代表位置,而不是个数 我们希望从个位开始计数,即代表的是1(从右至左&…

MySQL-SQL编写练习:基本的SELECT语句

基本的SELECT语句 1. SQL的分类 DDL:数据定义语言。CREATE \ ALTER \ DROP \ RENAME \ TRUNCATEDML:数据操作语言。INSERT \ DELETE \ UPDATE \ SELECT (重中之重)DCL:数据控制语言。COMMIT \ ROLLBACK \ SAVEPOINT \ GRANT \ REVOKE 学习技巧&#xf…

【测试篇】测试用例

文章目录 前言具体设计测试用例等价类边界值场景设计法判定表(因果图)正交排列(用的非常少)错误猜测法 前言 什么是测试用例?? 测试用例是针对软件系统或应用程序的特定功能或场景编写的一组步骤&#xf…

cookie/session/token三者区别和优缺点

cookie/session/token三者区别和优缺点 cookiesessiontoken三者对比 cookie cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。所以cookie是保存在浏览…

后端返还二进制excl表格数据时候,如何实现在前端下载表格功能及出现表格打开失败的异常处理。

背景: 后端返还一个二进制流的excl表格数据,前端需要对其解析,然后可提供给客户进行下载。 思路:把二进制流数据转换给blob对象,然后利用a标签进行前端下载。 代码: 后端返还 类似如下的数据 前端代码…

每日一题 --- 前 K 个高频元素[力扣][Go]

前 K 个高频元素 题目:347. 前 K 个高频元素 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2]示例 2: 输入: nums [1], k 1 输出: …

电商技术揭秘六:前端技术与用户体验优化

文章目录 引言一、前端技术在电商中的重要性1.1 前端技术概述1.2 用户体验与前端技术的关系 二、响应式设计与移动优化2.1 响应式设计的原则2.2 移动设备优化策略2.3 响应式设计的工具和框架 三、交互设计与用户体验提升3.1 交互设计的重要性3.2 用户体验的量化与优化3.3 通过前…

AI绘画:使用Stable Diffusion ComfyUI进行换脸:IPAdapter FaceID全面教程

在数字艺术和媒体编辑领域,换脸技术已经成为一种流行且强大的工具。它允许创作者将一个人物的面部特征无缝地转移到另一个人物上,创造出令人信服的视觉作品。Stable Diffusion ComfyUI提供了一个高效的平台,让用户能够轻松地实现换脸。本文将…

Useros.environ[“CUDA_VISIBLE_DEVICES“] = “1“

在Python中,os.environ["CUDA_VISIBLE_DEVICES"] "1"这行代码的作用是设置环境变量CUDA_VISIBLE_DEVICES为"1"。这通常用在基于CUDA的应用程序中,尤其是在使用NVIDIA GPU进行深度学习开发时。环境变量CUDA_VISIBLE_DEVIC…

某奇蓝牙平台开发要点

zkhengyang,可申请加入数字音频系统研究开发交流答疑群 0 芯片型号 WQ7034AX 分为两种类型sdk,2.1版本sdk,以及支持LE Audio版本的SDK 1 开发环境搭建,分为linux环境和windows环境,使用linux方式搭建方便在服务器上…

JSON的定义和基本使用

1、JSON的特点: JSON是一种轻量级的数据交换格式,是由字符串化的键值对构成。基于网络的前后端通信,数据在服务端和客户端之间进行传输,采用的就是JSON的格式来进行交互。JSON采用完全独立于语言的文本格式,JSON的数据格式完全独…

日期(蓝桥备赛)

1.顺子日期 问题描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结 果输出即可。 小明特喜欢顺子。顺子指的就是连续的三个数字: 123、 456等。顺 子日期指的就是在日期的yyyymmdd示法冲,存在任意连续的三 位数是一个顺子的…

OpenHarmony相机和媒体库-如何在ArkTS中调用相机拍照和录像。

介绍 此Demo展示如何在ArkTS中调用相机拍照和录像,以及如何使用媒体库接口进行媒体文件的增、删、改、查操作。 本示例用到了权限管理能力ohos.abilityAccessCtrl 相机模块能力接口ohos.multimedia.camera 图片处理接口ohos.multimedia.image 音视频相关媒体业…

了解以太坊虚拟机(EVM)

了解以太坊虚拟机(EVM) 以太坊虚拟机(Ethereum Virtual Machine,简称EVM)是以太坊网络的核心组件之一,它承担着智能合约执行的重要任务 特点 智能合约执行环境:EVM提供了一个安全的环境&#xf…

易宝OA ExecuteSqlForDataSet SQL注入漏洞复现

0x01 产品简介 易宝OA系统是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台,具有信息管理、 流程管理 、知识管理(档案和业务管理)、协同办公等多种功能。 0x02 漏洞概述 易宝OA ExecuteSqlForDataSet接口处存在SQL注入漏洞,未经身份认证的攻击者可以通过…

韩顺平Java | C24 MySQL数据库

MySQL安装和配置 MySQL5.7(稳定)、Navicat、SQLyog MySQL三层结构:数据库管理系统DBMS-数据库DB-表Table(行/记录-用对象表示) 使用命令行窗口连接MySQL数据库 net stop mysql服务名 net start mysql服务名 mysql -h 主机名 -P端口 -u用户…

k8s部署微服务例子

一、部署服务 需要部署minio、nacos、mysql、consul、elasticsearch、视频解析服务、nfs、skywalking-oap及ui。 二、三个微服务程序 minio服务解析视频-》上传到minio进行存储,构造领域对象信息保存到hive(hive on spark)异步处理-》元数据…

第十三题:天干地支

题目描述 古代中国使用天干地支来记录当前的年份。 天干一共有十个,分别为:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(w)、己&a…

centos 如何安装nvidia-container-runtime

在CentOS上安装nvidia-container-runtime,首先需要确保你的系统已经安装了NVIDIA的驱动和docker。以下是安装步骤: 确保Docker已安装: sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/lin…

最新流行IT技术

最新流行IT技术 前端技术对应链接Reacthttps://react.docschina.org/docs/getting-started.htmlVuehttps://cn.vuejs.org/v2/guide/Ant-Designhttps://ant.design/docs/react/introduce-cnMateriaEl-UIhttps://mui.com/zh/getting-started/usage/Echartshttps://echarts.apach…