Search papers, labs, and topics across Lattice.
This paper introduces a framework for multiplexing MPI-parallel Computational Fluid Dynamics (CFD) simulations on Kubernetes clusters to address CPU idle time at synchronization barriers. The framework uses PMPI-based duty-cycle profiling to quantify per-rank idle time, then employs proportional CPU allocation and In-Place Pod Vertical Scaling to co-locate multiple simulations. Experiments with OpenFOAM CFD on AWS show throughput scaling up to 3.74x with 5 concurrent simulations, and a dynamic controller automates the process, achieving 3.25x throughput for 4 simulations.
Squeezing 3.25x more throughput from your Kubernetes cluster running MPI-CFD simulations is now possible without manual intervention, thanks to automated, in-place pod vertical scaling.
When MPI-parallel simulations run on shared Kubernetes clusters, conventional CPU scheduling leaves the vast majority of provisioned cycles idle at synchronization barriers. This paper presents a multiplexing framework that reclaims this idle capacity by co-locating multiple simulations on the same cluster. PMPI-based duty-cycle profiling quantifies the per-rank idle fraction; proportional CPU allocation then allows a second simulation to execute concurrently with minimal overhead, yielding 1.77x throughput. A Pareto sweep to N=5 concurrent simulations shows throughput scaling to 3.74x, with a knee at N=3 offering the best efficiency-cost trade-off. An analytical model with a single fitted parameter predicts these gains within +/-4%. A dynamic controller automates the full pipeline, from profiling through In-Place Pod Vertical Scaling (KEP-1287) to packing and fairness monitoring, achieving 3.25x throughput for four simulations without manual intervention or pod restarts. To our knowledge, this is the first CPU application of In-Place Pod Vertical Scaling to running MPI processes. Experiments on an AWS cluster with OpenFOAM CFD confirm that the results hold under both concentric and standard graph-based (Scotch) mesh partitioning.