I am currently doing some benchmarks on PPE with JamVM, an open source Java Virtual Machine. I use the Java Grande Benchmark Suite, which supports multi-threaded testing. I have tried several benchmarks with the same results,
I do not really understand.
Here are the numbers for the Crypt Benchmark (e.g.)
1 thread: 228.72 KBytes/s
2 threads: 454.76 KBytes/s
3 threads: 634.02 KBytes/s
4 threads: 831.04 Kbytes/s
5 threads: 685.56 <= Kbytes/s
6 threads: 762.28 Kbytes/s
7 threads: 764.87 KBytes/s
8 threads: 783.63 KBytes/s
There are 2 things I cannot understand:
- It seems, that for all benchmarks I have tested so for, that performance
increases approximately linear until 4 threads. The performance of 5 threads
is worser that with 4 or 6 threads!? What might be the reason for that?
Other Benchmarks, like SparseMatrixMult, etc.. show similar behavior.
-I have tested the same application with JamVM on a X86 core duo. Increasing
the number of threads does not result in significant performance gains.
My second question: Why does PPE show performance gains and X86 not?
I do not think that is a VM or application specific problem.
Thanks for ay comments,