实验室服务器大家都是怎么管理使用的?

2021-12-19 20:48:49 +08:00
 chizuo

我们的使用

为每台服务器创建用户,有一个网页面板展示所有服务器的使用情况(主要是 GPU),大家相当于竞争状态,看到哪台服务器空了,有需要了,就把项目重新部署到空余的服务器上跑。

优势

相当程度上,能够充分利用每个 gpu ,如果大家积极性高的话,不停的 switch 可以充分利用所有自愿(比较牵强)

劣势

劣势太明显了,有时候跑着停了一下或者正在改代码、debug ,显卡就被别人用上了。你就要重复部署自己的项目到空余的服务器上,而且文件碎片严重,也比较浪费存储空间,很多时候大家的项目都是复制了好几遍在各个服务器上。一些大的数据集、静态文件也散落各地。

请问大家有没有比较好的服务器使用管理办法?

比较为难的是,服务器的配置不一样的,有的老 titan ,有的 3090 、Tesla ,大家都不管模型大小都倾向于在新服务器上跑,有些旧服务器都是空闲状态。

注意不能改造、重做系统,因为大家都历史遗留 checkpoint 各种文件、特定环境,而且各系统横跨各种版本。

或者有没有在这种管理方式下,比较方便的项目文件同步?

目前用 rsync 写了脚本,但是由于文件规则复杂(有时候只同步代码,有时候又要同步模型),很麻烦,而且很容易出错,想象你在几台服务器上,那个跑 A 实验,这个跑 B 实验,有时还要把两者结果传来传去。甚至做实验旧了,都忘记了实验结果在哪台服务器上。

谢谢大家

4299 次点击
所在节点    问与答
23 条回复
haiyang1992
2021-12-19 21:06:42 +08:00
我们用 condor 来统一管理,开发配置实验什么的都在一台服务器上,其他服务器只负责跑实验,正在考虑迁移到 slurm ,系统是 rhel 有系里专门的 it 来管理
haiyang1992
2021-12-19 21:08:57 +08:00
存储的话是 nfs 挂载 raid 阵列,所以所有服务器看到的都是同一套文件系统,不需要同步文件。
Donahue
2021-12-19 21:15:27 +08:00
@haiyang1992 不会因为内网带宽导致数据加载慢吗,有些数据集是几万张图片,有些数据集是单个文件但是非常大 1-10GB ,你们内网是万兆吗
haiyang1992
2021-12-19 21:26:35 +08:00
@Donahue #3 是万兆,可能因为我们这个不是 GPU 集群吧,实验室不是搞深度学习的。不过这个时候网络速度也不能算瓶颈了而是硬盘速度?
CrossEntropy
2021-12-19 21:40:23 +08:00
用了浪潮的 AIStation 集群方案
CrossEntropy
2021-12-19 21:42:27 +08:00
但是之前意外停电集群挂过几次,现在准备试试 OpenPAI 。
XiLingHost
2021-12-19 21:43:05 +08:00
建议存储和计算分离,最好搞虚拟化集群
paopjian
2021-12-19 23:04:05 +08:00
这么多服务器得话得用超算架构了吧,我们学校是 Slurm
Scirocco
2021-12-20 00:17:40 +08:00
我们也 OP 这种竞争方式,效率极低,由于服务器太多了,甚至大家都不知道有哪些是空着的。

还有几台服务器不能上网,导致 git clone 都用不了,软件也装不了,大家都不愿意用。

插眼一波,看看有没有好的解决方法
Scirocco
2021-12-20 00:20:06 +08:00
不过我们是做通信的,虽然天天都在用服务器,但是其实很多人只会基础操作,不知道换架构会不会学习成本太高。

(况且感觉老师会嫌太麻烦,不予考虑
rayhy
2021-12-20 01:11:35 +08:00
挺难搞的,同求靠谱方案。我们也是新旧服务器都有,系统版本也乱七八糟。目前我们的方案是每个服务器上都装 docker ,每个人一个 docker 容器。其实就是拿 docker 当虚拟机用。每个 docker 都绑了几个 host 机器的端口,可以正常的搞 ssh ,tensorboard 那些东西。然后实验室按小组分服务器。搞一个方向的人用固定的服务器,这样服务器上不需要搞各个方向的数据集。

其实学校里搞这些最大问题是,如果没有专门的管理人员,基本上都是靠学生自己维护。搞太复杂的方案,懂得人一毕业就完蛋了。
noqwerty
2021-12-20 01:11:59 +08:00
这么多机器而且都有显卡的话,可能用 Slurm / Torque 管理会更好一些。我们只有一台机器有显卡所以不存在这个问题。。
Jakarta
2021-12-20 02:12:28 +08:00
只用过学校的 slurm ,国内外很多高校都在用。但是这玩意只适合有 IT 运维专人管理的情形。
如果是实验室规模,我建议使用 Determined ,我没用过,可以参考这篇文章 https://zhuanlan.zhihu.com/p/422462131
rpman
2021-12-20 03:23:53 +08:00
@Donahue 那是 A100 8 卡才要考虑的问题,而且此时有 infiniteband
Mithril
2021-12-20 09:09:01 +08:00
野生放养就是了,除非有专门人维护,不然一毕业全完蛋。
而且用网络存储速度比服务器里自带的 SSD 差远了。测试的时候你可能觉得单机跑没啥问题,等你有个三五台服务器,每台都在撸数据的话,IO 直接炸掉。到时候你就发现限制你性能的不是 GPU ,而是 IO 。GPU 大部分时间都在等 IO 。而且有的框架写的垃圾,调 IO 很频繁。
最好的办法是你自己写个程序来回搬运数据,谁要用某台机器了,就把他的数据搬过去。
但还是那句话,你就算写了这东西,等你毕业了也全完蛋。所以还是别折腾了,抢吧。
shakoon
2021-12-20 09:17:48 +08:00
搞一个虚拟化集群,把现有服务器都加入进去,然后就分配一台占用了所有资源的虚拟机,开若干个用户,每个人都随时可以去使用,无需任何检查和等待,也不用到处复制文件。
SJ2050cn
2021-12-20 09:57:38 +08:00
用 slurm 吧
Rheinmetal
2021-12-20 10:12:35 +08:00
理论上超融合架构成一个集群效率高
比如全部用 proxmox ve 做成资源池
z740713651
2021-12-20 11:16:40 +08:00
GrayXu
2021-12-20 15:03:41 +08:00
@Jakarta Determined 好像只能独占单卡?
@rayhy 感觉这还是个挺刚需的问题,以前的组也是按小组来分机器,还没想到过这个问题。看楼上的回复,感觉无专门运维的场景下,物理上把人和机器绑定才能完美解决这个问题。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/823176

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX