arXiv:2603.22691 · v2
Rank-Aware CPU Reservation and In-Place Adjustment for MPI CFD on Kubernetes
摘要
Non-uniform meshes in computational fluid dynamics (CFD) can leave some Message Passing Interface (MPI) ranks waiting while others determine execution time. On Kubernetes, reserving a full CPU for every rank can then restrict the admission of further simulations. We investigate rank-aware CPU reservation and in-place request adjustment using OpenFOAM on three Kubernetes testbeds. The framework lowers reservations without hard CPU caps and uses online MPI profiles to adjust each rank's CPU request while the solver runs. We reduced the per-job CPU reservation from 16.0 to 5.9 vCPU, with single-job wall-clock time increasing by at most 6%. With these reservations on twelve nodes, six co-located simulations reached 4.09 times the throughput of sequential execution. Matched controls showed no consistent benefit from proportional request shaping. Beyond the nominal CPU capacity, throughput collapsed with default busy-waiting; yielding waits softened the collapse. In one six-simulation run, the online controller performed 120 in-place resizes of running solvers with zero pod restarts; the pipeline reached 2.5 times the throughput of sequential execution. In a separate comparison on 16 physical cores, reallocating ranks from the far field to the near-wall zone reduced fixed-iteration wall-clock time by factors of 2.0 to 4.2 relative to the original concentric allocation, depending on mesh and iteration horizon. The reallocation also outperformed balanced Scotch partitions. The implementation requires no changes to OpenFOAM, the MPI library, or the Kubernetes scheduler.
作者备注:34 pages (28 + 6 pages of supplementary material), 17 figures, 20 tables. v2: revised and retitled version with additional experiments; under review