<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: On massively parallel coderacks</title>
	<atom:link href="http://farg.wordpress.com/2008/03/11/on-massively-parallel-coderacks/feed/" rel="self" type="application/rss+xml" />
	<link>http://farg.wordpress.com/2008/03/11/on-massively-parallel-coderacks/</link>
	<description>Musings from the Fluid Analogies Research Group</description>
	<lastBuildDate>Thu, 16 Apr 2009 15:43:23 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: That&#8217;s some distributed temperature right there, Dude! &#171; FARG Blog</title>
		<link>http://farg.wordpress.com/2008/03/11/on-massively-parallel-coderacks/#comment-74</link>
		<dc:creator>That&#8217;s some distributed temperature right there, Dude! &#171; FARG Blog</dc:creator>
		<pubDate>Tue, 01 Apr 2008 04:32:12 +0000</pubDate>
		<guid isPermaLink="false">http://farg.wordpress.com/?p=25#comment-74</guid>
		<description>[...]   I&#8217;ve been thinking about massively parallel FARG, distributed temperature, and distributed coderacks: Now, whenever a codelet is about to change something up, why add it to the global, central, [...]</description>
		<content:encoded><![CDATA[<p>[...]   I&#8217;ve been thinking about massively parallel FARG, distributed temperature, and distributed coderacks: Now, whenever a codelet is about to change something up, why add it to the global, central, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: amahabal</title>
		<link>http://farg.wordpress.com/2008/03/11/on-massively-parallel-coderacks/#comment-44</link>
		<dc:creator>amahabal</dc:creator>
		<pubDate>Fri, 14 Mar 2008 13:37:04 +0000</pubDate>
		<guid isPermaLink="false">http://farg.wordpress.com/?p=25#comment-44</guid>
		<description>Michael,
   I think your way might be cleaner.  Seqsee has changed over time,  and some of what it has is  vestigial.  If I redo,  I might move more things to the action fringe.</description>
		<content:encoded><![CDATA[<p>Michael,<br />
   I think your way might be cleaner.  Seqsee has changed over time,  and some of what it has is  vestigial.  If I redo,  I might move more things to the action fringe.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://farg.wordpress.com/2008/03/11/on-massively-parallel-coderacks/#comment-42</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Fri, 14 Mar 2008 01:36:12 +0000</pubDate>
		<guid isPermaLink="false">http://farg.wordpress.com/?p=25#comment-42</guid>
		<description>In my model, the solution and progress would be units in the Workspace.  Thus there is still a place to attach a Codelet.

Likewise scouts -- I regard it as an artifact of the code organization that bottom-up scouts don&#039;t have objects attached when they&#039;re posted.  In my way of thinking, to determine an action, I &lt;i&gt;always&lt;/i&gt; select a unit first, then determine what kinds of action it might want taken.  I &lt;i&gt;think&lt;/i&gt; this should work -- it should be equivalent, really, just organized differently.

But I&#039;m happy to see your intuition is going in the same direction as mine, with your action fringe.  That&#039;s heartening.</description>
		<content:encoded><![CDATA[<p>In my model, the solution and progress would be units in the Workspace.  Thus there is still a place to attach a Codelet.</p>
<p>Likewise scouts &#8212; I regard it as an artifact of the code organization that bottom-up scouts don&#8217;t have objects attached when they&#8217;re posted.  In my way of thinking, to determine an action, I <i>always</i> select a unit first, then determine what kinds of action it might want taken.  I <i>think</i> this should work &#8212; it should be equivalent, really, just organized differently.</p>
<p>But I&#8217;m happy to see your intuition is going in the same direction as mine, with your action fringe.  That&#8217;s heartening.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: amahabal</title>
		<link>http://farg.wordpress.com/2008/03/11/on-massively-parallel-coderacks/#comment-41</link>
		<dc:creator>amahabal</dc:creator>
		<pubDate>Thu, 13 Mar 2008 14:14:02 +0000</pubDate>
		<guid isPermaLink="false">http://farg.wordpress.com/?p=25#comment-41</guid>
		<description>Alex,
  and also  bond scouts and group scouts  in Copycat, which are &quot;global&quot;,  in the sense that they first  choose  some object to act on.  They are not born attached  to some object.</description>
		<content:encoded><![CDATA[<p>Alex,<br />
  and also  bond scouts and group scouts  in Copycat, which are &#8220;global&#8221;,  in the sense that they first  choose  some object to act on.  They are not born attached  to some object.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Abhijit Mahabal</title>
		<link>http://farg.wordpress.com/2008/03/11/on-massively-parallel-coderacks/#comment-40</link>
		<dc:creator>Abhijit Mahabal</dc:creator>
		<pubDate>Thu, 13 Mar 2008 05:00:49 +0000</pubDate>
		<guid isPermaLink="false">http://farg.wordpress.com/?p=25#comment-40</guid>
		<description>Alex,
    The Zero object codelets could include  codelets to estimate if we have a solution, check progress, and so forth.  These are global tasks... 

   --ab</description>
		<content:encoded><![CDATA[<p>Alex,<br />
    The Zero object codelets could include  codelets to estimate if we have a solution, check progress, and so forth.  These are global tasks&#8230; </p>
<p>   &#8211;ab</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Linhares</title>
		<link>http://farg.wordpress.com/2008/03/11/on-massively-parallel-coderacks/#comment-39</link>
		<dc:creator>Alex Linhares</dc:creator>
		<pubDate>Wed, 12 Mar 2008 22:37:26 +0000</pubDate>
		<guid isPermaLink="false">http://farg.wordpress.com/?p=25#comment-39</guid>
		<description>Ab,

These codelets with zero objetcs, what do they do?  Aren&#039;t they all for &quot;system maintenance&quot;?  (that&#039;s my case at least, so I&#039;m wondering if my system is lacking in some important flexibility).

There are chunks, objects which include others, and relations, things that obtain some objects and create new ones from the original.  If a specific relation wants to change an object X inside a chunk C and an object Y outside of it, we will have a (C,Y)-coderack.  Neither the chunk nor the 2nd object can be altered without entering this particular coderack (and its thread).

You point out an interesting problem: perhaps 1000 coderacks with only two codelets might arise?  Well, that is true.. it could be.  But think about this:  current processors are already at 45 nanometers... they&#039;re getting to the limits, which makes me feel that soon, maybe 5 years, we&#039;ll have 64 processors on a regular 1500 dollar noteboook. 

And if that isn&#039;t enough, just google up &quot;GPGPU&quot; and &quot;stream processing&quot;.</description>
		<content:encoded><![CDATA[<p>Ab,</p>
<p>These codelets with zero objetcs, what do they do?  Aren&#8217;t they all for &#8220;system maintenance&#8221;?  (that&#8217;s my case at least, so I&#8217;m wondering if my system is lacking in some important flexibility).</p>
<p>There are chunks, objects which include others, and relations, things that obtain some objects and create new ones from the original.  If a specific relation wants to change an object X inside a chunk C and an object Y outside of it, we will have a (C,Y)-coderack.  Neither the chunk nor the 2nd object can be altered without entering this particular coderack (and its thread).</p>
<p>You point out an interesting problem: perhaps 1000 coderacks with only two codelets might arise?  Well, that is true.. it could be.  But think about this:  current processors are already at 45 nanometers&#8230; they&#8217;re getting to the limits, which makes me feel that soon, maybe 5 years, we&#8217;ll have 64 processors on a regular 1500 dollar noteboook. </p>
<p>And if that isn&#8217;t enough, just google up &#8220;GPGPU&#8221; and &#8220;stream processing&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: amahabal</title>
		<link>http://farg.wordpress.com/2008/03/11/on-massively-parallel-coderacks/#comment-38</link>
		<dc:creator>amahabal</dc:creator>
		<pubDate>Wed, 12 Mar 2008 19:48:00 +0000</pubDate>
		<guid isPermaLink="false">http://farg.wordpress.com/?p=25#comment-38</guid>
		<description>Michael,

Seqsee already does what you mention in  Paragraph 3 of your comment.  I call this the action fringe of the  object  (where object is a number, group, bond,  or category, but that can be extended).  {See &quot;get-actions&quot; in lib/SThoughts/SObject.pm, for actions on groups and on numbers. The code needs clean up, but might be somewhat intellegible.} This is over and beyond  the Coderack, which is still needed.  Not all  actions are related to individual objects. Some are related to none, others to more than one,  and thus you need a Coderack for those things.</description>
		<content:encoded><![CDATA[<p>Michael,</p>
<p>Seqsee already does what you mention in  Paragraph 3 of your comment.  I call this the action fringe of the  object  (where object is a number, group, bond,  or category, but that can be extended).  {See &#8220;get-actions&#8221; in lib/SThoughts/SObject.pm, for actions on groups and on numbers. The code needs clean up, but might be somewhat intellegible.} This is over and beyond  the Coderack, which is still needed.  Not all  actions are related to individual objects. Some are related to none, others to more than one,  and thus you need a Coderack for those things.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://farg.wordpress.com/2008/03/11/on-massively-parallel-coderacks/#comment-35</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Wed, 12 Mar 2008 03:00:51 +0000</pubDate>
		<guid isPermaLink="false">http://farg.wordpress.com/?p=25#comment-35</guid>
		<description>We are talking about a rack for each object in the Workspace, I think.  That&#039;s how I&#039;d do it.  (this is a careful phrasing of &quot;that&#039;s how I&#039;m doing it.&quot;)  And then we&#039;re simply no longer talking about a rack, of course.

Here&#039;s how I see it.  The Coderack is simply a list of possible things to try on a more or less random basis.  I think it&#039;s far cleaner to come up with action pressures directly.  For instance, if we have a scan group a b c, then there is naturally some pressure to try to extend it to a b c d.  That pressure ceases to exist when the group is gone, and it&#039;s higher if the group is salient.

But salience is just a matter of interest, or attention, or whatever you want to call it.  Actually, I think a cleaner way to organize the activity of the entire model is simply to choose a salient object at random, then ask it, &quot;what pressures do you feel,&quot; then choose a codelet at random based on that pressure.  There is no rack, per se.

In situations where there are multiple codelets to break a given process up into discrete pieces (e.g. scout-assess-build), this &quot;momentum&quot; can, and should. be represented as a state of the object itself.  In a scout-assess-build model, the scout codelet proposes an object (say), by which we can mean, &quot;creates a Workspace object with state &#039;proposed&#039;.&quot;  Now that object actually exists already, but is special in that it can&#039;t be used as a component unit in other objects.  (This bit&#039;s hand-wavy.)  But it can still have a high salience or urgency or attention, and when we ask it, &quot;what do you want to do today,&quot; it can reply, &quot;get built.&quot;  See?

In this model there is no actual Coderack, meaning that the massive parallelism can take care of itself.

This model of codelets is my next task for Copycopycat.  Wish me luck.</description>
		<content:encoded><![CDATA[<p>We are talking about a rack for each object in the Workspace, I think.  That&#8217;s how I&#8217;d do it.  (this is a careful phrasing of &#8220;that&#8217;s how I&#8217;m doing it.&#8221;)  And then we&#8217;re simply no longer talking about a rack, of course.</p>
<p>Here&#8217;s how I see it.  The Coderack is simply a list of possible things to try on a more or less random basis.  I think it&#8217;s far cleaner to come up with action pressures directly.  For instance, if we have a scan group a b c, then there is naturally some pressure to try to extend it to a b c d.  That pressure ceases to exist when the group is gone, and it&#8217;s higher if the group is salient.</p>
<p>But salience is just a matter of interest, or attention, or whatever you want to call it.  Actually, I think a cleaner way to organize the activity of the entire model is simply to choose a salient object at random, then ask it, &#8220;what pressures do you feel,&#8221; then choose a codelet at random based on that pressure.  There is no rack, per se.</p>
<p>In situations where there are multiple codelets to break a given process up into discrete pieces (e.g. scout-assess-build), this &#8220;momentum&#8221; can, and should. be represented as a state of the object itself.  In a scout-assess-build model, the scout codelet proposes an object (say), by which we can mean, &#8220;creates a Workspace object with state &#8216;proposed&#8217;.&#8221;  Now that object actually exists already, but is special in that it can&#8217;t be used as a component unit in other objects.  (This bit&#8217;s hand-wavy.)  But it can still have a high salience or urgency or attention, and when we ask it, &#8220;what do you want to do today,&#8221; it can reply, &#8220;get built.&#8221;  See?</p>
<p>In this model there is no actual Coderack, meaning that the massive parallelism can take care of itself.</p>
<p>This model of codelets is my next task for Copycopycat.  Wish me luck.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: amahabal</title>
		<link>http://farg.wordpress.com/2008/03/11/on-massively-parallel-coderacks/#comment-34</link>
		<dc:creator>amahabal</dc:creator>
		<pubDate>Tue, 11 Mar 2008 14:30:51 +0000</pubDate>
		<guid isPermaLink="false">http://farg.wordpress.com/?p=25#comment-34</guid>
		<description>Hi Alex,
   I do not  disagree,  but tell me  some more.  Let&#039;s say that the program  is solving &quot;1 1 2 1 2 3 1 2 3 4&quot;,  just to pick something  at random.  How many  Coderacks  are we talking about?  5?  500?  What are the coderacks  at any given stage? Is there one  per group  (say, one for the last three elements &quot;2 3 4&quot;)?  When this group is extended to be seen  correctly as &quot;1 2 3 4&quot;,  do we replace or modify the Coderack?  Is there one Coderack per bond as well(say, 1 2 3 --&gt; 1 2 3 4)? Per category  (say, ascending group)? These are  not just implementation  details,  I think.

If there are too many  Coderacks,  so many, in fact, that the expected population of each is less than 2 codelets,  we may not have gained much.  you&#039;d need a happy  medium, somewhat between  1 and too many. 

  Again,  I do not disagree,  just trying to understand  your proposal better.

--Ab</description>
		<content:encoded><![CDATA[<p>Hi Alex,<br />
   I do not  disagree,  but tell me  some more.  Let&#8217;s say that the program  is solving &#8220;1 1 2 1 2 3 1 2 3 4&#8243;,  just to pick something  at random.  How many  Coderacks  are we talking about?  5?  500?  What are the coderacks  at any given stage? Is there one  per group  (say, one for the last three elements &#8220;2 3 4&#8243;)?  When this group is extended to be seen  correctly as &#8220;1 2 3 4&#8243;,  do we replace or modify the Coderack?  Is there one Coderack per bond as well(say, 1 2 3 &#8211;&gt; 1 2 3 4)? Per category  (say, ascending group)? These are  not just implementation  details,  I think.</p>
<p>If there are too many  Coderacks,  so many, in fact, that the expected population of each is less than 2 codelets,  we may not have gained much.  you&#8217;d need a happy  medium, somewhat between  1 and too many. </p>
<p>  Again,  I do not disagree,  just trying to understand  your proposal better.</p>
<p>&#8211;Ab</p>
]]></content:encoded>
	</item>
</channel>
</rss>
