Stefano, thank you for pointing peroformance issues out!
Although that was a debug build, it uncovers that Harmony is not properly tuned for FP-intensive workloads as SciMark. One of the possible reasons of this (known:) limitation is also raised in the thread "[drlvm][jit][ia-32]register-based fast calling convention", where Alex vounteers to help with more intelligent XMM register usage. I consider this a quite-high priority, fully support Alex, hope for the best, ready to help, etc etc. On the 0x224 day of Apache Harmony Stefano Mazzocchi wrote: > There are lies, damn lies and benchmarks.... which don't really tell you > if an implementation of a program is *faster* but at least it tells you > where you're at. > > So, as Geir managed to get the DSO linking problem go away in DRLVM, I > was able to start running some benchmarks. > > The machine is the following: > > Linux harmony-em64t 2.6.15-27-amd64-generic #1 SMP PREEMPT Sat Sep 16 > 01:50:50 UTC 2006 x86_64 GNU/Linux > > dual Intel(R) Pentium(R) D CPU 3.20GHz > bogomips 6410.31 (per CPU) > > There is nothing else running on the machine (load is 0.04 at the time > of testing). > > The various virtual machines tested are: > > harmony > ------- > Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software > Foundation or its licensors, as applicable. > java version "1.5.0" > pre-alpha : not complete or compatible > svn = r476006, (Nov 16 2006), Linux/em64t/gcc 4.0.3, debug build > > sun5 > --- > java version "1.5.0_09" > Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b03) > Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_09-b03, mixed mode) > > sun6 > ---- > java version "1.6.0-rc" > Java(TM) SE Runtime Environment (build 1.6.0-rc-b104) > Java HotSpot(TM) 64-Bit Server VM (build 1.6.0-rc-b104, mixed mode) > > ibm > --- > java version "1.5.0" > Java(TM) 2 Runtime Environment, Standard Edition (build > pxa64dev-20061002a (SR3) ) > IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux amd64-64 > j9vmxa6423-20061001 (JIT enabled) > J9VM - 20060915_08260_LHdSMr > JIT - 20060908_1811_r8 > GC - 20060906_AA) > JCL - 20061002 > > bea > --- > java version "1.5.0_06" > Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05) > BEA JRockit(R) (build > R26.4.0-63-63688-1.5.0_06-20060626-2259-linux-x86_64, ) > > > -------------------------------------------------------------------------- > > Test #1: java scimark2 (http://math.nist.gov/scimark2/) > > command: java jnt.scimark2.commandline > > NOTE: bigger number is better > > Sun6 > Composite Score: 364.5832265230057 > FFT (1024): 220.8458713892794 > SOR (100x100): 696.1542342357722 > Monte Carlo : 149.37978088875656 > Sparse matmult (N=1000, nz=5000): 326.37451873283845 > LU (100x100): 430.1617273683819 > > BEA > Composite Score: 359.13480378697835 > FFT (1024): 303.8746880751562 > SOR (100x100): 454.25628897202307 > Monte Carlo : 93.23913192138497 > Sparse matmult (N=1000, nz=5000): 530.44112637391 > LU (100x100): 413.8627835924175 > > Sun5 > Composite Score: 332.84987587548574 > FFT (1024): 216.5144595799027 > SOR (100x100): 689.429322146947 > Monte Carlo : 25.791262124978065 > Sparse matmult (N=1000, nz=5000): 317.5193965699373 > LU (100x100): 414.99493895566377 > > IBM > Composite Score: 259.8249218693683 > FFT (1024): 296.8415012789055 > SOR (100x100): 428.974881649179 > Monte Carlo : 89.15159857584082 > Sparse matmult (N=1000, nz=5000): 144.3524241203982 > LU (100x100): 339.8042037225181 > > Harmony > Composite Score: 113.65082278962575 > FFT (1024): 203.76641991778123 > SOR (100x100): 224.37761309236748 > Monte Carlo : 9.063866256533116 > Sparse matmult (N=1000, nz=5000): 65.4051866327227 > LU (100x100): 65.6410280487242 > > In this test harmony is clearly lagging behind... at about 30% > performance of the best JVM, it's a little crappy. Please note how FFT's > performance is not so bad awhile monte carlo is pretty bad compared to > BEA or IBM. > > Overall, it seems like there is some serious work to do here to catch up. > > -------------------------------------------------------------------------- > > Test 2: Dhrystones (http://www.c-creators.co.jp/okayan/DhrystoneApplet/) > > command: java dhry 100000000 > > NOTE: bigger is better > > NB: I modified the code to accept the count at input from the command line! > > sun6: 8552856 dhrystones/sec > sun5: 6605892 > bea: 5678914 > harmony: 669734 > ibm: 501562 > > The performance here is horrific but what's surprising is that J9 is > even worse. No idea what's going on but it seems like something is not > working as it should (in both harmony and J9) > > -------------------------------------------------------------------------- > > Test 3: Sieve (part of http://www.sax.de/~adlibit/tya18.tgz) > > command: java Sieve 30 > > NB: I modified the test to run for a configurable amount of seconds. > > sun6 8545 sieves/sec > sun5 8364 > bea 6174 > harmony 1836 > ibm 225 > > IBM J9 clearly has something wrong on x86_64 but harmony is clearly > lagging behind. > > Stay tuned for more tests. > > -- > Stefano. > > -- Egor Pasko