Fully provisioned Message Passing Interface (MPI) parallelism achieves near-optimal wall-clock time for Computational Fluid Dynamics (CFD) solvers. This work addresses a complementary question for shared, cloud-managed clusters: can fine-grained CPU provisioning reduce resource reservation of low-load subdomains, improving cluster packing efficiency without unacceptably degrading performance? We propose rank-aware resource scheduling on Kubernetes, mapping each MPI rank to a pod whose CPU request is proportional to its subdomain cell count. We also demonstrate In-Place Pod Vertical Scaling (Kubernetes v1.35 GA) for mid-simulation CPU adjustment without pod restart. Three findings emerge. First, hard CPU limits via the Linux CFS bandwidth controller cause 78x slowdown through cascading stalls at MPI_Allreduce barriers; requests-only allocation eliminates throttling entirely. Second, on non-burstable c5.xlarge instances, concentric decomposition with equal CPU is 19% faster than the Scotch baseline, while adding proportional CPU yields a further 3% improvement. Third, at 16 MPI ranks on 101K-cell meshes, proportional allocation is 20% faster than equal allocation while reducing sparse-subdomain provisioned CPU by 82%, freeing 6.5 vCPU of scheduling headroom. Experiments are conducted on AWS EC2 c5.xlarge clusters (4-16 ranks) running k3s v1.35. All scripts and data are released as open source.
翻译:全面配置的消息传递接口(MPI)并行计算可实现计算流体动力学(CFD)求解器接近最优的墙钟时间。本文针对共享式云管理集群提出一个互补性问题:能否通过细粒度CPU资源分配降低低负载子域的预留资源,在不显著影响性能的前提下提升集群打包效率?我们提出基于Kubernetes的感知等级资源调度方案,将每个MPI进程映射至一个Pod,其CPU请求量与对应子域网格单元数成正比。同时证明无需重启Pod即可实现仿真中CPU资源调整的原地Pod垂直伸缩(Kubernetes v1.35 GA)。研究得出三项发现:第一,通过Linux CFS带宽控制器设置硬性CPU限制会导致MPI_Allreduce屏障处级联停滞,造成78倍性能下降;而仅采用请求量分配模式可完全消除限流。第二,在不可突发的c5.xlarge实例上,等量CPU配置的同心分解法比Scotch基准方案快19%,而增加比例化CPU分配可再带来3%性能提升。第三,在16个MPI进程处理101K网格单元时,比例化分配较均等分配快20%,同时将稀疏子域预留CPU减少82%,释放6.5 vCPU调度余量。实验基于AWS EC2 c5.xlarge集群(4-16进程)运行k3s v1.35完成,所有脚本与数据均已开源发布。