ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

InfiniBand网络在HPC集群中的核心应用与性能调优实践

InfiniBand网络在HPC集群中的核心应用与性能调优实践 还记得我第一次给客户调HPC集群时碰到的第一个怪问题跑分子动力学模拟64个GPU节点算力明明够可是MPI_Allreduce一跑就卡住整机利用率上不去。查了半天发现瓶颈根本不在GPU上而是节点之间通信走的千兆以太网数据在网卡、内核、协议栈里绕了一大圈才到对端GPU。后来在毅硕HPC的机柜里换上InfiniBand网络同样一套集群同样的作业端到端时间直接砍掉了将近一半。那次之后我算彻底明白了一件事HPC集群的性能天花板很多时候不取决于算得多快而取决于数据搬得有多快。今天这篇就是想把InfiniBand网络在HPC集群里的核心应用拆开讲透。不管你是刚搭过一套小集群的运维还是正在规划GPU集群的架构师这篇文章都会对你有用。我会从硬件选型、网络拓扑、部署配置、性能调优到排障实践按真实交付流程把关键点一一捋清楚也会把我踩过的坑原原本本列出来。1. 为什么HPC集群的网络不能将就从一次实测数据说起1.1 千兆以太网和InfiniBand在同一条命令下的差距我先给你看一组自己实测的数据场景很简单4台双路服务器每台插4块A100 GPU跑同一个MPI集合通信基准测试消息大小1MB进程数64。网络类型Allreduce延迟聚合带宽CPU占用千兆以太网约3.2ms约90MB/s两个核接近打满25G以太网RoCE约180us约3.1GB/s单核仍有明显占用InfiniBand HDR约32us约6.4GB/s几乎可以忽略差距不是一点半点。千兆以太网在64进程Allreduce这种场景下延迟比InfiniBand慢了约100倍。如果作业里频繁做全局归约、广播这类集合通信整个集群的扩展效率会被网络拖到惨不忍睹。这个现象背后有个基础结论HPC作业普遍遵循Amdahl定律的串行占比逻辑通信就是那个串行部分。算得再快只要通信时间占比降不下来加速比就上不去。而InfiniBand的核心价值就是把通信延迟和CPU开销同时压到极低。1.2 集群规模越大网络问题越早暴露很多刚入行的朋友觉得小集群用万兆网就够了。我劝你别这么想。当节点数从8个加到16个时Allreduce这类操作的通信量不是线性增长而是接近对数量级的参与方协调加上数据量的成倍累积。节点越多拓扑中经过的交换机层级越多拥塞点越集中以太网的劣势就越明显。我之前帮一个高校实验室搭过一套32节点的GPU集群最初方案用的是25G以太网RDMA over Converged Ethernet也就是RoCE。小规模跑测试没太大问题一旦整集群满载跑大模型训练PFC流控导致的死锁和优先级反转问题就频繁出现训练任务隔三差五卡死。换成InfiniBand之后这些问题基本没再出现过。InfiniBand在设计之初就是奔着超大规模高性能计算去的它原生支持子网管理、自适应路由、拥塞控制这些能力是普通以太网协议栈不具备的。简单说InfiniBand是为以纳秒为单位抢时间的场景而生而不是为把网页传回浏览器这类场景。2. RDMA和子网管理器InfiniBand最核心的两个底层机制2.1 RDMA为什么能做到低延迟低CPU开销InfiniBand最引以为傲的机制就是RDMA远程直接内存访问。传统TCP/IP路径是这样的数据从应用程序拷贝到内核缓冲区经过协议栈封包、路由、校验再到网卡发出。对端收到后又要经过协议栈解包数据从内核缓冲区拷贝到用户空间。整个过程中CPU参与了大大小小至少四次数据拷贝。RDMA的路径完全不同。应用程序直接注册一片内存区域把地址信息告诉网卡网卡通过DMA直接读取这片内存的数据封装成报文发出去。接收方网卡收到报文后也通过DMA直接写入预先注册好的内存区域整个过程不经过内核协议栈CPU除了初始化和完成通知基本不参与数据搬运。我经常用快递来打比方。传统网络相当于你亲自把文件送到快递站快递员再送到对方城市的快递站对方还得亲自来取。RDMA相当于你家门口装了直通对方家里的管道文件直接滑过去中间没人要签字确认。省掉的环节越多延迟自然越低CPU也越省。2.2 子网管理器相当于网络的指挥调度中心InfiniBand子网里有个特殊角色叫子网管理器通常运行在某个管理节点上也可以跑在交换机内部。它的作用相当于整个InfiniBand子网的大脑负责发现所有端点和交换机给每个端口分配LIDLocal ID计算路由路径并把这些信息下发到交换机和端口的转发数据库里。刚接触InfiniBand的人常问一个问题InfiniBand是交换网络交换表谁来维护答案就是子网管理器。以太网靠STP、BGP这类协议自治InfiniBand则把路径计算集中到了子网管理器上。所以子网管理器挂了整个子网的数据转发都会出问题这也是为什么生产环境一定要做主备子网管理器。我们有一台独立的管理服务器专门跑两个opensm进程一台主一台备。主节点挂了之后备用节点会在几十秒内接管重新下发路径和端口状态对运行中的作业会有瞬断影响但至少不会让整个集群完全瘫掉。2.3 分区机制InfiniBand版的VLANInfiniBand里还有个概念叫P_Key分区键机制上很像以太网的VLAN。不同分区的端口之间无法直接通信只有配置了相同P_Key的端口才能互访。默认分区是0x7FFF或者0x8001所有端口默认属于这个分区。我见过不少配置事故就是分区表弄错了导致某些节点之间互相ping不通。InfiniBand的P_Key是16位的其中最高位表示是否强制成员关系。0x8001和0x0001在通信组匹配时表现不同0x8001表示该成员关系是受限的只有同样具备0x8001的端口才能建立通信。简单的说把P_Key理解成门禁卡上的权限码就行码对上了才能进同一扇门。生产环境里我会把管理网络、存储网络、计算网络规划成不同的P_Key域避免存储流量和计算流量相互干扰也能防止误配置导致的异常跨网访问。3. 硬件选型和集群拓扑从网卡、线缆到交换结构3.1 HCA网卡怎么选PCIe版本和端口速率要匹配InfiniBand的网卡在官方术语里叫HCA主机通道适配器。目前市面上主流是NVIDIA的ConnectX系列有单端口和双端口两种规格。选型时第一看PCIe带宽是否够用第二看端口速率和交换机是否匹配。以ConnectX-6 HDR为例单端口速率是200Gb/s双端口就是400Gb/s全双工。它需要PCIe 4.0 x16的接口才能跑满单端口如果你插在PCIe 3.0 x16上带宽就会受PCIe瓶颈限制实际只能跑到100Gb/s左右跟预期差一半。所以买之前一定先看服务器的PCIe通道是几代的插槽是x8还是x16。我给很多客户做方案时遇到过这样的情况节点上明明有PCIe 4.0 x16插槽但插槽物理上是x16电气上只有x8结果HDR网卡只能跑半速。排查了很久才发现是服务器厂商在低配型号上做了通道阉割。这点在选型阶段一定要和服务器厂商确认清楚。3.2 线缆选型短距离DAC长距离AOC或光模块InfiniBand的物理连接有三种主流方案DAC直连铜缆、AOC有源光缆、光模块加光纤。选哪种主要看距离和成本。连接方式典型距离优点缺点DAC直连铜缆1~3米成本最低功耗低即插即用距离短线缆硬AOC有源光缆3~100米距离灵活线缆柔软比DAC贵一些光模块光纤100米以上最灵活可定制成本最高需额外管理同一个机柜内部的服务器互联我基本都用DAC铜缆成本低而且信号稳定。跨机柜或者机柜间距超过3米的场景建议用AOC。超过100米的互联比如跨楼层甚至跨机房就老老实实上光模块加单模光纤。有个容易忽略的点线缆的接口方向。有些线缆是A端和B端有区分的接反了指示灯状态异常。不过现在大部分DAC线缆都做了交叉自适应接反了也能正常工作老的线缆型号可能不行。买之前问清楚供应商。3.3 拓扑规划两层Fat-Tree是比较务实的选择InfiniBand的拓扑也有讲究。小规模集群可以用一个交换机做扁平组网所有节点直连到同一台交换机上。但节点数超过单台交换机的端口数时就得做多级交换网络。最常见的是两层Fat-Tree结构也叫叶脊架构。底层是叶子交换机负责接入计算节点。顶层是脊交换机负责互联所有叶子交换机。这种结构的无阻塞带宽取决于上联链路数量和下联端口数之间的比例。我一般会做1:1无阻塞设计意思是叶子交换机上联带宽总和等于下联计算端口带宽总和这样任意两个节点之间的通信带宽都有保障。如果预算有限也可以做1:2收敛比上联带宽是下联的50%成本能省不少但网络拥塞概率会上升。对于跑大模型训练或大规模MPI作业的集群我建议还是优先保证1:1。3.4 以毅硕HPC的小型集群为例拿我们一套较小的8节点交付配置来说每台节点配一块ConnectX-6 HDR单端口网卡两台36端口的HDR交换机做叶脊组网一台作主交换机一台作备。每台节点接主交换机同时预留一台上联。整网1:1无阻塞8台机器跑起来MPI Allreduce延迟可以稳定维持在1.5微秒量级完全满足中小规模AI训练场景的需求。4. 部署和配置步骤从裸机到能跑MPI作业4.1 安装OFED驱动版本匹配是第一位拿到机器后的第一步是装驱动。InfiniBand网卡驱动不是系统自带的需要安装OFED套件Open Fabrics Enterprise Distribution。不同的网卡和内核版本对应不同的OFED版本装错很容易出现编译失败或者网卡无法识别的问题。我一般先去NVIDIA官网下载对应型号的MLNX_OFED然后用系统自带的包管理器安装依赖再解压安装。基本流程如下# CentOS/Rocky 8/9 上以MLNX_OFED为例 uname -r # 确认内核版本 rpm -qa | grep kernel-devel # 确认kernel-devel存在且版本一致 tar xf MLNX_OFED_LINUX-5.8-1.0.1.1-rhel8.1-x86_64.tgz cd MLNX_OFED_LINUX-5.8-1.0.1.1-rhel8.1-x86_64/ ./mlnxofedinstall --all安装过程会重新编译内核模块所以必须提前装好kernel-devel和gcc等编译工具。装完之后重启执行ibstat或者ibstatus看网卡状态是否正常。提示生产环境建议安装前先做快照或保留可回滚的引导配置驱动安装虽说不难但一旦和现有内核模块冲突可能影响机器重启。一个常见问题是系统自带的内核模块和OFED自带的模块互相覆盖导致加载顺序异常。我一般会用modprobe -r mlx5_core modprobe mlx5_core重新加载模块必要时重启确认状态。4.2 配置子网管理器先规划好主备节点装好驱动后下一步是配置子网管理器。如果子网里没有SM所有InfiniBand端口会一直处于初始化状态链路LID都是0x0000数据完全不通。单独跑一台或两台机器安装opensm即可。# 在选定的SM管理节点上 yum install -y opensm systemctl enable opensm systemctl start opensm默认配置下opensm会指定一个主SM其他都是standby。生产环境建议在配置文件中绑定需要托管的交换机GUID避免SM跑到无关设备上。配置文件一般位于/etc/opensm/opensm.conf关键项包括# 设定SM的GUID避免多台机器抢主 sm_guid 0x248a070300aabbcc # 心跳间隔 sweep_interval 10 # 是否做路由计算 routing_engine updown配好之后用ibswitches查看交换机列表用smpquery portinfo查看端口状态确认所有端口都已获得LID。4.3 配置分区表小心默认分区号分区的配置分为两种方式使用opensm自带的静态分区文件或者用ibtools工具在线配置。我习惯用静态分区文件管理清晰且可版本控制。编辑/etc/opensm/partitions.conf语法大概是Default0x7fff, ALL storage0x8001, ALL_SWITCHES, storage_node_1, storage_node_2Default0x7fff表示默认所有端都在同一个默认分区storage分区只有存储节点和相关交换机在里面计算节点不加入改完分区配置后重启opensm让它生效。如果现场调试临时改可以用smpquery pkeys查看当前各端口的P_Key表。我踩过的一个坑是把P_Key写成了0x7fff而不是0xFFFF导致部分交换机端口和新分区无法建立有效通信。P_Key匹配是精确匹配的0x7fff和0xffff是两回事千万别凭感觉填。4.4 配置IPoIB让InfiniBand能跑IP协议虽然InfiniBand主要承载RDMA流量但日常管理、NFS挂载、作业提交之类的场景还是需要IP网络。InfiniBand上跑IP叫IPoIB配置方法和以太网很像只是需要指定子网前缀和P_Key。CentOS系下配置IPoIB在接口配置文件里加一行CONNECTED_MODEyes并指定P_Key。使用connected模式可以获得更高的IPoIB性能但要求两端都支持datagram模式更保守兼容性更好。# ifcfg-ib0 示例 TYPEInfiniBand DEVICEib0 BOOTPROTOstatic IPADDR10.1.1.2 NETMASK255.255.255.0 CONNECTED_MODEyes配置完重启网络服务ip link show ib0应该能看到UP状态和分配的IP。4.5 把调度器和MPI衔接上HPC集群里作业调度通常用Slurm。Slurm本身不直接管理InfiniBand但它会在分配节点时把节点列表告诉MPI运行时由MPI运行时去调用UCX或者OpenMPI的RDMA通道。我在Slurm里习惯把所有计算节点放进同一个分区然后设置LaunchParametersulimits确保memlock限制不会阻碍RDMA内存注册。如果ulimit -l限制太低UCX在注册内存时会报mlx5_alloc_dm或者Failed to allocate memory的错误导致通信初始化失败。MPI方面要么用OpenMPI配UCX要么用MPICH配libfabric二者都支持InfiniBand。我个人更偏好OpenMPIUCX因为UCX对NVIDIA GPU的多级传输支持更成熟可以从GPU显存直接发起RDMA传输避免GPU到CPU的额外拷贝。# OpenMPI 运行示例 mpirun --mca pml ucx --mca btl ^openib -x UCX_TLSrc,sm,cuda \ -hostfile hosts -np 16 ./my_mpi_appUCX_TLS指定可用传输列表rc指RC传输sm指共享内存传输cuda指GPU显存传输。这样配置后同节点内的进程走共享内存跨节点的走RDMA性能和资源利用率都能兼顾。5. 性能测试和调优带宽延迟以及那些被忽略的参数5.1 先用ib_write_bw和ib_read_lat验证链路质量部署完成后第一件事是验证物理链路是否达到标称速率。Perftest工具包里的ib_write_bw和ib_read_lat是必测项目。在服务端执行ib_write_bw -d mlx5_0 -x 3 # 服务端 # 在客户端执行 ib_write_bw -d mlx5_0 -x 3 10.1.1.2 # 客户端指向服务端IP-x参数是设置校验值用来验证数据完整性。跑完之后看结果中的带宽值是不是接近线速。以HDR单端口为例200Gb/s换算成字节是25GB/s实际测试能达到23GB/s以上就算正常。延迟测试用ib_read_latib_read_lat -d mlx5_0 10.1.1.2HDR单端口下实测数据在0.5~1.5微秒之间都算合理范围。如果延迟到了5微秒以上通常意味着配置有问题或者链路降速了要接着往下排查。5.2 检查MTU4092还是2048InfiniBand的默认MTU是2048字节但实际最大可以到4092字节前提是整条路径上的所有交换机端口都支持。MTU越大小包传输的封装开销越少大块数据传输效率也越高。修改MTU有两种方式一种是在opensm配置里设置全局MTU另一种是用ibportstate针对单个端口调整。生产环境建议统一设成4092避免链路两端MTU不一致导致链路建立失败。在opensm.conf里# 设定全子网最大MTU2表示4096字节档位 max_mtu 2改完重启opensm并用ibportstate确认各端口MTU已经生效。如果某些老设备不支持4092就只能迁就它降到2048性能会有一定损失但那也没办法。5.3 拥塞控制参数高负载下稳定性就差这几个开关InfiniBand在长距离、多级交换网络里拥塞控制比很多人想的更重要。NVIDIA的ConnectX网卡支持显式拥塞通知机制简称ECN。开启ECN的核心参数都通过mlnx_tune或者cma_roce_tos来配置。对于纯IB网络推荐设置如下echo 96 /sys/class/infiniband/mlx5_0/tc/0/traffic_class echo options mlx5_core lro_enable1 /etc/modprobe.d/mlx5.conf开ECN之后高并发聚合流量下交换机缓存压力会明显下降报文丢弃变少重传率下降整体吞吐更稳定。我实测过一个64节点的集群开启ECN之后Allreduce性能在高负载下的抖动从30%降到了5%以内。5.4 自适应路由别让流量永远挤在一条道InfiniBand支持自适应路由功能交换机可以根据实时负载动态选择等价路径而不是固定哈希方式。对于多路径Fat-Tree拓扑特别实用能有效分散热点流量。打开自适应路由需要交换机固件支持并在子网管理器端启用动态路由配置。opensm的配置路径是/etc/opensm/opensm.conf中的routing_engine可以设为dor即为动态最短路路由或者updown加adaptive选项。启用之后我用ibdiagnet检查路径分布可以明显看到不同聚合流量被分散到不同链路上。对于多作业并发的小集群这个特性提升很显著能让多个任务同时跑到峰值带宽而互相不干扰。注意如果交换机固件版本较老自适应路由可能存在bug建议先在做完性能对比后再决定是否长期启用。5.5 性能调优中的典型假瓶颈调优过程中经常遇到一种情况带宽测试不达标但链路状态看起来一切正常。这时候先别急着重装驱动而是优先检查PCIe协商速率。用mlxlink命令可以看到更详细的链路信息mlxlink -d mlx5_0结果里会显示PCIe速率是Gen3还是Gen4端口速率是HDR还是EDR。如果PCIe速率显示Gen3 x8HDR网卡根本跑不满因为PCIe 3.0 x8的理论带宽只有约8GB/s而HDR单端口需要接近12.5GB/s才够。还有一种情况是服务端和客户端的OFED版本不一致导致握手协商到了较低速率。两边最好使用相同或者兼容的OFED版本否则带宽只能到EDR甚至更低的档次。6. 日常运维和排障我遇到的那些坑和排查链路6.1 链路降速指示灯正常但性能减半的隐蔽问题最常见的故障是链路降速。端口从HDR 200Gb/s自动降到EDR 100Gb/s但网卡指示灯看起来还是绿的用监控系统看也不会有警报。要命的是很多作业跑得比以前慢但又不至于报错用户只会觉得最近集群有点卡。排查链路降速首先看ibstat的输出。如果状态显示Active且速率是HDR那就是正常的。如果显示EDR或者FDR说明物理链路有问题。以下的检查顺序很重要# 查看端口速率和链路状态 ibstat # 查看物理层错误计数 ethtool -S ib0 | grep -E link_down|rx_errors|phys_state # 查看MLNX网卡计数器 mlxlink -d mlx5_0链路降速的原因通常是线缆劣化、接口氧化或者线缆质量问题。DAC铜缆如果弯折半径过小或者长期振动内部信号完整性下降交换机和网卡会在Link Training阶段自动协商到更低速率来保证稳定。换一根线缆往往就解决了。6.2 子网管理器脑裂主备切换失败的排查opensm主备切换本身不难但配置不当会出脑裂。两个SM同时认为自己是主SM各自下发不同的路径计算交换机端口状态来回抖动整个子网时通时断。排查时可以用smpquery sminfo查看当前谁在担任主SMsmpquery sminfo # 输出里会包含SM的GUID和优先级opensm的优先级在配置里是sm_priority默认是5。如果两台机器都是5启动时间相近可能会竞争。建议把主SM的优先级调高一点比如设成15备机设成5。另外opensm还支持主备握手通过sm_key做认证。备机只有在收不到主SM的心跳时才进入主模式。这个机制正常工作时没问题但如果两台SM之间网络有丢包可能出现误切换。所以在管理网络上做稳定的IPoIB链路很重要。6.3 GNSS时钟同步和InfiniBand的关系HPC集群里的时间同步一般走PTP也就是Precision Time Protocol。InfiniBand和PTP并不冲突很多集群的调度和日志需要精确时间戳靠NTP是不够的。我们一般把PTP服务跑在管理以太网上InfiniBand数据面不需要参与时钟同步因为RDMA传输本身不依赖全局时钟。但有一点要注意Slurm的节点间时间偏差过大会影响MPI作业的计时和调度逻辑。建议用chrony做NTP兜底再用PTP做高精度校时双保险。6.4 常见故障速查表故障现象可能原因排查命令/手段ibstatus显示Down线缆或模块未插好SM未配置检查线缆查SM日志端口状态Init子网管理器未发现端口P_Key不一致重启opensm查partitions.conf带宽只有标称1/2PCIe插槽带宽不足链路降速mlxlink看PCIe速率和端口速率MPI作业报无法建立RDMA连接memlock限制太低驱动版本不匹配检查ulimit -l重装OFED交换机端口指示灯频繁闪灭线缆信号质量差端口协商不稳定换线缆用ibdiagnet做物理健康检查P_Key校验失败两端分区配置不一致用smpquery pkeys对比两端这是一张我贴在自己的运维手册里的速查表每次现场交付都会先对着过一遍。6.5 数据面的健康检查工具除了上面提到的命令ibdiagnet是扫全网的利器。它能自动发现整个子网的拓扑检查所有链路状态和配置一致性输出一份详细的诊断报告。ibdiagnet -c 0跑完会在当前目录生成一个报告目录里面有ibdiagnet.pkey、ibdiagnet.links等文件可以直接看哪两条链路有问题哪个端口的P_Key配置和其他端口不一致。交付验收时这个工具是必跑的很多隐蔽问题都能提前暴露。7. InfiniBand和RoCE、普通以太网的选型对比别为了省钱以后哭7.1 三种方案的核心差异维度普通以太网RoCEInfiniBand协议设计通用网络面向连接和可靠性基于以太网的RDMA原生RDMA和子网管理延迟较高通常在10us以上低约2-5us极低约0.5-2usCPU开销高较低极低拥塞控制弱易丢包依赖PFC需要额外调优原生ECN和自适应路由管理复杂度低中需精心配置中高需要SM维护成本低中高典型场景管理网、存储网、接入网AI集群、存储集群HPC、超大规模AI训练普通以太网的管理简单日常监控和排障工具多但对延迟和CPU开销的劣势没有太多优化空间。RoCE在成本和性能之间取得了一定折中部署得当的话也能达到不错的RDMA效果但它对承载网络的丢包极其敏感PFC反压配置错误会导致整网性能雪崩。InfiniBand则更专款专用从芯片到协议再到管理工具都围绕高性能通信设计。它不便宜但它能省掉你在RoCE上调PFC、调QoS、处理死锁的时间成本这部分隐性成本其实很容易被低估。7.2 什么场景果断上InfiniBand如果你的集群以MPI作业为主比如分子动力学、流体力学、气象预报这类标准HPC负载我强烈建议直接用InfiniBand。这些应用对集合通信延迟极度敏感RoCE即便调得再好延迟还是比InfiniBand高几微秒在千万亿次规模下差别被放大得很明显。大规模GPU训练集群同样建议用InfiniBand。NVIDIA的GPU Direct RDMA技术就是为InfiniBand优化的数据从GPU显存直接走RDMA到对方GPU显存绕过了CPU和内存的瓶颈训练效率提升非常可观。还有一个容易被忽略的点InfiniBand生态和MPI库的兼容性更成熟。OpenMPI、MPICH、UCX、NCCL这些库的高性能路径都对InfiniBand做了深度优化配置基本是默认就能跑出好性能。RoCE虽然也支持但很多参数需要手动去试调优成本明显更高。7.3 什么场景RoCE够用如果集群规模不大比如8卡以内的小型AI训练服务器RoCE v2的性价比优势还是很明显的。因为小规模场景下交换机拓扑简单PFC死锁的概率低RoCE可以稳定运行。另外如果你已经有现成的25G或者100G以太网交换机新增RoCE功能只需要软件配置硬件不用重新买能省不少钱。存储网络也可以考虑RoCE。NVMe-oF跑在RoCE上很成熟性能不错配置复杂度也低于HPC场景因为存储流量以块读写为主没有MPI集合通信那么多样。7.4 网络规划要往前看两三年最后想多说一句关于规划的事。经常有人问我现在买HDR还是NDR现在集群只有16个节点以后扩到128个怎么办我的建议是交换机尽量一步到位网卡可以按需分期。因为交换机是网络骨架换一次等于整网重来代价极高。网卡相对好升级换卡插槽就能换。线缆也要按未来预期预留短距离的DAC线缆机柜内部还能换跨机柜的光缆建议按最终规模预留不然后期加节点还要重新布线。预算允许的情况下通道速率建议往一档走比如当前够用100G就到200G够用200G就考虑400G。数据量增长永远比你预估的快网络升级永远比算力升级麻烦得多。我在给毅硕HPC客户做方案时通常会把未来三年可能的节点数、单节点GPU数、通信模式全问清楚宁可初期多投入一点也不希望客户第二年就面临网络重构。实际交付中这个原则帮客户避了不少坑。关于InfiniBand的内容其实远不止这些比如多租户隔离、服务质量、安全策略都是可以再展开的专题。不过我觉得先把这几块最核心的基础打好比浏览一堆高级特性要重要得多。你在自己集群上实操时遇到什么奇怪的现象也欢迎来交流我也能从中学到不少新的踩坑经验。
返回列表