<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Enjoyable Blog of Possibilities &#187; workflow software</title>
	<atom:link href="http://kerrysoft16.edublogs.org/tag/workflow-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://kerrysoft16.edublogs.org</link>
	<description>Just another Edublogs.org weblog</description>
	<lastBuildDate>Fri, 12 Dec 2008 11:32:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Practicing MXBean mappings to your ain types</title>
		<link>http://kerrysoft16.edublogs.org/2008/12/01/practicing-mxbean-mappings-to-your-ain-types/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/12/01/practicing-mxbean-mappings-to-your-ain-types/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 11:33:59 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[business software]]></category>
		<category><![CDATA[workflow software]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/12/01/practicing-mxbean-mappings-to-your-ain-types/</guid>
		<description><![CDATA[Eamonn McManus&#8217;s post takes the air you through applying the MXBean framework to delineate MBeans with custom types, employing both JMX 2.0 &#8212; uncommitted in the JDK 7 platform &#8212; and the JMX version uncommitted in current JDKs.


Related Posts:Fω^C: a symmetrically authoritative variant of System FωKucera House: Zero-Final Energy in Gardiner, Modern YorkHomes vs Stocks
]]></description>
			<content:encoded><![CDATA[<p>Eamonn McManus&#8217;s post takes the air you through applying the MXBean framework to delineate MBeans with custom types, employing both JMX 2.0 &#8212; uncommitted in the JDK 7 platform &#8212; and the JMX version uncommitted in current JDKs.
</p>
<p><img src="http://feasts.feedburner.com/~r/techtarget/tsscom/blogs/~4/471078489" height="1"></p>
<p><i>Related Posts:</i><br /><i><a href="http://medonza.blogsome.com/2008/11/15/p324/" title="a symmetrically authoritative variant of System Fω">Fω^C: a symmetrically authoritative variant of System Fω</a></i><br /><i><a href="http://medonza.blogsome.com/2008/11/19/kucera-house-zero-final-energy-in-gardiner-modern-york/" title="Zero-Final Energy in Gardiner, Modern York">Kucera House: Zero-Final Energy in Gardiner, Modern York</a></i><br /><i><a href="http://kerrysoft16.edublogs.org/2008/11/11/homes-vs-stocks-2/" title="Homes vs Stocks">Homes vs Stocks</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/12/01/practicing-mxbean-mappings-to-your-ain-types/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I’m Nonetheless Departing Foresightful and Hop-skiping the Markets Go away Down</title>
		<link>http://kerrysoft16.edublogs.org/2008/11/13/i%e2%80%99m-nonetheless-departing-foresightful-and-hop-skiping-the-markets-go-away-down/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/11/13/i%e2%80%99m-nonetheless-departing-foresightful-and-hop-skiping-the-markets-go-away-down/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 11:24:45 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[workflow software]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/11/13/i%e2%80%99m-nonetheless-departing-foresightful-and-hop-skiping-the-markets-go-away-down/</guid>
		<description><![CDATA[First rule of Investing. Dont fall in love with positions or render to turn up yourself justly. I intended we might pay back a bounce. I was incorrect. I spread over my inadequate puts when the market commenced to throw its gains. So I lucked out in that respect. More significantly, i desired to clear [...]]]></description>
			<content:encoded><![CDATA[<p>First rule of Investing. Dont fall in love with positions or render to turn up yourself justly. I intended we might pay back a bounce. I was incorrect. I spread over my inadequate puts when the market commenced to throw its gains. So I lucked out in that respect. More significantly, i desired to clear up my bullishness. I assume&#8217;t intend the [...]</p>
<p><i>Related Posts:</i><br /><i><a href="http://kerrysoft16.edublogs.org/2008/11/12/i%e2%80%99m-yet-departing-farsighted-and-skiping-the-markets-go-away-down/" title="I’m Yet Departing Farsighted and Skiping the Markets Go away Down">I’m Yet Departing Farsighted and Skiping the Markets Go away Down</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/11/13/i%e2%80%99m-nonetheless-departing-foresightful-and-hop-skiping-the-markets-go-away-down/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I’m However Going away Prospicient and Hop-skiping the Markets Go away Down</title>
		<link>http://kerrysoft16.edublogs.org/2008/11/12/i%e2%80%99m-however-going-away-prospicient-and-hop-skiping-the-markets-go-away-down/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/11/12/i%e2%80%99m-however-going-away-prospicient-and-hop-skiping-the-markets-go-away-down/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 23:49:24 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[workflow software]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/11/12/i%e2%80%99m-however-going-away-prospicient-and-hop-skiping-the-markets-go-away-down/</guid>
		<description><![CDATA[First rule of Investing. Dont fall in love with positions or render to turn up yourself justly. I intended we might pay back a bounce. I was incorrect. I covered my inadequate puts when the market commenced to shake off its gains. So I lucked out in that respect. More significantly, i desired to elucidate [...]]]></description>
			<content:encoded><![CDATA[<p>First rule of Investing. Dont fall in love with positions or render to turn up yourself justly. I intended we might pay back a bounce. I was incorrect. I covered my inadequate puts when the market commenced to shake off its gains. So I lucked out in that respect. More significantly, i desired to elucidate my bullishness. I assume&#8217;t mean the [...]</p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/11/12/i%e2%80%99m-however-going-away-prospicient-and-hop-skiping-the-markets-go-away-down/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Needed reading</title>
		<link>http://kerrysoft16.edublogs.org/2008/05/29/needed-reading/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/05/29/needed-reading/#comments</comments>
		<pubDate>Fri, 30 May 2008 03:56:09 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[business software]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[workflow software]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/05/29/needed-reading/</guid>
		<description><![CDATA[You&#8217;ll believably have a few additional minutes on your hands while waiting for VS Express to download. Do yourself another favor and check out out the bursting changes in.NET Framework 2.0 [BradA ]. The list is pretty minuscule, weighing the breadth of the framework, but you&#8217;ll in all probability ascertain a favorite in in that [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ll believably have a few additional minutes on your hands while waiting for VS Express to download. Do yourself another favor and check out out the bursting changes in.NET Framework 2.0 [BradA ]. The list is pretty minuscule, weighing the breadth of the framework, but you&#8217;ll in all probability ascertain a favorite in in that respect.</p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/05/29/needed-reading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated Finalization and Hosting</title>
		<link>http://kerrysoft16.edublogs.org/2008/05/29/updated-finalization-and-hosting-2/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/05/29/updated-finalization-and-hosting-2/#comments</comments>
		<pubDate>Thu, 29 May 2008 10:55:22 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[workflow software]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/05/29/updated-finalization-and-hosting-2/</guid>
		<description><![CDATA[My original posts on Finalization and Hosting had some artificial XXXXX markers in place of content, where that content hadn&#8217;t already been disclosed in some form.&#160; Nowadays that the Ocular Studio 2005 Community Preview is uncommitted, I&#8217;ve moved backward to those two posts and put back the XXXXX markers with existent text. As well, it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><P>My original posts on Finalization and Hosting had some artificial XXXXX markers in place of content, where that content hadn&#8217;t already been disclosed in some form.&nbsp; Nowadays that the Ocular Studio 2005 Community Preview is uncommitted, I&#8217;ve moved backward to those two posts and put back the XXXXX markers with existent text.</P> <P>As well, it&#8217;s manifestly been a while since my last post.&nbsp; I began droping a line something this weekend, but the weather hither has been dramatic and I was obliged to move outdoors and play.&nbsp; I&#8217;ll essay to have something in the next couple of weeks.</P> <P>&nbsp;</P></p>
<p><i>Relating Posts:</i><br /><i><a href="http://jiddy55.wordpress.com/2008/05/29/the-afflictive-cost-of-foreclosure/" title="The Afflictive Cost of Foreclosure">The Afflictive Cost of Foreclosure</a></i><br /><i><a href="http://greenblog.blogsome.com/2008/03/26/trust-microsoft-with-claimspace-my-response-pending-2/" title="Trust Microsoft with Claimspace (my response pending)">Trust Microsoft with Claimspace (my response pending)</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/05/29/updated-finalization-and-hosting-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LoadFile vs. LoadFrom</title>
		<link>http://kerrysoft16.edublogs.org/2008/05/29/loadfile-vs-loadfrom/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/05/29/loadfile-vs-loadfrom/#comments</comments>
		<pubDate>Thu, 29 May 2008 07:43:23 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[workflow software]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/05/29/loadfile-vs-loadfrom/</guid>
		<description><![CDATA[Be measured &#8211; these aren&#8217;t the same thing.   LoadFrom() works through Fusion and can be redirected to another assembly at a dissimilar path but with that same identity if one is already loaded in the LoadFrom context. LoadFile() doesn&#8217;t bind through Fusion at all &#8211; the loader simply operates in front and loads [...]]]></description>
			<content:encoded><![CDATA[<p><P>Be measured &#8211; these aren&#8217;t the same thing. </P> <UL> <LI>LoadFrom() works through Fusion and can be redirected to another assembly at a dissimilar path but with that same identity if one is already loaded in the LoadFrom context. <LI>LoadFile() doesn&#8217;t bind through Fusion at all &#8211; the loader simply operates in front and loads just<FONT color="#ff0000">*</FONT> what the caller called for. It doesn&#8217;t use either the Load or the LoadFrom context.</LI></UL> <P>And so, LoadFrom() unremarkably yields you what you asked for, but not needs. LoadFile() is for those who rattling, very desire precisely what is quested. (<STRONG><FONT color="#ff0000">*</FONT></STRONG>All the same, starting in v2, policy will be applied to both LoadFrom() and LoadFile(), so LoadFile() won&#8217;t necessarily be exactly what was requested.&nbsp;Also, starting in v2, if an assembly&nbsp;with its identity is in the GAC,&nbsp;the GAC copy&nbsp;will be used instead. Utilize ReflectionOnlyLoadFrom() to charge just what you desire -&nbsp;but, note that&nbsp;assemblies charged that way can&#8217;t be put to death.)</P> <P>LoadFile() has a catch. Since it doesn&#8217;t use a&nbsp;obligating context, its dependencies aren&#8217;t mechanically found in its directory. If they aren&#8217;t uncommitted in the Load context, you would have to take the AssemblyResolve event in order to bind to them. </P> <P>Indeed, which one should you employ? That bets on which holding context is justly for you and whether it counts that the LoadFrom context may airt the bind. Regarding the latter: <span id="more-38"></span></P> <UL> <LI>If no other code can lade assemblies in your AppDomain, your LoadFrom() call can keep a redirect<FONT color="#ff0000">*</FONT> by exactly not loading up anything else with a twin identity. <LI>If you do require to lade a duplicate, you could catch off with it by loading up it into anything other than the LoadFrom context (or into another AppDomain) rather. <LI>But, perhaps the redirect is really o.k.. Are they indistinguishable assemblies, just now at unlike paths? If yes, it may be good to take chances the redirect unless its dependencies aren&#8217;t uncommitted in the dir of the first one charged. <LI>Or, are they maybe unlike bits, simply with the same assembly identity? If indeed, it may be insecure to chance the redirect: perchance you&#8217;ll catch an more-updated/not-as-updated version which you didn&#8217;t ask. Or, if it&#8217;s not powerfully-called, perhaps this is a third-party&#8217;s assembly, totally unrelated to the one you require. </LI></UL></p>
<p><i>Relating Posts:</i><br /><i><a href="http://chatter66.rticlz.com/blogroll/silverlight-flickr-example/" title="Silverlight FlickR Example">Silverlight FlickR Example</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/05/29/loadfile-vs-loadfrom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memory Model</title>
		<link>http://kerrysoft16.edublogs.org/2008/05/28/memory-model-2/</link>
		<comments>http://kerrysoft16.edublogs.org/2008/05/28/memory-model-2/#comments</comments>
		<pubDate>Thu, 29 May 2008 00:33:06 +0000</pubDate>
		<dc:creator>kerrysoft</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CRM solution]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[workflow software]]></category>

		<guid isPermaLink="false">http://kerrysoft16.edublogs.org/2008/05/28/memory-model-2/</guid>
		<description><![CDATA[One of
the suggestions for a blog entry was the carryed off memory model.&#160; This is seasonable, because we’ve barely been
retooling our overall approach to this confounding topic.&#160; For the most part, I write on product
decisions that have already been produced and embarked.&#160; In this note, I’m discoursing succeeding
directions.&#160; Be
doubting.
&#160;
Indeed what
is a memory model?&#160; It’s the
abstraction [...]]]></description>
			<content:encoded><![CDATA[<p><P class="MsoNormal"><FONT face="Tahoma" size="2">One of<br />
the suggestions for a blog entry was the carryed off memory model.<SPAN>&nbsp; </SPAN>This is seasonable, because we’ve barely been<br />
retooling our overall approach to this confounding topic.<SPAN>&nbsp; </SPAN>For the most part, I write on product<br />
decisions that have already been produced and embarked.<SPAN>&nbsp; </SPAN>In this note, I’m discoursing succeeding<br />
directions.<SPAN>&nbsp; </SPAN>Be<br />
doubting.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Indeed what<br />
is a memory model?<SPAN>&nbsp; </SPAN>It’s the<br />
abstraction that reachs the reality of today’s alien hardware comprehendible to<br />
software developers.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">The<br />
reality of hardware is that CPUs are renaming registers, doing bad<br />
and out-of-order execution, and geting up the world during retirement.<SPAN>&nbsp; </SPAN>Memory state is cached at assorted levels<br />
in the system (L0 thru L3 on mod X86 boxes, presumptively with more levels on<br />
the way).<SPAN>&nbsp; </SPAN>Some levels of cache are<br />
shared between especial CPUs but not others.<SPAN>&nbsp; </SPAN>For example, L0 is typically per-CPU but<br />
a hyper-wandered CPU <I>may</I> partake in L0<br />
between the coherent CPUs of a single forcible CPU.<SPAN>&nbsp; </SPAN>Or an 8-way box <I>may</I> parted the system into two<br />
hemispheres with cache controllers doing an elaborated coherency protocol<br />
between these freestanding hemispheres.<SPAN>&nbsp;<br />
</SPAN>If you count hoarding effects, at some level all MP (multi-processor)<br />
computers are NUMA (non-unvarying memory access).<SPAN>&nbsp; </SPAN>But there’s enough magic proceeding that<br />
yet a Unisys 32-way can mostly be counted as UMA by<br />
developers.</FONT></P><br />
<span id="more-36"></span>
<div class="interline">Multisoft Group: <a href="http://www.multisoftgroup.com/skills.html" title="Custom software solutions">Custom software solutions</a> for your business.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">It’s<br />
sensible for the CLR to cognize as much as potential about the cache architecture<br />
of your hardware so that it can tap any imbalances.<SPAN>&nbsp; </SPAN>For example, the developers on our<br />
performance team have experimented with a scalable rendezvous for phases of the<br />
GC.<SPAN>&nbsp; </SPAN>The idea was that each CPU<br />
bases a rendezvous with the CPU that is “nighest” to it in distance in the<br />
cache hierarchy, and and then one of this pair cascades down up a tree to its nearest<br />
neighbor until we progress to a single root CPU.<SPAN>&nbsp;<br />
</SPAN>At that point, the rendezvous is consummate.<SPAN>&nbsp; </SPAN>I call back the jury is however out on this<br />
exceptional technique, but they have found some other techniques that in truth make up<br />
off on the bigger systems.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Of<br />
course, it’s absolutely undue for any dealt developer (or 99.99% of<br />
unmanaged developers) to e&#8217;er occupy themselves with these imbalances.<SPAN>&nbsp; </SPAN>Rather, software developers want to<br />
process all computers as tantamount.<SPAN>&nbsp;<br />
</SPAN>For cared developers, the CLR <I>is</I> the computer and it better act<br />
systematically no matter of the underlying machine.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Although dealt developers shouldn’t cognise the difference between a 4-way<br />
AMD server and an Intel P4 hyper-wound double proc, they yet necessitate to front the<br />
realities of today’s hardware.<SPAN>&nbsp;<br />
</SPAN>Today, I retrieve the penalty of a CPU cache miss that runs all the way to<br />
independent memory is virtually 1/10<SUP>th</SUP> the penalty of a memory miss that leads<br />
all the way to disk.<SPAN>&nbsp; </SPAN>And the trend<br />
is unmortgaged.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">If<br />
you desired well performance on a practical memory system, you’ve ever been<br />
responsible for for excusing the paging system by catching well page density and<br />
locality in your data structures and access patterns.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">In<br />
a like vein, if you desire well performance on today’s hardware, where<br />
geting at independent memory is a modest disaster, you must carry your data into cache<br />
lines and limit indirections.<SPAN>&nbsp; </SPAN>If<br />
you are progressing partaken in data structures, see spliting any data that’s<br />
subject to sour sharing.</FONT></P></p>
<div class="interline"><a href="http://www.j-livesupport.com/affiliate/pages/117.php" title="Live Help Server">Live Help Server</a>: Jerry Messenger is Jabber/XMPP Live Chat Server for a website.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">To<br />
some extent, the CLR can facilitate you hither.<SPAN>&nbsp;<br />
</SPAN>On MP machines, we utilize lock-spare allocators which (statistically)<br />
guarantee locality for each thread’s allocations.<SPAN>&nbsp; </SPAN>Any compaction will (statistically)<br />
save that locality.<SPAN>&nbsp; </SPAN>Checking out the very far succeeding – maybe after our sun irrupts – you could suppose a<br />
CLR that can reorganise your data structures to reach even best<br />
performance.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">This intends that if you are saving single-wandered dealt code to<br />
process a server request, and if you can fend off writing to any partaken state, you<br />
are likely leading to be pretty scalable without yet essaying.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Catching<br />
backward to memory models, what is the abstraction that will get to sense of current<br />
hardware?<SPAN>&nbsp; </SPAN>It’s a simplifying model<br />
where all the cache levels go away.<SPAN>&nbsp;<br />
</SPAN>We hazard that all the CPUs are inhered in a single partaken in memory.<SPAN>&nbsp; </SPAN>Nowadays we hardly demand to cognize whether all the<br />
CPUs realise the same state in that memory, or if it’s potential for some of them to<br />
realize reordering in the loads and stores that occur on other CPUs.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">At one<br />
utmost, we have a world where all the CPUs realize a single ordered memory.<SPAN>&nbsp; </SPAN>All the loads and stores expressed in<br />
programs are performed in a serialized manner and nobody comprehends a especial<br />
thread’s loads or stores being reordered.<SPAN>&nbsp;<br />
</SPAN>That’s a wonderfully reasonable model which is well-fixed for software developers to<br />
cover and program to.<SPAN>&nbsp;<br />
</SPAN>Regrettably, it is far too deadening and non-scalable.<SPAN>&nbsp; </SPAN>Nobody progresss this.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">At the<br />
other uttermost, we have a world where CPUs go almost all out of individual<br />
cache.<SPAN>&nbsp; </SPAN>If another CPU always realizes<br />
anything my CPU is behaving, it’s a full accident of timing.<SPAN>&nbsp; </SPAN>Because loads and stores can propagate<br />
to other CPUs in any random order, performance and surmounting are gravid.<SPAN>&nbsp; </SPAN>But it is unacceptable for humans to<br />
program to this model.</FONT></P></p>
<div class="interline"><a href="http://www.multisoftgroup.com/" title="Custom Software Development">Custom Software</a> Development for Real-Estate, Hosting providers, Workflow and Business Management Systems.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">In<br />
between those extremes are a lot of dissimilar possibilities.<SPAN>&nbsp; </SPAN>Those possibilities are explained in<br />
terms of develop and release semantics:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<UL type="disc"><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">A normal load or store can be freely reordered with respect<br />
 to other normal load or store operations.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">A load with produce semantics makes a downwardly<br />
 fence.<SPAN>&nbsp; </SPAN>This intends that normal<br />
 loads and stores can be displaced down past the load.produce, but nothing can be<br />
 moved to above the load.produce.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">A store with release semantics makes an upward<br />
 fence.<SPAN>&nbsp; </SPAN>This thinks that normal<br />
 loads and stores can be moved above the store.release, but nothing can be<br />
 moved to below the store.release.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">A total fence is efficaciously an up and down<br />
 fence.<SPAN>&nbsp; </SPAN>Nothing can get in either<br />
 direction across a total fence.</FONT></LI></UL><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">A<br />
super-firm utmost model frames a total fence after every load or store.<SPAN>&nbsp; </SPAN>A super-frail uttermost model emploies normal<br />
loads and stores all over, with no fencing.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">The most<br />
conversant model is X86.<SPAN>&nbsp; </SPAN>It’s a<br />
relatively strong model.<SPAN>&nbsp; </SPAN>Stores are<br />
ne&#8217;er reordered with respect to other stores.<SPAN>&nbsp; </SPAN>But, in the absence of data dependence,<br />
loads can be reordered with respect to other loads and stores.<SPAN>&nbsp; </SPAN>Many X86 developers don’t realise that<br />
this reordering is potential, though it can lead to some awful failures under<br />
stress on large MP machines.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P></p>
<div class="interline"><a href="http://www.jbTop.com/" title="Help Desk Software">Help Desk Software</a>: Next generation of Live Chat. Jabber/XMPP Live Chat Service for your website.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">In terms<br />
of the above, the memory model for X86 can be delineated as:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<OL type="1"><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">All stores are in reality store.release.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">All loads are normal loads.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Any use of the LOCK prefix (e.g. ‘LOCK CMPXCHG’ or ‘LOCK<br />
 INC’) makes a total fence.</FONT></LI></OL><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Historically, Windows NT has kept going Alpha and MIPS computers.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Depending<br />
forrad, Microsoft has denoted that Windows will hold up Intel’s IA64 and<br />
AMD’s AMD64 processors.<SPAN>&nbsp; </SPAN>Finally,<br />
we require to port the CLR to wherever Windows runs.<SPAN>&nbsp; </SPAN>You can make an obvious conclusion from<br />
these facts.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">AMD64<br />
has the same memory model as X86.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">IA64<br />
qualifies a frail memory model than X86.<SPAN>&nbsp;<br />
</SPAN>Specifically, all loads and stores are normal loads and stores.<SPAN>&nbsp; </SPAN>The application must employ especial ld.acq<br />
and st.rel instructions to attain develop and release semantics.<SPAN>&nbsp; </SPAN>There’s too a total fence instruction,<br />
though I can’t call up the opcode (mf?).</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Be<br />
especially disbelieving when you take the next paragraph:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">There’s<br />
some reason to trust that current IA64 hardware in reality implements a firm<br />
model than is qualifyed.<SPAN>&nbsp; </SPAN>Based on<br />
informed hearsay and lots of data-based evidence, it reckons like normal store<br />
instructions on current IA64 hardware are retired in order with release<br />
semantics.</FONT></P></p>
<div class="interline"><a href="http://www.jbTop.com/" title="Live Person">Live Person</a>: Live Chat Solution for Online Customer Service on Website.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">If this<br />
is indeed the case, why would Intel condition something imperfect than what they have<br />
worked up?<SPAN>&nbsp; </SPAN>Presumptively they would do<br />
this to allow for the door undetermined for a imperfect (i.e. faster and more scalable)<br />
implementation in the future.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">In fact,<br />
the CLR has behaved just the same thing.<SPAN>&nbsp;<br />
</SPAN>Section 12.6 of Partition I of the ECMA CLI specification explicates our<br />
memory model.<SPAN>&nbsp; </SPAN>This explicates the<br />
alignment rules, byte ordering, the atomicity of loads and stores, explosive<br />
semantics, puting away behavior, etc.<SPAN>&nbsp;<br />
</SPAN>According to that specification, an application must apply explosive loads<br />
and explosive stores to reach grow and release semantics.<SPAN>&nbsp; </SPAN>Normal loads and stores can be freely<br />
reordered, as seen by other CPUs.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">What is<br />
the hard-nosed implication of this?<SPAN>&nbsp;<br />
</SPAN>Regard the received double-locking in protocol:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">if (a == null)</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">{</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">&nbsp; lock(obj)</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">&nbsp; {</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">&nbsp;&nbsp;&nbsp; if (a == null) a = new<br />
A();</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">&nbsp; }</FONT></SPAN></P><br />
<P class="MsoNormal"><SPAN><FONT size="2">}</FONT></SPAN></P></p>
<div class="interline">Developing <a href="http://www.multisoftgroup.com/projects.html" title="Customer Relationship Management ">Customer Relationship Management</a> Solutions. Web, e-Commerce, Database Design and Software Development.
</div>
<p><P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">This is<br />
a rough-cut technique for forefending a lock on the read of ‘a’ in the distinctive<br />
case.<SPAN>&nbsp; </SPAN>It acts just hunky-dory on<br />
X86.<SPAN>&nbsp; </SPAN>But it would be broken by a<br />
effectual but imperfect implementation of the ECMA CLI spec.<SPAN>&nbsp; </SPAN>It’s honest that, according to the ECMA<br />
spec, geting a lock has grow semantics and freing a lock has release<br />
semantics.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Even so,<br />
we have to accept that a series of stores have read place during construction<br />
of ‘a’.<SPAN>&nbsp; </SPAN>Those stores can be<br />
at random reordered, including the possibility of checking them until after<br />
the printing store which deputes the newfangled object to ‘a’.<SPAN>&nbsp; </SPAN>At that point, there is a little window<br />
before the store.release implied by providing the lock.<SPAN>&nbsp; </SPAN>Inside that window, other CPUs can<br />
navigate through the reference ‘a’ and realise a partially constructed<br />
instance.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">We could<br />
pay back this code in assorted ways.<SPAN>&nbsp; </SPAN>For<br />
example, we could sneak in a memory barrier of some sort after construction and<br />
before assignment to ‘a’.<SPAN>&nbsp; </SPAN>Or – if<br />
construction of ‘a’ has no side effects – we could displace the assignment outside<br />
the lock, and utilise an Interlocked.CompareExchange to ascertain that assignment but<br />
befalls one time.<SPAN>&nbsp; </SPAN>The GC would accumulate<br />
any redundant ‘A’ instances created by this race.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">I hope<br />
that this example has won over you that you put on’t desire to examine saving honest<br />
code against the documented CLI model.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">I saved<br />
a mediocre amount of “canny” lock-spare thread-dependable code in version 1 of the<br />
CLR.<SPAN>&nbsp; </SPAN>This let in techniques like<br />
lock-spare synchronization between the class loader, the prestub (which snares<br />
first off calls on methods so it can yield code for them), and AppDomain<br />
unlading indeed that I could backward-patch MethodTable slots expeditiously.<SPAN>&nbsp; </SPAN>But I have no desire to save any kind<br />
of code on a system that’s as frail as the ECMA CLI spec.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Still if<br />
I proved to save code that is robust under that memory model, I have no hardware<br />
that I could prove it on.<SPAN>&nbsp; </SPAN>X86, AMD64<br />
and (presumptively) IA64 are firm than what we stipulated.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">In my<br />
opinion, we drove in up when we stipulated the ECMA memory model.<SPAN>&nbsp; </SPAN>That model is excessive<br />
because:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<UL type="disc"><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">All stores to partaken in memory in truth ask a explosive<br />
 prefix.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">This is not a fat way to code.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Developers will much progress to mistakes as they trace this<br />
 burdensome discipline.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">These mistakes cannot be discovered through testing,<br />
 because the hardware is too firm.</FONT></LI></UL><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Indeed what<br />
would reach a sensitive memory model for the CLR?</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Well,<br />
foremost we would desire to have a logical model across all CLI<br />
implementations.<SPAN>&nbsp; </SPAN>This would admit<br />
the CLR, Rotor, the Succinct Frameworks, SPOT, and – ideally – non-Microsoft<br />
implementations like Mono.<SPAN>&nbsp; </SPAN>Indeed<br />
casting a coarse memory model into an ECMA spec was decidedly a well<br />
idea.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">It goes<br />
without supposing that this model should be ordered across all potential<br />
CPUs.<SPAN>&nbsp; </SPAN>We’re in magnanimous trouble if<br />
everyone is testing on X86 but so deploying on Alpha (which had a notoriously<br />
fallible model).</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">We would<br />
as well desire to have a logical model between the aboriginal code generator (JIT or<br />
NGEN) and the CPU.<SPAN>&nbsp; </SPAN>It doesn’t reach<br />
sense to stiffen the JIT or NGEN to order stores, but so let the CPU to<br />
reorder those stores.<SPAN>&nbsp; </SPAN>Or vice<br />
versa.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Ideally,<br />
the IL generator would too trace the same model.<SPAN>&nbsp; </SPAN>In other words, your C# compiler should<br />
be permited to reorder whatever the aboriginal code generator and CPU are let to<br />
reorder.<SPAN>&nbsp; </SPAN>There’s some debate<br />
whether the converse is honest.<SPAN>&nbsp;<br />
</SPAN>Arguably, it is fine for an IL generator to employ more belligerent<br />
optimizations than the aboriginal code generator and CPU are allowed, because IL<br />
generation occurs on the developer’s box and is subject to testing.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Finally, that last point is a language decision sort of than a CLR<br />
decision.<SPAN>&nbsp; </SPAN>Some IL generators, like<br />
ILASM, will strictly give out IL in the sequence specified by the source<br />
code.<SPAN>&nbsp; </SPAN>Other IL generators, like<br />
Dealt C++, might quest for belligerent reordering based on their ain language<br />
rules and compiler optimization switches.<SPAN>&nbsp;<br />
</SPAN>If I had to suppose, IL generators like the Microsoft compilers for C# and<br />
VB.NET would make up one&#8217;s mind to value the CLR’s memory model.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">We’ve<br />
passed a lot of time flirting with what the right memory model for the CLR<br />
should be.<SPAN>&nbsp; </SPAN>If I had to think, we’re<br />
extending to switch from the ECMA model to the tracing model.<SPAN>&nbsp; </SPAN>I cogitate that we will test to carry<br />
other CLI implementations to take up this same model, and that we will prove to<br />
exchange the ECMA specification to contemplate this.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<OL type="1"><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Memory ordering but applies to locations which can be<br />
 globally seeable or locations that are crossed out explosive.<SPAN>&nbsp; </SPAN>Any locals that are not direct<br />
 let out can be optimized without utilizing memory ordering as a constraint since<br />
 these locations cannot be touched by multiple threads in parallel.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Non-explosive loads can be reordered freely.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Every store (irrespective of explosive marking) is seen<br />
 a release.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Explosive loads are regarded develop.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Device orientated software may demand exceptional programmer<br />
 care.<SPAN>&nbsp; </SPAN>Explosive stores are yet<br />
 required for any access of device memory.<SPAN>&nbsp; </SPAN>This is typically not a concern for<br />
 the cared developer.</FONT></LI></OL><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">If<br />
you’re cerebrating this depends an nasty lot like X86, AMD64 and (presumptively) IA64,<br />
you are correct.<SPAN>&nbsp; </SPAN>We likewise cerebrate it<br />
strikes the seraphic spots for compilers.<SPAN>&nbsp;<br />
</SPAN>Reordering loads is much more crucial for enabling optimizations than<br />
reordering stores. </FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Indeed what<br />
happens in 10 years when these architectures are passed and we’re all utilising<br />
futurist Starbucks computers with an extremist-imperfect model?<SPAN>&nbsp; </SPAN>Well, hopefully I’ll be experiencing the well<br />
life in retirement on Maui.<SPAN>&nbsp; </SPAN>But the CLR’s aboriginal code generators<br />
will render whatever instructions are necessary to hold stores arranged when<br />
runing your bing programs.<SPAN>&nbsp;<br />
</SPAN>Evidently this will give some performance.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">The<br />
trade-off between developer productivity and computer performance is truly an<br />
economical one.<SPAN>&nbsp; </SPAN>If there’s sufficient<br />
incentive to save code to a fallible memory model so it can run expeditiously on<br />
next computers, so developers will do indeed.<SPAN>&nbsp; </SPAN>At that point, we will permit them to<br />
cross off their assemblies (or item-by-item methods) to argue that they are “frail<br />
model unobjectionable”.<SPAN>&nbsp; </SPAN>This will allow the<br />
aboriginal code generator to give out normal stores kind of than store.release<br />
instructions.<SPAN>&nbsp; </SPAN>You’ll be capable to<br />
attain eminent performance on imperfect machines, but this will e&#8217;er be “opt<br />
in”.<SPAN>&nbsp; </SPAN>And we gained’t work up this<br />
capability until there’s a veridical demand for it.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">I<br />
in person trust that for mainstream figuring, imperfect memory models will ne&#8217;er<br />
get on with human developers.<SPAN>&nbsp;<br />
</SPAN>Human productivity and software reliability are more crucial than the<br />
increment of performance and surmounting these models allow.</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">Last,<br />
I cogitate the person asking about memory models was in truth interested in where he<br />
should utilise explosive and fences in his code.<SPAN>&nbsp; </SPAN>Here’s my advice:</FONT></P><br />
<P class="MsoNormal"><FONT face="Tahoma" size="2">&nbsp;</FONT></P><br />
<UL type="disc"><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Apply cared locks like Monitor.Enter (C# lock / VB.NET<br />
 synclock) for synchronization, except where performance in truth expects you to<br />
 be “cagy”.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">When you’re being “canny”, accept the relatively firm<br />
 model I delineated higher up.<SPAN>&nbsp; </SPAN>Only<br />
 loads are open to re-ordering.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">If you have more than a few places that you are utilizing<br />
 explosive, you’re in all probability being too cagy.<SPAN>&nbsp; </SPAN>See indorsing off and employing cared<br />
 locks rather.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">See that synchronization is expensive.<SPAN>&nbsp; </SPAN>The total fence implied by<br />
 Interlocked.Increment can be many 100’s of cycles on forward-looking hardware.<SPAN>&nbsp; </SPAN>That penalty may carry on to develop, in<br />
 proportional terms.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">See locality and hiving up effects like blistering spots due to<br />
 imitation sharing.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Stress test for days with the largest MP box you can get<br />
 your hands on.</FONT></LI><br />
 <LI class="MsoNormal"><FONT face="Tahoma" size="2">Read everything I said with a grain of<br />
salt.</FONT></LI></UL><img src="http://blogs.msdn.com/aggbug.aspx?PostID=51445" width="1" height="1"></p>
]]></content:encoded>
			<wfw:commentRss>http://kerrysoft16.edublogs.org/2008/05/28/memory-model-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
