Smoother tiered compilation thread ergonomics
Igor Veresov
igor.veresov at oracle.com
Thu Aug 20 00:48:35 UTC 2015
Claes,
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?
Thanks,
igor
> On Aug 18, 2015, at 5:02 AM, Claes Redestad <claes.redestad at oracle.com> wrote:
>
> Hi,
>
> 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
> vm/runtime/advancedThresholdPolicy.cpp:
>
> 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.
>
> /Claes
More information about the hotspot-compiler-dev
mailing list