<?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; dissertation</title>
	<atom:link href="http://hazelmckendrick.com/journal/tag/dissertation/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>Honours Project Presentation</title>
		<link>http://hazelmckendrick.com/journal/honours-project-presentation</link>
		<comments>http://hazelmckendrick.com/journal/honours-project-presentation#comments</comments>
		<pubDate>Wed, 19 May 2010 18:20:17 +0000</pubDate>
		<dc:creator>Hazel</dc:creator>
				<category><![CDATA[University Project]]></category>
		<category><![CDATA[dissertation]]></category>
		<category><![CDATA[Distributed Computing]]></category>
		<category><![CDATA[presentation]]></category>

		<guid isPermaLink="false">http://hazelmckendrick.com/?p=1975</guid>
		<description><![CDATA[Here are my slides from my final presentation on my honours project, summarising the aims and some of the methods and results.]]></description>
			<content:encoded><![CDATA[<p>Here are my slides from my final presentation on my honours project, summarising the aims and some of the methods and results.</p>
<p><center>
<div style="width:425px" id="__ss_4355672"><object id="__sse4355672" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=finalpresentation-100530132341-phpapp02&#038;stripped_title=honours-project-presentation" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4355672" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=finalpresentation-100530132341-phpapp02&#038;stripped_title=honours-project-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p></center></p>
]]></content:encoded>
			<wfw:commentRss>http://hazelmckendrick.com/journal/honours-project-presentation/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>
		<item>
		<title>Comms Library Progress</title>
		<link>http://hazelmckendrick.com/journal/comms-library-progress</link>
		<comments>http://hazelmckendrick.com/journal/comms-library-progress#comments</comments>
		<pubDate>Sun, 28 Feb 2010 21:09:02 +0000</pubDate>
		<dc:creator>Hazel</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[University Project]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[dissertation]]></category>
		<category><![CDATA[multithreading]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://hazelmckendrick.com/?p=1847</guid>
		<description><![CDATA[Unfortunately my honours project is not particularly visual, so it can be hard to update this blog with my progress when I have nothing I can really show. However, progress is being made. The first component of the project, a communications and network library, was completed almost a week ago. The most useful thing I [...]]]></description>
			<content:encoded><![CDATA[<p>Unfortunately my honours project is not particularly visual, so it can be hard to update this blog with my progress when I have nothing I can really show.  However, progress <i>is</i> being made. The first component of the project, a communications and network library, was completed almost a week ago.</p>
<p>The most useful thing I can share is the class diagram this was based on.  It&#8217;s rough, it doesn&#8217;t detail methods or member data, and it&#8217;s far from beautiful, but perfection is an easy trap to fall into.  I thought it was better to have a functioning library and an ugly diagram than a work of art demonstrating a library which I then would have no time to create.<br />
<a href="http://hazelmckendrick.com/wp-content/uploads/2010/02/CommsLibClass21.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/02/CommsLibClass21-300x165.png" alt="" title="CommsLibClass2" width="300" height="165" class="aligncenter size-medium wp-image-1871" /></a></p>
<p>The current phase of the project is far more interesting in my opinion, and thankfully should result in something slightly more visually interesting.  It concerns the division of the world, hierarchically, into microcells.  This spatial partitioning, and more importantly the assignment of work to specific processors is fast becoming the major focus of the project, and I hope to follow up with more on that topic shortly.</p>
<p>EDIT: I have replaced the <a href="http://hazelmckendrick.com/wp-content/uploads/2010/02/CommsLibClass1.png">original diagram</a> with a still-ugly but slightly more descriptive update (if you actually view it at a decent size, that is).  The majority of member data and functions are still missing, but hopefully the few I&#8217;ve added will make my intentions slightly clearer.</p>
]]></content:encoded>
			<wfw:commentRss>http://hazelmckendrick.com/journal/comms-library-progress/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Progress Meeting Two</title>
		<link>http://hazelmckendrick.com/journal/progress-meeting-two</link>
		<comments>http://hazelmckendrick.com/journal/progress-meeting-two#comments</comments>
		<pubDate>Tue, 09 Feb 2010 10:49:07 +0000</pubDate>
		<dc:creator>Hazel</dc:creator>
				<category><![CDATA[University Project]]></category>
		<category><![CDATA[dissertation]]></category>
		<category><![CDATA[Gantt Chart]]></category>
		<category><![CDATA[MPI]]></category>
		<category><![CDATA[Pathfinding]]></category>

		<guid isPermaLink="false">http://hazelmckendrick.com/?p=1829</guid>
		<description><![CDATA[In preparation for my second honours project meeting I was asked to report my progress by under several headings. Additionally, I have prepared an updated Gantt chart reflecting the changes mentioned. Progress As intended, A* path-finding for characters is complete. A better visual demonstration of this will be required later. Several example applications were created [...]]]></description>
			<content:encoded><![CDATA[<p>In preparation for my second honours project meeting I was asked to report my progress by under several headings.  Additionally, I have prepared an updated <a href="http://hazelmckendrick.com/wp-content/uploads/2010/02/plugin-GanttChart.pdf">Gantt chart</a> reflecting the changes mentioned. <span id="more-1829"></span></p>
<p><a href="http://hazelmckendrick.com/wp-content/uploads/2010/02/gantt.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2010/02/gantt-1024x467.png" alt="" title="gantt" width="650" height="300" class="aligncenter size-large wp-image-1833" /></a></p>
<h2>Progress</h2>
<ul>
<li>As intended, A* path-finding for characters is complete.</li>
<li>A better visual demonstration of this will be required later.</li>
<li>Several example applications were created to test MPI.NET.</li>
<li>A communications library has been started.</li>
<li>Supervisor has been met once, will be met again later on the 9th.</li>
</ul>
<h2>Problems</h2>
<ul>
<li>MPI install completed.</li>
<li>However, using MPI.NET over multiple networked computers will not be possible with the<br />
currently installed OS. This misunderstanding was caused by misleading documentation,<br />
but mainly the inability to test the situation until the library was already installed.</li>
<li>Alternatives are installing Pure MPI.net, or writing a more substantial communication<br />
library.</li>
<li>Pure MPI.net may still not work without administrator privileges, and could take some time<br />
to install.</li>
<li>A more substantial library can in some parts be based on my networking coursework, and as<br />
such this option was chosen and the Gantt chart modified to reflect it.</li>
</ul>
<h2>Aims</h2>
<ul>
<li>Communication library should be complete and tested.</li>
<li>Decision should be made concerning whether MPI.NET will still be used locally.</li>
<li>Cell based world and storage for this should be in progress, ready to start adding characters<br />
to navigate it.</li>
]]></content:encoded>
			<wfw:commentRss>http://hazelmckendrick.com/journal/progress-meeting-two/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Final Proposal Outline</title>
		<link>http://hazelmckendrick.com/journal/final-proposal-outline</link>
		<comments>http://hazelmckendrick.com/journal/final-proposal-outline#comments</comments>
		<pubDate>Sat, 02 Jan 2010 13:48:14 +0000</pubDate>
		<dc:creator>Hazel</dc:creator>
				<category><![CDATA[University Project]]></category>
		<category><![CDATA[dissertation]]></category>
		<category><![CDATA[draft]]></category>
		<category><![CDATA[Feedback]]></category>
		<category><![CDATA[Proposal]]></category>

		<guid isPermaLink="false">http://hazelmckendrick.com/?p=1762</guid>
		<description><![CDATA[I completed a further proposal outline, reviewed by my supervisor and classmates, which I am expanding into a final proposal for the commencement of term next week. I added a lot of content to this draft, and was unsure exactly what was appropriate to mention and what would not be suitable (either by being too [...]]]></description>
			<content:encoded><![CDATA[<p>I completed a further proposal outline, reviewed by my supervisor and classmates, which I am expanding into a final proposal for the commencement of term next week.</p>
<p>I added a lot of content to this draft, and was unsure exactly what was appropriate to mention and what would not be suitable (either by being too simple or more relevant in my final dissertation), so I&#8217;m glad this was cleared up.  Changes are also to be made to the overall structure of the proposal.  Finally, I&#8217;ll attempt to reduce the number of references and leave some of them for my dissertation, as apparently half a dozen references would be a more suitable amount for a proposal.  I think this reduction will largely occur naturally when I restructure the proposal, however.</p>
<p>Here&#8217;s the <a href='http://hazelmckendrick.com/wp-content/uploads/2010/01/proposal-outline-2.pdf'>second outline draft</a>, the finished proposal should be up within the next week.</p>
]]></content:encoded>
			<wfw:commentRss>http://hazelmckendrick.com/journal/final-proposal-outline/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Proposal Draft</title>
		<link>http://hazelmckendrick.com/journal/project-proposal-draft</link>
		<comments>http://hazelmckendrick.com/journal/project-proposal-draft#comments</comments>
		<pubDate>Sun, 13 Dec 2009 13:53:23 +0000</pubDate>
		<dc:creator>Hazel</dc:creator>
				<category><![CDATA[University Project]]></category>
		<category><![CDATA[dissertation]]></category>
		<category><![CDATA[draft]]></category>
		<category><![CDATA[Feedback]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[Proposal]]></category>

		<guid isPermaLink="false">http://hazelmckendrick.com/?p=1744</guid>
		<description><![CDATA[For my first group meeting with my supervisor Dr. Henry Fortuna and fellow students Dave and Drew, we were asked to prepare an outline of our project proposal. Here&#8217;s my initial outline, which I am expanding on for our next meeting and will redraft into a complete proposal over Christmas. We discussed a number of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://hazelmckendrick.com/wp-content/uploads/2009/12/world.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2009/12/world-300x297.png" alt="world" title="world" width="150" height="150" class="alignright size-medium wp-image-1749" /></a>For my first group meeting with my supervisor Dr. Henry Fortuna and fellow students <a href="http://bigdavedev.com/honours-blog/">Dave</a> and <a href="http://deaghonours.blog.co.uk/">Drew</a>, we were asked to prepare an outline of our project proposal. </p>
<p><a href='http://hazelmckendrick.com/wp-content/uploads/2009/12/ProjectProposalOutline1.pdf'>Here&#8217;s my initial outline</a>, which I am expanding on for our next meeting and will redraft into a complete proposal over Christmas.</p>
<p>We discussed a number of points, most of them common to each of our proposals.  As well as this, Dr Ozveren gave further advice during his lecture on Thursday which will be addressed in my redraft.</p>
<ul>
<li>In terms of structure, &#8220;Motivation&#8221; deals with too many points and could become condescending to someone who is familiar with the topic.  Splitting the proposal to deal with literature review under its own subheading will help to address this and to emphasise the research work which has taken place.</li>
<li>The basic outline did not make it clear which points were taken or referencing literature and which were my own, obviously this is vital in the final proposal and as such should be demonstrated in the redraft.</li>
<li>The section &#8220;Addressing the Question&#8221; might be better separated into &#8220;Issues&#8221;, &#8220;Methodology&#8221; and &#8220;Evaluation&#8221;</li>
<li>The proposal should also include objectives and milestones, and optionally constraints, assumptions and risks.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://hazelmckendrick.com/journal/project-proposal-draft/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Research Question Presentation</title>
		<link>http://hazelmckendrick.com/journal/research-question-presentation</link>
		<comments>http://hazelmckendrick.com/journal/research-question-presentation#comments</comments>
		<pubDate>Mon, 23 Nov 2009 18:57:21 +0000</pubDate>
		<dc:creator>Hazel</dc:creator>
				<category><![CDATA[University Project]]></category>
		<category><![CDATA[Concurrency]]></category>
		<category><![CDATA[dissertation]]></category>
		<category><![CDATA[Distributed Computing]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[Research Question]]></category>

		<guid isPermaLink="false">http://hazelmckendrick.com/?p=1690</guid>
		<description><![CDATA[If you&#8217;re reading this in a feed reader you&#8217;ll need to click through &#8211; slides are embedded in the post. Today we were tasked with presenting our research topic to our lecturers and classmates. As you can see from the slides above, we were given only a short period of time, 3 minutes at most, [...]]]></description>
			<content:encoded><![CDATA[<p><center>
<div style="width:425px;text-align:left" id="__ss_2566333"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rqpres-091123110001-phpapp01&#038;rel=0&#038;stripped_title=research-question-presentation" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rqpres-091123110001-phpapp01&#038;rel=0&#038;stripped_title=research-question-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p></center><br />
<i>If you&#8217;re reading this in a feed reader you&#8217;ll need to click through &#8211; slides are embedded in the post.</i></p>
<p>Today we were tasked with presenting our research topic to our lecturers and classmates.  As you can see from the slides above, we were given only a short period of time, 3 minutes at most, to cover background information, our own solutions, and the significance of our work. <span id="more-1690"></span></p>
<h3>Since 3 of my slides comprised only images, here are some additional notes:</h3>
<p><b>Simulate characters in a virtual environment</b><br />
The simulation I will be considering and using to access my project is that of multiple autonomous characters navigating a virtual environment.  They might perform multiple trivial tasks or be processed in different ways so as to create a situation involving task parallelism rather than data parallelism.</p>
<p><b>Distribute processing work</b><br />
A central sever and database will be created, passing necessary data and information to other nodes.  Each node will be assigned a part of the virtual environment and the characters with to process.</p>
<p><b>Balance workload</b><br />
Rather than splitting virtual world space evenly between nodes, giving consideration to the spatial distribution of characters is an obvious improvement.  Although using a quadtree (or other appropriate data structure) would facilitate partitioning the space based on population, it would be necessary to consider and perhaps attempt to reduce the overhead involved in moving characters between servers.</p>
<h3>Following the presentation, I was asked two questions:</h3>
<p><b>Obviously at some stage the overhead involved in adding additional nodes will outweigh the benefits of the additional processing power gained, how will this be taken into account?</b><br />
Amdahl&#8217;s law can be used to determine the improvement expected from adding additional processors to a system and as such the theoretical maximum gain in performance, given the percentage of the program which must be processed in serial.  While work can be done to minimise the amount of work which cannot be parallellised, it certainly can&#8217;t be removed completely and given the networking component of the system it will always be a major consideration.<br />
Measured and theoretical results will be drawn upon in my dissertation to help reach conclusions about the success and future potential of the project.</p>
<p><b>Extensive processing of autonomous characters is a very different situation to the work required by a server for MMO games, how can this project relate to that?</b><br />
There are large differences between the situation I hope to simulate and a game server, not having to deal with hundreds of client connections for example, however I believe they can easily be related and intend to demonstrate this in my dissertation.  Most importantly the simulation involves processing a large volume of spatially distributed data, using multiple computers, subject to strict temporal constraints &#8211; very much in common with game related situations.</p>
]]></content:encoded>
			<wfw:commentRss>http://hazelmckendrick.com/journal/research-question-presentation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Experiments</title>
		<link>http://hazelmckendrick.com/journal/project-experiments</link>
		<comments>http://hazelmckendrick.com/journal/project-experiments#comments</comments>
		<pubDate>Tue, 27 Oct 2009 21:57:06 +0000</pubDate>
		<dc:creator>Hazel</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[University Project]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Concurrency]]></category>
		<category><![CDATA[dissertation]]></category>
		<category><![CDATA[threads]]></category>

		<guid isPermaLink="false">http://hazelmckendrick.com/?p=1623</guid>
		<description><![CDATA[I&#8217;ve made some progress in the past week with my honours projects, creating small experimental programs to familiarise myself with multi-threading in .NET. Thankfully so far I&#8217;ve found the syntax clear and consistent with the terms normally involved in parallel processing. Although this doesn&#8217;t simplify the task of designing the program it certainly avoids the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://hazelmckendrick.com/wp-content/uploads/2009/10/Untitled2.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2009/10/Untitled2-300x233.png" alt="Untitled2" title="Untitled2" width="300" height="233" class="alignright size-medium wp-image-1626" /></a>I&#8217;ve made some progress in the past week with my honours projects, creating small experimental programs to familiarise myself with multi-threading in .NET.  Thankfully so far I&#8217;ve found the syntax clear and consistent with the terms normally involved in parallel processing.  Although this doesn&#8217;t simplify the task of designing the program it certainly avoids the implementation overhead which has been inherent in my attempts with multi-threading in C++.</p>
<p>The programs I&#8217;ve been working on are in C#, though I&#8217;d be interested to try other .NET languages.  In each, I processed thousands of entities allowing each to rotate and bounce around a window.  Different methods of splitting up and dealing with this work in parallel were experimented with.  <span id="more-1623"></span></p>
<p>Rendering, which was performed separately and was responsible for a fair amount of overhead, could be simplified or rearranged to increase overall frame processing time.  However, as the graph below (from my first program created) shows there was a noticeable difference between using one and multiple threads.  I&#8217;m using a dual core CPU on my laptop, and with the application limited to a single core the gain was far less significant; I hope to see whether using a quad core CPU would offer a further gain in the near future.</p>
<p>Although not shown, using 32, 64 or even 1024 threads caused far less of a performance hit that I had expected.  The time spent creating the threads at the beginning of the program was notable, however, as was the increase in memory requirements.</p>
<p><a href="http://hazelmckendrick.com/wp-content/uploads/2009/10/graph.png"><img src="http://hazelmckendrick.com/wp-content/uploads/2009/10/graph.png" alt="graph" title="graph" width="645" height="427" class="aligncenter size-full wp-image-1627" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://hazelmckendrick.com/journal/project-experiments/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

