Smoother tiered compilation thread ergonomics
igor.veresov at oracle.com
Thu Aug 20 00:48:35 UTC 2015
Sure, I agree. Since you seem to be already looking at the problem, could you experiment with smoother functions and check how it affects the startup?
> On Aug 18, 2015, at 5:02 AM, Claes Redestad <claes.redestad at oracle.com> wrote:
> I noticed the thread ergonomics for tiered compilation have a few odd jumps
> that perhaps could be improved.
> The calculation used to derive CICompilerCount for Tiered in
> int log_cpu = log2_intptr(os::active_processor_count());
> int loglog_cpu = log2_intptr(MAX2(log_cpu, 1));
> count = MAX2(log_cpu * loglog_cpu, 1) * 3 / 2;
> Seems to evaluate to:
> #CPUs CICompilerCount
> <4 2
> 4 3
> 8 4
> 16 12
> 32 15
> 64 18
> 128 21
> 256 36
> 512 40
> 1024 45
> 2048 49
> The jump from 4 to 12 threads at 16 processors doesn't look very elegant (there's
> a small bump going from 128->256, too). It seems reasonable the ratio of compiler
> threads to actual CPUs should diminish as CPUs increase, but going from 8 (or 15)
> to 16 actually increases the ratio.
> If we'd replace log2_intptr with some non-discrete function instead of using
> log2_intptr, we could smooth out the curve, which I think would be beneficial
> for the rather common cases where systems have somewhere between 8 and 32 CPUs.
More information about the hotspot-compiler-dev