实验室服务器大家都是怎么管理使用的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chizuo
V2EX    问与答

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

  •  
  •   chizuo 2021-12-19 20:48:49 +08:00 5195 次点击
    这是一个创建于 1469 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们的使用

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

    优势

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

    劣势

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

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

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

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

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

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

    谢谢大家

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

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

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

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

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

    当集群玩了,排队功能还是很好玩的。
    zxCoder
        22
    zxCoder  
       2021-12-21 11:14:05 +08:00
    我们直接分配到人。。。。。直接野生使用
    hhs66317
        23
    hhs66317  
       2021-12-24 14:44:37 +08:00
    服务器都在一个机房的话,存储用 NFS 挺好的,万兆内网,这样至少最烦人的文件同步就不用担心了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3439 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 00:14 PVG 08:14 LAX 16:14 JFK 19:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86