计算节点是什么?集群中真正负责运行计算任务的机器
计算节点(Compute Node)是计算机集群、分布式系统或云计算平台中,专门负责执行计算任务的那部分机器。一个大型的计算系统通常由许多台服务器组成,它们分工不同,计算节点就是其中真正“干活”的那些机器。
集群里的分工
一个典型的高性能计算集群通常包含几类节点:登录节点,用户通过它登录集群,编写代码、提交任务,一般不在上面运行繁重的计算;管理节点,也叫头节点或控制节点,负责管理整个集群,运行作业调度系统,决定哪个任务在哪些计算节点上运行;计算节点,数量最多,负责实际执行计算任务;存储节点,负责存放数据,通过并行文件系统为计算节点提供高速的数据读写。
用户提交一个计算任务时,需要说明要用多少个处理器核心、多少内存、多少块 GPU、运行多长时间。作业调度系统,比如常用的 Slurm,会根据当前各个计算节点的空闲情况,把任务分配到合适的节点上运行,并管理排队等待的任务。
计算节点的配置
计算节点通常配备多颗高性能的处理器、大容量的内存,以及高速的网络接口。根据用途的不同,计算节点可以分为几类:通用的 CPU 计算节点;配备 GPU 等加速卡的加速计算节点,用于 AI 训练和科学计算;以及配备超大内存的胖节点,用于需要大量内存的任务。
在 AI 训练中的计算节点
在大模型训练中,每台配备了多块 GPU 的服务器就是一个计算节点,比如一台装有 8 块高端 GPU 的服务器。训练一个大模型往往需要成百上千个这样的节点同时工作。节点内部,GPU 之间通过 NVLink 等高速链路互联;节点之间,则通过 InfiniBand 或高速以太网连接,并采用 RDMA 等技术降低通信延迟。因为训练过程中各个节点之间需要频繁地同步数据,网络的带宽和延迟对整体的训练效率影响很大,常常成为瓶颈。节点的数量越多,出现故障的概率也越高,因此大规模训练需要完善的故障检测和自动恢复机制。
在云计算中
在云计算平台中,计算节点是承载虚拟机或容器的物理服务器。用户购买的云服务器实例,实际上运行在某个计算节点上,由云平台统一调度和管理。在 Kubernetes 等容器平台中,运行容器的工作机器也被称为节点。