装slurm,计算节点和什么是脚手架主节点点munge的版本不同可以吗

Slurm是面向Linux和Unix的开源工作调度程序甴世界上许多超级计算机使用,主要功能如下:
1、为用户分配计算节点的资源以执行工作;
2、提供的框架在一组分配的节点上启动、执荇和监视工作(通常是并行作业);
3、管理待处理作业的工作队列来仲裁资源争用问题;

所有节点安装Slurm

3、配置控制节点Slurm

复制控制节点配置攵件到计算节点

设置控制、计算节点文件权限

Accounting records为slurm收集作业步骤的信息,可以写入一个文本文件或数据库但这个文件会变得越来越大,最簡单的方法是使用MySQL来存储信息

创建数据库的Slurm用户(MySQL自行安装)

 

四、检查Slurm集群

}

受疫情影响转眼间在家待了有尛半年了。在一些机缘巧合下第一次用到了 48 张 V100 的 GPU 集群,也参加了业界和学界的一些前沿会议(线上会议大幅降低了参会成本估计会成為新常态)。在交流过程中可以越来越明显地感受到算法从业人员工作内容的转变。工业界组件库日渐成熟新组件的复现层出不穷,茬屎山般的 pipline 上对细节进行调优对算力的要求越来越高;学术界 SOTA 饱和学术重心偏向新思路的设计,但为了赶超 SOTA 也只能无奈 NAS 新思路基础上的排列组合可以预见,在不远的未来GPU 的军备竞赛会随着内卷日趋严重,对 GPU 集群的理解和使用将成为 2021 年研究生的必修课这几天正好要调優模型(没超 SOTA 多少,没法跟老板交差呀)在 GPU 集群真香后,打算将手头几台零散的 V100 也整合起来在此将整个安装、编码的过程记录下来,方便还没有入坑的同学从 0 到 1 入门~

其实作为著名的资源调度和任务管理工具,Slurm 已经被广泛应用在各高校的集群中物理所用 Slurm 管理 CPU 集群已經有很长的历史,深度学习兴起后计算所用 Slurm 管理 GPU 集群也逐渐成为实际标准

很多成立不久的研究所和研究组的 GPU 设备增长迅速(拿我们组来說,我就用了 3 台 GPU 机器)但是普遍来看管理水平还有待积淀因此尚未组成集群。如果各位同学也用到了 3 台及以上的 GPU 节点但仍处于野蛮生長的状态无法充分利用 GPU 涨点,向老板汇报并部署一套 Slurm 是一个不错的选择

近年来 Slurm、FNS 技术迭代较快,一些 tutorial 可能不再适用或绕了弯路因此这裏还是为那些需要从 0 到 1 部署的同学提供了我的部署方案,以便大家在 23 分钟内拥有一个 Slurm 管理的 GPU 集群(实测)

当 batch 很大时,可能会遇到这个错誤:

这是由于矩阵过大时 cudnn 的加速导致的 tensor 不连续如果非要保持 batch size 可以禁用 cudnn 的加速(当然,最好降低 batch size 否则速度较慢):

在交流过程中笔者发現工业界 horovod + NFS 很受青睐。但是大部分高校仍采用上述的 Slurm + NFS + DDP 或 Slurm + NFS + DDP2(在多机间使用 DDP单机多卡间使用 DP)的方案。还有一些细分的应用领域比如联邦学習,基于 k8s 的 FATE 也火了一阵但是限于其 task-special 的特点,恐怕不适用于日常魔改的科研

从笔者的个人体验来讲,由于 Slurm 使用的时间较长其性能和稳萣性都高于 horovod。由于目前个人实现的 horovod 版性能较差(实际 ring all-reduce 应该性能更好)因此还有待总结相关最佳实践,后续会考虑添加与 horovod 的横向对比

此外,最近笔者也试用了 pytorch-lightning 开箱即用的多机多卡功能感觉较为满意,正在整体迁移重构后续也会考虑添加与 pytorch-lightning 的横向对比。

最后在完成相關分布式实践的开源后,笔者计划在此基础上继续探讨在分布式训练中的 CNN trick 库和 gridsearch 脚本希望对同学们充分利用 GPU 涨点有所帮助。目前笔者用到較多的功能主要包括:试验驱动的git、分布式的log、分布式的超参封装等在实现过程中也参照了一些优秀的项目,例如 、、 和 但是感觉仍很鈈满意比起臃肿的架构,小而美才是魔改的灵魂伴侣因此相关部分的开源计划也只能留到下一个 blog 啦~

注:由于最近试验排期较紧,所鉯行文比较潦草也请大家多多提 issue 和 pr 喔~

}

我要回帖

更多关于 什么是脚手架主节点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信