[Mono-dev] large performance drop between boehm and sgen for a parallel app
Jonathan Shore
jonathan.shore at gmail.com
Sat Dec 7 17:38:45 UTC 2013
Here are the results for a trimmed down version of the problem:
Boehm (default settings)
Performance counter stats for '/opt/mono-3.0/bin/mono-boehm --llvm /home/jonathan/Dev/hf/lib/Debug/FeatureGeneratorCSVFile.exe -info -config etc/samples/orderbook-2013-CX-V11.xml -out features-2013-CX.csv':
48579862.522506 task-clock # 9.034 CPUs utilized
188,866,824 context-switches # 0.004 M/sec
46,500 CPU-migrations # 0.000 M/sec
1,475,427 page-faults # 0.000 M/sec
140,468,865,368,193 cycles # 2.892 GHz
<not supported> stalled-cycles-frontend
<not supported> stalled-cycles-backend
80,012,982,451,027 instructions # 0.57 insns per cycle
16,967,686,291,478 branches # 349.274 M/sec
95,315,728,420 branch-misses # 0.56% of all branches
5377.495775794 seconds time elapsed
SGen (default settings)
Performance counter stats for '/opt/mono-3.0/bin/mono-sgen --llvm /home/jonathan/Dev/hf/lib/Debug/FeatureGeneratorCSVFile.exe -info -config etc/samples/orderbook-2013-CX-V11.xml -out features-2013-CX.csv':
108414200.651113 task-clock # 2.049 CPUs utilized
65,792,604 context-switches # 0.001 M/sec
30,536 CPU-migrations # 0.000 M/sec
309,928,477 page-faults # 0.003 M/sec
263,506,866,481,917 cycles # 2.431 GHz
<not supported> stalled-cycles-frontend
<not supported> stalled-cycles-backend
130,560,004,191,686 instructions # 0.50 insns per cycle
27,570,367,199,486 branches # 254.306 M/sec
382,673,241,515 branch-misses # 1.39% of all branches
52912.358974732 seconds time elapsed
There is a nearly 10x difference in performance between these. Both were run on 10 cores. The boehm version achieved a 9 cpu average and the sgen achieved a 2 cpu average + more overhead.
On Dec 5, 2013, at 12:48 PM, Rodrigo Kumpera <kumpera at gmail.com> wrote:
> Are you running boehm in parallel mode? Can you run perf on your application and email us the translated results?
>
>
> On Thu, Dec 5, 2013 at 11:11 AM, Jonathan Shore <jonathan.shore at gmail.com> wrote:
> Hi,
>
> I have a complex parallel application which, when run on 10 threads gets very close to 1000% cpu with mono-boehm (linux) consistently (running for hours). With mono-sgen only achieves 200 - 250% cpu. This is on a 12 / 24 core machine. I need to run sgen eventually because run into the 32 bit limit with boehm from time to time.
>
> Note that this is with a fairly recent version of mono compiled from git sources with llvm enabled.
>
> It is not an application I can easily box up for analysis on bugzilla due to size of data context, though happy to provide an enviroment to the mono team if useful. Wondering whether there is some GC debugging can turn on that is useful to the mono team?
>
> Thanks
> Jonathan
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20131207/842dd4a6/attachment.html>
More information about the Mono-devel-list
mailing list