<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>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.</div><div><br></div><br><div><div>On Dec 7, 2013, at 1:15 PM, Rodrigo Kumpera <<a href="mailto:kumpera@gmail.com">kumpera@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">A perf run with sampling profiling and actual traces would be of some use.<div><br></div><div>If you have a very large heap, you're probably hitting the limitation of on the default serial major collector mono uses.</div>
<div>You could try to run with the parallel major enabled, but that's experimental and has not received enough tunning/testing.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Dec 7, 2013 at 12:38 PM, Jonathan Shore <span dir="ltr"><<a href="mailto:jonathan.shore@gmail.com" target="_blank">jonathan.shore@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Here are the results for a trimmed down version of the problem:</div><div><br></div>
<div><b>Boehm (default settings)</b></div><div>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':</div>
<div><div><br></div><div><font face="Courier New">   48579862.522506 task-clock                #    <b>9.034</b> CPUs utilized          </font></div><div><font face="Courier New">       188,866,824 context-switches          #    0.004 M/sec                  </font></div>
<div><font face="Courier New">            46,500 CPU-migrations            #    0.000 M/sec                  </font></div><div><font face="Courier New">         1,475,427 page-faults               #    0.000 M/sec                  </font></div>
<div><font face="Courier New">140,468,865,368,193 cycles                    #    2.892 GHz                    </font></div><div><font face="Courier New">   <not supported> stalled-cycles-frontend </font></div><div><font face="Courier New">   <not supported> stalled-cycles-backend  </font></div>
<div><font face="Courier New">80,012,982,451,027 instructions              #    0.57  insns per cycle        </font></div><div><font face="Courier New">16,967,686,291,478 branches                  #  349.274 M/sec                  </font></div>
<div><font face="Courier New">    95,315,728,420 branch-misses             #    0.56% of all branches        </font></div><div><font face="Courier New"><br></font></div><div><font face="Courier New">    <b>5377</b>.495775794 seconds time elapsed</font></div>
</div><div><br></div><div><b>SGen (default settings)</b></div><div><div>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':</div>
<div><br></div><div><font face="Courier New">  108414200.651113 task-clock                #    <b>2.049</b> CPUs utilized          </font></div><div><font face="Courier New">        65,792,604 context-switches          #    0.001 M/sec                  </font></div>
<div><font face="Courier New">            30,536 CPU-migrations            #    0.000 M/sec                  </font></div><div><font face="Courier New">       309,928,477 page-faults               #    0.003 M/sec                  </font></div>
<div><font face="Courier New">263,506,866,481,917 cycles                   #    2.431 GHz                    </font></div><div><font face="Courier New">   <not supported> stalled-cycles-frontend </font></div><div><font face="Courier New">   <not supported> stalled-cycles-backend  </font></div>
<div><font face="Courier New">130,560,004,191,686 instructions             #    0.50  insns per cycle        </font></div><div><font face="Courier New">27,570,367,199,486 branches                  #  254.306 M/sec                  </font></div>
<div><font face="Courier New">   382,673,241,515 branch-misses             #    1.39% of all branches        </font></div><div><br></div><div><font face="Courier New">   <b>52912.</b>358974732 seconds time elapsed</font></div>
<div style="font-weight:bold"><br></div></div><div>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.</div>
<div><br></div><br><div><div class="im"><div>On Dec 5, 2013, at 12:48 PM, Rodrigo Kumpera <<a href="mailto:kumpera@gmail.com" target="_blank">kumpera@gmail.com</a>> wrote:</div><br></div><div><div class="h5"><blockquote type="cite">
<div dir="ltr">Are you running boehm in parallel mode? Can you run perf on your application and email us the translated results?</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Dec 5, 2013 at 11:11 AM, Jonathan Shore <span dir="ltr"><<a href="mailto:jonathan.shore@gmail.com" target="_blank">jonathan.shore@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
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.<br>


<br>
Note that this is with a fairly recent version of mono compiled from git sources with llvm enabled.<br>
<br>
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?<br>


<br>
Thanks<br>
Jonathan<br>
<br>
_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com" target="_blank">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
</blockquote></div><br></div>
</blockquote></div></div></div><br></div></blockquote></div><br></div>
</blockquote></div><br></body></html>