<?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>Hazel McKendrick &#187; microcells</title>
	<atom:link href="http://hazelmckendrick.com/journal/tag/microcells/feed" rel="self" type="application/rss+xml" />
	<link>http://hazelmckendrick.com</link>
	<description>Programming and Games Technology Portfolio</description>
	<lastBuildDate>Mon, 20 Jun 2011 17:44:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Honours Project Completion</title>
		<link>http://hazelmckendrick.com/journal/honours-project-completion</link>
		<comments>http://hazelmckendrick.com/journal/honours-project-completion#comments</comments>
		<pubDate>Sun, 30 May 2010 18:53:52 +0000</pubDate>
		<dc:creator>Hazel</dc:creator>
				<category><![CDATA[University Project]]></category>
		<category><![CDATA[dissertation]]></category>
		<category><![CDATA[Distributed Computing]]></category>
		<category><![CDATA[microcells]]></category>

		<guid isPermaLink="false">http://hazelmckendrick.com/?p=1978</guid>
		<description><![CDATA[As my laptop decided to fail quite catastrophically the day after I handed in my honours project (just luck it didn&#8217;t do so before, really) I realise I haven&#8217;t updated the blog in some time. I&#8217;ll post results and likely also the written work and source code when I have my own laptop back again, [...]]]></description>
			<content:encoded><![CDATA[<p>As my laptop decided to fail quite catastrophically the day after I handed in my honours project (just luck it didn&#8217;t do so before, really) I realise I haven&#8217;t updated the blog in some time.  I&#8217;ll post results and likely also the written work and source code when I have my own laptop back again, but for now here are some images to show how the project ended. <span id="more-1978"></span></p>
<p>The larger square shows the total area of the small virtual world.  Each smaller square represents a microcell, an area of the world to be assigned to and updated by a single worker node.  The worker nodes are shown by the three colours in the images below, which are each viewed from the central server.  The simulation was run for a number of minutes, with cells being redistributed dynamically between nodes.  Numbers at the bottom right indicate the number of minutes the system had been active for when the screenshot was captured.<br />
<center><a href="http://hazelmckendrick.com/wp-content/uploads/2010/05/time.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/05/time.png" alt="" title="time" width="654" height="439" class="aligncenter size-full wp-image-1979" /></a></center></p>
<p>This image shows the view from a worker node, each blue dot represents a single entity following a path.  This node is completely under-loaded just so that the entities can be seen clearly, when thousands are processed it can be hard to pick out individuals.<br />
<a href="http://hazelmckendrick.com/wp-content/uploads/2010/05/nodevisualisation.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/05/nodevisualisation.png" alt="" title="nodevisualisation" width="425" height="423" class="aligncenter size-full wp-image-1981" /></a></p>
<p>This shows the use of varying microcell sizes.  The use of different sizes didn&#8217;t actually make a difference to average load, maximum load or load disparity between worker nodes except when particularly small cells were used.  This caused a great deal of load for the central server, a huge increase in the number of transfers required and as the images show prevent the world from being re-partitioned in a reasonable period of time.<br />
<a href="http://hazelmckendrick.com/wp-content/uploads/2010/05/size.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/05/size.png" alt="" title="size" width="696" height="468" class="aligncenter size-full wp-image-1980" /></a></p>
<p>Finally, this image shows the cell distribution between worker nodes when the number used was scaled to match the problem size.  As the number of entities was increased and then decreased, the number of computers used was scaled similarly.<br />
<a href="http://hazelmckendrick.com/wp-content/uploads/2010/05/add2.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/05/add2.png" alt="" title="add2" width="667" height="446" class="aligncenter size-full wp-image-1983" /></a></p>
<p>That&#8217;s all for now, I&#8217;ll do my best to go over some details when my laptop has been repaired.</p>
]]></content:encoded>
			<wfw:commentRss>http://hazelmckendrick.com/journal/honours-project-completion/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microcell Distribution</title>
		<link>http://hazelmckendrick.com/journal/microcell-distribution</link>
		<comments>http://hazelmckendrick.com/journal/microcell-distribution#comments</comments>
		<pubDate>Sun, 28 Mar 2010 14:17:14 +0000</pubDate>
		<dc:creator>Hazel</dc:creator>
				<category><![CDATA[University Project]]></category>
		<category><![CDATA[dissertation]]></category>
		<category><![CDATA[Distributed Computing]]></category>
		<category><![CDATA[microcells]]></category>

		<guid isPermaLink="false">http://hazelmckendrick.com/?p=1946</guid>
		<description><![CDATA[The images in this post show the successful distribution of space over the network, allowing clients to connect and be assigned a section of the world to process. Currently the framework allows functions for distributing cells to be added when the simulation starts, as additional nodes connect, and/or at regular intervals. These can be managed [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://hazelmckendrick.com/wp-content/uploads/2010/03/QuadDistribution2.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/03/QuadDistribution2-300x149.png" alt="" title="QuadDistribution" width="300" height="149" class="alignleft size-medium wp-image-1948" /></a> The images in this post show the successful distribution of space over the network, allowing clients to connect and be assigned a section of the world to process.  Currently the framework allows functions for distributing cells to be added when the simulation starts, as additional nodes connect, and/or at regular intervals.  These can be managed either by the central server, or initiated by worker nodes themselves.  The majority of the remainder of the project involves the algorithms for distributing cells between nodes.</p>
<p>Additionally, the framework now supports both hexagons and quads as cells.  Hexagons have the advantage that only 3 cells meet at any corner, limiting the maximum number of nodes which might be involved should an event take place there. Here&#8217;s some images of the view from the server with the most basic (block) distribution of cells:</p>
<p><a href="http://hazelmckendrick.com/wp-content/uploads/2010/03/blockdistnetwork.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/03/blockdistnetwork-1024x258.png" alt="" title="blockdistnetwork" width="650" height="170" class="aligncenter size-large wp-image-1954" /></a></p>
<p><a href="http://hazelmckendrick.com/wp-content/uploads/2010/03/HexBlockdistnet.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/03/HexBlockdistnet.png" alt="" title="HexBlockdistnet" width="650" height="170" class="aligncenter size-full wp-image-1956" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://hazelmckendrick.com/journal/microcell-distribution/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Microcell Testbed Images</title>
		<link>http://hazelmckendrick.com/journal/microcell-testbed-images</link>
		<comments>http://hazelmckendrick.com/journal/microcell-testbed-images#comments</comments>
		<pubDate>Sat, 20 Mar 2010 14:26:41 +0000</pubDate>
		<dc:creator>Hazel</dc:creator>
				<category><![CDATA[University Project]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[dissertation]]></category>
		<category><![CDATA[Distributed Computing]]></category>
		<category><![CDATA[microcells]]></category>
		<category><![CDATA[testbed]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://hazelmckendrick.com/?p=1922</guid>
		<description><![CDATA[For once I have something visual relating to my honours project, so it seemed appropriate to share a sample here. A major part of the project involves distributing microcells (fixed areas of the world) between a series of worker nodes both statically and dynamically. In order to test methods of achieving this, I created a [...]]]></description>
			<content:encoded><![CDATA[<p>For once I have something visual relating to my honours project, so it seemed appropriate to share a sample here.  </p>
<p>A major part of the project involves distributing microcells (fixed areas of the world) between a series of worker nodes both statically and dynamically.  In order to test methods of achieving this, I created a small testbed application which simulates the task without networking.  It is capable of using various methods to distribute cells, both at the start of the application and as it runs, both controlled by a central server and initiated by worker nodes and gives graphical and numerical feedback.</p>
<p>The images below were taken with a greatly reduced number of cells, and the work involved in processing each cell is artificial: there are no pathfinding characters yet.  However hopefully it demonstrates to some extent how division of the world takes place, and allows me to easily test distribution methods before using them in the proper simulation.</p>
<div id="attachment_1928" class="wp-caption alignleft" style="width: 160px"><a href="http://hazelmckendrick.com/wp-content/uploads/2010/03/QuantityOfChars1.jpg"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/03/QuantityOfChars1-150x150.jpg" alt="" title="QuantityOfChars" width="150" height="150" class="size-thumbnail wp-image-1928" /></a><p class="wp-caption-text">Coloured by number of characters per cell.</p></div> <div id="attachment_1932" class="wp-caption alignleft" style="width: 160px"><a href="http://hazelmckendrick.com/wp-content/uploads/2010/03/BlockDistribution2.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/03/BlockDistribution2-150x150.png" alt="" title="BlockDistribution" width="150" height="150" class="size-thumbnail wp-image-1932" /></a><p class="wp-caption-text">Initial block distribution.</p></div> <div id="attachment_1930" class="wp-caption alignleft" style="width: 160px"><a href="http://hazelmckendrick.com/wp-content/uploads/2010/03/RandomDistribution1.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/03/RandomDistribution1-150x150.png" alt="" title="RandomDistribution" width="150" height="150" class="size-thumbnail wp-image-1930" /></a><p class="wp-caption-text">Random distribution for comparison.</p></div> <div id="attachment_1924" class="wp-caption alignleft" style="width: 160px"><a href="http://hazelmckendrick.com/wp-content/uploads/2010/03/BlockDistributionGreedy11.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/03/BlockDistributionGreedy11-150x150.png" alt="" title="BlockDistributionGreedy1" width="150" height="150" class="size-thumbnail wp-image-1924" /></a><p class="wp-caption-text">Block distribution with dynamic passing after time.</p></div>
<p>As the actual application I am working on is written in C#, I used XNA to create the images here.  As it is possible to render XNA frames to a windows form application with little difficulty, this is also the approach I will employ for visualising the complete project.</p>
]]></content:encoded>
			<wfw:commentRss>http://hazelmckendrick.com/journal/microcell-testbed-images/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

