[Mono-dev] large performance drop between boehm and sgen for a parallel app
Rodrigo Kumpera
kumpera at gmail.com
Mon Dec 9 00:55:20 UTC 2013
Sure.
On Sat, Dec 7, 2013 at 5:02 PM, Jonathan Shore <jonathan.shore at gmail.com>wrote:
> Probably the best thing i can do here is try to scale this problem down so
> that does not depend on external data and post to bugzilla. Then someone
> can take a look at the pathelogical sgen GC profile.
>
>
> On Dec 7, 2013, at 1:15 PM, Rodrigo Kumpera <kumpera at gmail.com> wrote:
>
> A perf run with sampling profiling and actual traces would be of some use.
>
> If you have a very large heap, you're probably hitting the limitation of
> on the default serial major collector mono uses.
> You could try to run with the parallel major enabled, but that's
> experimental and has not received enough tunning/testing.
>
>
> On Sat, Dec 7, 2013 at 12:38 PM, Jonathan Shore <jonathan.shore at gmail.com>wrote:
>
>> 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/20131208/bdabaab9/attachment.html>
More information about the Mono-devel-list
mailing list