<br><br><div><span class="gmail_quote">On 2/23/08, <b class="gmail_sendername">Joshua Gargus</b> &lt;<a href="mailto:schwa@fastmail.us">schwa@fastmail.us</a>&gt; wrote:</span><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
<div><div><span class="q"><div>On Feb 22, 2008, at 7:01 PM, Michael van der Gulik wrote:</div><br><blockquote type="cite"><br><br></blockquote></span></div><div><span class="q"><br><blockquote type="cite">this makes sharing objects and synchronising access while still getting good performance more difficult. I can&#39;t back up my claims yet; we&#39;ll see how Hydra VM works out.<br>
<br>In the long term, a VM that can run its green threads (aka Process) on multiple OS&nbsp;threads&nbsp;(aka&nbsp;pthreads) should be the long-term goal. </blockquote><div><br></div></span>This is debatable. &nbsp;Why are you convinced that fine-grained concurrency will not involve a large performance hit due to CPU cache invalidations? &nbsp;I haven&#39;t heard a compelling argument that this won&#39;t be a problem (and increasingly so, as the number of cores grows). &nbsp;We can&#39;t pretend that it takes zero time to make an object available for processing on a different core. &nbsp;As I&#39;ve said before, I&#39;m willing to be convinced otherwise.</div>
<div><br></div></div><br></blockquote></div><br><br>Equally so, why then would any other concurrent implementation, such as the HydraVM, not also have exactly the same problem. Or why would any other concurrent application not have this problem?<br>
<br>Real&nbsp;operating systems implement some form of processor&nbsp;affinity[1]&nbsp;to&nbsp;keep&nbsp;cache&nbsp;on&nbsp;a&nbsp;single&nbsp;processor. The same could be done for the Squeak scheduler. I&#39;m sure that the scheduling algorithm could be tuned to minimize cache invalidations.<br>
<br>[1] <a href="http://en.wikipedia.org/wiki/Processor_affinity">http://en.wikipedia.org/wiki/Processor_affinity</a><br><br clear="all">Gulik.&nbsp;<br><br><br>-- <br><a href="http://people.squeakfoundation.org/person/mikevdg">http://people.squeakfoundation.org/person/mikevdg</a><br>
<a href="http://gulik.pbwiki.com/">http://gulik.pbwiki.com/</a>