V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chizuo
V2EX  ›  问与答

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

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

    我们的使用

    为每台服务器创建用户,有一个网页面板展示所有服务器的使用情况(主要是 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 。
    XiLingHost
        7
    XiLingHost  
       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   ·   实用小工具   ·   3100 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:55 · PVG 20:55 · LAX 04:55 · JFK 07:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.