Friday March 30, 2007
Tiered Compilation almost live
A few days ago I putback the change that now causes the server jvm (32bit) to be built as tiered. It doesn't actually enable the jvm to run tiered by default but both compilers are present and you can optionally ask for tiered. I'm still having trouble tuning my multi-tiers jvm and I decided that at the very least I ought to see what feedback there was from people adventuresome enough to try the tiered jvm. I expect that there are pathologies and that you may have to tune the thresholds a bit.
It looks like for the current schedule that this will end up in jdk7 build 12 which is still about a week away. If it isn't in b12 it will certainly be in lucky b13.
You can tell if you have the tiered jvm by running -server -version and you'll see something like:
Java HotSpot(TM) Tiered VM (..., mixed mode)
In order to actually get tiered operation you'll have to ask for it via the switch -XX:+TieredCompilation
You may also want to experiment with the compiler thresholds via -XX:CompileThreshold=<nnn> and -XX:Tier2CompileThreshold=<nnn>. Currently the thresholds are 1000/10000. I've found that 1000/35000 works ok for me. I'm curious to see where others find the best tradeoff.
Posted by Taras Tielkes on March 30, 2007 at 11:47 AM EDT #
Posted by fatcatair on March 30, 2007 at 11:56 AM EDT #
Any idea when/if this might be in a sufficiently settled and robust state to be moved back into the JSE6 mainline for u2 or whatever? That and a CMS Parallel Remark fix from the GC folks and I'd be in clover!
BTW, are we still limited to 1 or 2 compile threads with this putback's code? (Think Niagara.)
Rgds
Damon
Posted by Damon Hart-Davis on March 30, 2007 at 12:44 PM EDT #
Posted by fatcatair on March 30, 2007 at 01:43 PM EDT #
Looks like that flag would allow 3 (three) C2 threads on a 24-thread (6-core) Niagara-1.
Do you feel that is too many / too few / about right (said Goldilocks)? For example, is peak memory use or even working-set size likely to be a problem with many concurrent C2 threads?
Rgds
Damon
Posted by Damon Hart-Davis on April 03, 2007 at 06:28 PM EDT #
Posted by fatcatair on April 09, 2007 at 11:18 AM EDT #
Posted by Damon Hart-Davis on April 09, 2007 at 07:54 PM EDT #
Posted by Clemens Eisserer on April 10, 2007 at 08:14 AM EDT #
Posted by fatcatair on April 10, 2007 at 10:37 AM EDT #
Can I try to understand better your "as it works now tiered tends to do too much compilation" comment?
Do you mean that HotSpot currently attempts to compile code prematurely but that that tendency is counterbalanced in practice by the compilations being queued and thus delayed? If so, can't the compilation threshold just be put back a little to achieve the same overall where there is less queueing (more CPUs)?
Or do you mean that you see the compilation taking CPU resources away from the app itself where that may not have been the best choice? Does that still apply where the app is not able to use all the available CPU resource at the time, eg not being threaded enough to use all cores in a Niagara CPU?
Rgds
Damon
Posted by Damon Hart-Davis on April 10, 2007 at 12:33 PM EDT #
Posted by Nicolas Michael on April 24, 2007 at 07:29 AM EDT #
Comments are closed for this entry.