Hydrology pool host cap

- Hydrology planner pool minimum never exceeds the host core count (floor 2)
This commit is contained in:
Brian Neumann-Fopiano committed 2026-10-22 04:08:14 -04:00
1 parent ae1a84702c
commit b712cbf93d
2 files changed
+14 -6

No files matched your search

@@ -144,11 +144,11 @@ public class MultiBurst extends MultiBurstSupport {
} }
static int plannerParallelism() { static int plannerParallelism() {
return plannerParallelism(MultiBurstSupport.performanceProcessors()); return plannerParallelism(MultiBurstSupport.performanceProcessors(), Runtime.getRuntime().availableProcessors());
} }
static int plannerParallelism(int performanceProcessors) { static int plannerParallelism(int performanceProcessors, int availableProcessors) {
return Math.max(4, performanceProcessors); return Math.max(2, Math.min(Math.max(4, performanceProcessors), availableProcessors));
} }
@Override @Override
@@ -63,9 +63,17 @@ public class HydrologyBurstTest {
@Test @Test
public void plannerPoolFollowsThePerformanceCores() { public void plannerPoolFollowsThePerformanceCores() {
assertEquals(12, MultiBurst.HydrologyBurst.plannerParallelism(12)); assertEquals(12, MultiBurst.HydrologyBurst.plannerParallelism(12, 16));
assertEquals(4, MultiBurst.HydrologyBurst.plannerParallelism(1)); assertEquals(4, MultiBurst.HydrologyBurst.plannerParallelism(1, 8));
assertEquals(32, MultiBurst.HydrologyBurst.plannerParallelism(32)); assertEquals(32, MultiBurst.HydrologyBurst.plannerParallelism(32, 32));
}
@Test
public void plannerPoolNeverOutgrowsASmallHost() {
assertEquals(2, MultiBurst.HydrologyBurst.plannerParallelism(1, 1));
assertEquals(2, MultiBurst.HydrologyBurst.plannerParallelism(2, 2));
assertEquals(3, MultiBurst.HydrologyBurst.plannerParallelism(3, 3));
assertEquals(4, MultiBurst.HydrologyBurst.plannerParallelism(2, 4));
} }
@Test @Test