在高性能计算(HPC)上运行网络服务?这太愚蠢了吗?


7 个月前

如果你想提供一个需要大量计算能力的长期后端网络服务,但你组织中所有强大的机器,包括那些带有 GPU 的机器,都安装在一个只允许提交批处理作业的高性能计算(HPC)系统中,你该怎么办?

你面临两个问题:

  1. HPC 批处理系统只允许你运行作业几个小时,或者几天,之后会终止作业,或者因为其他高优先级作业的到来而随时终止你的作业,这样你的网络前端或客户端进程将无法使用后端。
  2. HPC 系统中的强大计算节点通常隐藏在一个称为“登录节点”的网关节点后面。你可以访问登录节点,但只能从那里看到计算节点,而无法直接从你的网络服务器或客户端进程访问。

那么,我们在讨论哪些用例呢?举个例子,许多组织不允许使用 ChatGPT 或其他基于云的 AI 系统,并希望构建自己的本地聊天机器人。为此,你需要一台强大的推理服务器,配备 GPU,以托管开源的大型语言模型(LLM),例如 Llama。但是,如果你所有的强大机器都在 HPC 系统中,你该怎么办?

forever-slurm 通过使用一个名为 Traefik 的负载均衡代理来解决这个问题,该代理位于登录节点上,并将流量路由到当前正在运行合适作业的一个或多个计算节点。forever-slurm 将根据需要向集群提交尽可能多的作业,以创建一个稳定的环境,确保始终有至少一个节点运行适当的软件。

None

还有更多的内容,比如保持一些元数据,告诉 Traefik 使用哪些节点和端口,并确保属于同一服务的进程不会落在同一个计算节点上,以确保一定程度的高可用性。你可以在几秒钟内准备好运行 forever-slurm;只需执行设置脚本 ./config.sh

现在,你可能会争辩说这是个搞笑的主意,因为庞大的 Llama 3.1 405B 模型会占用大约 6 个 A100 GPU(每个 80GB),用于 LLM 推理服务器,而大部分时间都处于闲置状态。这相当于一台价值 15 万美元的机器在闲置!那该怎么办呢?一种解决方案可能是在 HPC 集群外购买一台价值 15 万美元的专用服务器。这有两个效果:

  1. HPC 系统管理员和 HPC 指导委员会会觉得更好,因为一个低效的过程被移除出他们关心的系统。
  2. 整个组织的低效性进一步增加,因为现在我们看到这台机器将更加闲置,因为它永远无法用于其他计算。

显然,这是一个 Verschlimmbesserung(更糟的改善)。我们该如何克服这个问题?我们知道企业 HPC 系统的某些部分总是处于闲置状态;实际上,平均利用率达到 80% 或更高的系统会被认为相当繁忙。然而,大多数 HPC 系统都有一个选项,可以暂时提供这些剩余资源,如果你允许系统在更高优先级的批处理作业到来时将其收回。你只需在作业中添加“可抢占”选项,这可以由你的 HPC 系统管理员为作业队列设置。通过这个功能,forever-slurm 可以抓取 HPC 系统上的闲置周期,并确保始终有至少一个计算节点在运行,Traefik 可以将流量路由到该节点。

FluxAI 中文

© 2025. All Rights Reserved