<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The STE||AR Group</title>
	
	<link>http://stellar.cct.lsu.edu</link>
	<description>Systems Technologies, Emergent Parallelism, and Algorithms Research</description>
	<lastBuildDate>Fri, 26 Apr 2013 22:43:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Stellar-ParalleX" /><feedburner:info uri="stellar-parallex" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>New Mailing Lists</title>
		<link>http://feedproxy.google.com/~r/Stellar-ParalleX/~3/KoDEwI8yG08/</link>
		<comments>http://stellar.cct.lsu.edu/2013/04/new-mailing-lists/#comments</comments>
		<pubDate>Tue, 09 Apr 2013 21:33:07 +0000</pubDate>
		<dc:creator>Hartmut Kaiser</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[HPX]]></category>

		<guid isPermaLink="false">http://stellar.cct.lsu.edu/?p=970</guid>
		<description><![CDATA[All of our HPX mailing lists will be migrated to new mailing addresses. These mailing lists are the heart of the HPX community. You may read the lists via full-content email, email digests, or via newsgroup reader. The hosting for &#8230; <a href="http://stellar.cct.lsu.edu/2013/04/new-mailing-lists/">Continue reading <span class="meta-nav">&#8594;</span></a><br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (1 vote cast)</div><br />]]></description>
				<content:encoded><![CDATA[<p>All of our HPX mailing lists will be migrated to new mailing addresses. These mailing lists are the heart of the HPX community. You may read the lists via full-content email, email digests, or via newsgroup reader.</p>
<p>The hosting for the mailing lists is donated by the <a href="http://www.cct.lsu.edu">Center of Computation and Technology at Louisiana State University</a>.</p>
<p>We created three new mailing lists:</p>
<h2>HPX Users Mailing List</h2>
<p>This list is oriented toward casual users of the HPX libraries. It is a good place to start if you are having trouble getting started with HPX. Feel free to post both &#8220;newbie&#8221; and more challenging questions. This list is relatively low volume. Subscribe or unsubscribe at the <a href="https://mail.cct.lsu.edu/mailman/listinfo/hpx-users">HPX Users list home page</a>. To post to the list send mail to<br />
<a href="mailto:hpx-users@stellar.cct.lsu.edu">hpx-users@stellar.cct.lsu.edu</a>. We will migrate all subscribers of the current GoPX mailing list to this new list.</p>
<h2>Main HPX Mailing List</h2>
<p>This is the main HPX mailing list. It has a higher volume, is very technical, and oriented toward HPX library developers. It is also read by many other members interested in watching the HPX library development process. Virtually all decisions, major or minor, technical or otherwise, are reached via public discussion on this mailing list. Subscribe or unsubscribe at the <a href="https://mail.cct.lsu.edu/mailman/listinfo/hpx-devel">HPX list home page</a>. To post to the list send mail to<br />
<a href="mailto:hpx-devel@stellar.cct.lsu.edu">hpx-devel@stellar.cct.lsu.edu</a>.</p>
<h2>HPX Github Commit Messages (read only)</h2>
<p>The <a href="https://mail.cct.lsu.edu/mailman/listinfo/hpx-commits">HPX Commits mailing</a> list receives messages about commits to the <a href="https://github.com/STEllAR-GROUP/hpx">HPX Github repository</a>. All current subscribers of the px-commit mailing list will be migrated to this new list.</p>
<br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (1 vote cast)</div><br /><img src="http://feeds.feedburner.com/~r/Stellar-ParalleX/~4/KoDEwI8yG08" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://stellar.cct.lsu.edu/2013/04/new-mailing-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://stellar.cct.lsu.edu/2013/04/new-mailing-lists/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=new-mailing-lists</feedburner:origLink></item>
		<item>
		<title>Developing HPX with Git: A Tutorial</title>
		<link>http://feedproxy.google.com/~r/Stellar-ParalleX/~3/Fl2HhgmrGXo/</link>
		<comments>http://stellar.cct.lsu.edu/2013/03/developing-hpx-with-git-a-tutorial/#comments</comments>
		<pubDate>Mon, 25 Mar 2013 20:18:29 +0000</pubDate>
		<dc:creator>Shuangyang Yang</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tutuorial]]></category>

		<guid isPermaLink="false">http://stellar.cct.lsu.edu/?p=944</guid>
		<description><![CDATA[EDIT: Heller pointed out that &#8220;newer subversion versions come with a single .svn directory in the top level directory; the single .git is not the reason why you can have multiple local branches&#8221;. And along with his advise to use &#8230; <a href="http://stellar.cct.lsu.edu/2013/03/developing-hpx-with-git-a-tutorial/">Continue reading <span class="meta-nav">&#8594;</span></a><br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></description>
				<content:encoded><![CDATA[<div><strong>EDIT:</strong> Heller pointed out that <em>&#8220;newer subversion versions come with a single .svn directory in the top level directory; the single .git is not the reason why you can have multiple local branches&#8221;</em>. And along with his advise to use Git over SSH instead of HTTPS and to deploy the public key with github.com.</div>
<div><strong>EDIT2</strong>: revise the &#8220;feature change&#8221; section and improve workflow.</div>
<p>&nbsp;</p>
<div>The HPX code base has moved from SVN to Git at <a href="http://github.com/">github.com</a>. This post is meant to serve as a tutorial to help with the transition.</div>
<div></div>
<div>
<h1>SVN vs. Git – the Repo Conceptual Difference</h1>
<p>From <a href="http://git-scm.com/">git-scm.com</a>:</p>
<blockquote><p>Git is a <a href="http://git-scm.com/about/free-and-open-source">free and open source</a> distributed version control system designed to handle everything from small to very large projects with speed and efficiency.</p></blockquote>
<p>The distributed nature is reflected in the differences of repo models. As summarized by <a href="http://olemortenamundsen.wordpress.com/2009/09/02/a-basic-git-guide-for-the-svn-user/">Ole Morten Amundsen</a>, with a few edits:</p>
<p><span id="more-944"></span><br />
<strong>Subversion:</strong> 2 levels:</p>
<ul>
<li><strong>local</strong> checkout  – Files on your computer, in the file system ( <em>svn checkout https://svn.xx.yy/projectxyz</em>)</li>
<li><strong>server</strong>, the central subversion repo – The server which every user checks in to (<em>svn commit</em>) and checks out from (<em>svn up</em>)</li>
</ul>
<p><strong>Git:</strong> 3+ levels:</p>
<ul>
<li><strong>local</strong> file system of a clone (<em>git clone git@github.com:oma/projectxyz </em>as checkout in svn). As above, yet different… Must be seen in context of the <em>local index</em>, below.</li>
<li><strong>local index</strong> of a checkout (clone) in the same file system. <strong>This is similar to server above. </strong>You mess around with the local files as always (level 1), then you <em>commit to the local index</em> (git commit -a -m “msg”).  The git repo server is still unchanged. Then make more changes and commit and so on. Any commits you make, are written to the index, stored in the directory <em>.git</em>, locally. <del>Unlike subversion, which creates a .svn directory within each director, git has only one .git directory. This enables you to create multiple branches in the same directory in the file system! It deletes and adds files automatically when switching.</del> OK, make as many commits you want locally. When satisfied, push them all to the server. Read on below.</li>
<li><strong>server</strong>, the central git repo (or one of the many!). When you’re satisfied with your local changes and committed them locally (git commit) then you perform a <em>git push </em>which pushes the changes to the repo you cloned from). To get changes from this repo/server, you perform <em>git pull</em>.</li>
<li>the “4th” level is the git server repo of each developer, which your server need to <em>pull </em>from and vica versa.</li>
</ul>
</div>
<div>
<h1>Install Git and Get HPX</h1>
<p>Install Git clients for your platform. <a href="http://github.com/">github.com</a> has Win and Mac clients. Linux should have Git package in the standard distributions, check <a href="http://git-scm.com/download/linux">here</a>. After Git is installed, it is beneficial to setup the username and email, which will be marked on your commits.</p>
<pre>$ git config --global user.name "Ste||ar" <span style="color: #888888;"><code># set up username</code></span>
$ git config --global user.name <span style="color: #888888;"><code># verify username</code></span>

$ git config --global user.email "stellar@cct.lsu.edu" 
  <span style="color: #888888;"><code># set up email</code></span>
$ git config --global user.email <span style="color: #888888;"><code># verify email</code></span></pre>
<p>To get HPX, run the following commands in your working directory.</p>
<pre><del><code>$ git clone https://github.com/STEllAR-GROUP/hpx.git
</code></del>
$ git clone git@github.com:STEllAR-GROUP/hpx <span style="color: #888888;"><code># over ssh instead of https
  # check <a href="https://help.github.com/articles/generating-ssh-keys#platform-linux">github:help</a> on generating SSH keys</code></span></pre>
<p>Then a copy of the HPX code base will reside under the folder <code>hpx/</code>. Whenever someone has made commits on the server repo, the changes can be <em>pulled</em> to the local repo.</p>
<pre>$ cd hpx/  <span style="color: #888888;"><code># hpx/ contains the .git folder</code></span>
$ git pull <span style="color: #888888;"><code># update local repo</code></span></pre>
<p>To check the status of the working directory, type</p>
<pre>$ git status</pre>
<p>Then it says <code>'On branch master'</code>. It is the default branch name. Also the remote server repo has a name <em>origin</em>. In other literature, the remote server repo may be called <em>upstream</em> repo. In the following context, <em>server repo</em> is used most of the time.</p>
</div>
<div>
<h1>Simple Changes: Single-Branch Workflow</h1>
<p>If only simple changes are made and does not deserve a branch, these changes can be made to the working directory and <em>committed</em> to the local repo and then <em>pushed</em> to the server repo. As an example,</p>
<pre>$ vi README.rst <span style="color: #888888;"><code># did some changes</code></span>
$ git status <span style="color: #888888;"><code># will show modified file</code></span>
$ git commit -a -m "changes on README.rst" <span style="color: #888888;"><code># commit to local repo</code></span>
$ git status <span style="color: #888888;"><code># will show 'nothing to commit'</code></span></pre>
<p>Rest assured, all things done so far only happen in the local repo. The server is not aware of any of these. Then finally after some more changes and commits, it is ready for submission.</p>
<pre>$ git push <span style="color: #888888;"><code># push to server repo</code></span></pre>
<p>If nobody <em>pushed</em> new commits while you are editing, it will go smoothly providing the github.com username and password are correct. Otherwise, a big error shows and indicates that <code>"Maybe you are not up-to-date and need to pull first?"</code>. Here comes the trick, it is preferable to user the following command</p>
<pre>$ git pull --rebase  <span style="color: #888888;"><code># instead of just 'git pull' for clean commits</code></span>
$ git push  <span style="color: #888888;"><code># should make it if no conflict occurs</code></span></pre>
<p>To explain the reasons, first of all, Git is distributed and local repo contains all histories. The local repo can be seen as a <em>branch</em> of the server repo, and <code>'git pull'</code> is about merging them. It will create on the <em>local</em> repo, a new commits indicating</p>
<pre>Merge branch 'master' of https://github.com/STEllAR-GROUP/hpx,</pre>
<p>which contains all the <em>pushes</em> made by others after your last <em>pull</em>. It is nothing wrong, totally standard for a merge. However, it is just a little bit clumsy on the <em>server</em> repo after the <em>push</em>. Because after the push, the <code>'merge'</code> commit is actually empty since the server repo already has these changes before your push. It is still harmless, but annoying when many empty <code>'merge'</code> commits show up.</p>
<p>On the other end, when using <code style="font-style: inherit;">'--rebase'</code>, it is acting like these two&#8211;local and server&#8211;were one branch, like in SVN. Git does three things,</p>
<ol>
<li>Un-commits all of your local commits that are not already in server repo.</li>
<li>Stuffs the new commits from the server repo onto the stack</li>
<li>Plays your changes back on top of them</li>
</ol>
<p>You no longer merge&#8211;you actually commit on top of the server repo. This will result in a cleaner commit history on both local and server repos. This is also where the name comes from, single-branch workflow. This <a href="http://gitready.com/intermediate/2009/01/31/intro-to-rebase.html">post</a> has a graphical comparison of <em>pull vs. rebase</em>.</p>
</div>
<div>
<h1>Feature Changes: Two-Branches Workflow</h1>
<p>If adding a new feature or involving a complicate task, it is encouraged to create a branch and merge/rebase back to the <em>master</em> branch, the default name of the main branch. The name, <em>two-branches workflow</em> means to create a new branch asides the <em>master</em> branch. Git keeps the whole commit history locally, thus creating a branch is very cheap. Let&#8217;s create a branch <em>&#8216;newfeature&#8217;</em> as an example.</p>
<pre>$ git checkout -b newfeature  <span style="color: #888888;"><code># new branch</code></span>
Switched to a new branch "newfeature"

[.. changed some files, made a few commits ..]</pre>
<p>During the development, if there are commits on <em>master</em> and need to be merged to the <em>newfeature</em>, the following command can be issued while on <em>newfeature</em> branch.</p>
<pre>git rebase -i master
   <span style="color: #888888;"><code># bring the branch up-to-date with master
   # check <a href="https://help.github.com/articles/interactive-rebase">Interactive rebase</a> for more information
   # will put branch changes on top of master</code></span></pre>
<p>If conflicts are found while attempting to play back your changes, it throws you into an unnamed branch and gives you a chance to merge everything together. <a href="http://genomewiki.ucsc.edu/index.php/Resolving_merge_conflicts_in_Git">One article about resolving merge conflicts</a> might help. After correcting the conflict(s) you would type</p>
<pre>$ git rebase --continue</pre>
<p>as directed by the conflict message.</p>
<p>Probably you want to share these changes with colleagues for code review. One way is to push the branch to the server repo.</p>
<pre>$ git push -u origin newfeature 
  <span style="color: #888888;"><code># push branch to the server repo
  # -u tells git that you want to be able to easily 
  # push and pull changes to that branch in the future</code></span></pre>
<p>Afterwards, a colleague can get the branch with</p>
<pre>$ git fetch origin 
  <span style="color: #888888;"><code># update local repo with changes from server repo</code></span>
$ git checkout --track origin/newfeature
  <span style="color: #888888;"><code># creates a local branch named newfeature that 
  # matches the origin/newfeature branch 
  # and tells git that he wants to be able to 
  # easily push and pull from the branch</code></span></pre>
<p>After the code review is done, it is time to rebase/merge into the <em>master</em> branch. Here <em>rebase</em> is preferred with the same reason mentioned in the previous section.</p>
<pre>$ git rebase -i master
   <span style="color: #888888;"><code># first bring the branch up-to-date with master</code></span>

$ git checkout master 
Switched to branch "master"

$ git rebase -i newfeature 
   <span style="color: #888888;"><code># interactively put newfeature commits on top of master</code></span></pre>
<p>Thus the changes of <em>newfeature</em> have successfully merged to <em>master</em>, nice and clean.</p>
<p>Finally the <em>newfeature</em> branch can be thrown away and the commits <em>pushed</em> to server repo.</p>
<pre>$ git branch -d newfeature <span style="color: #888888;"><code># delete locally</code></span>
$ git push origin :newfeature <span style="color: #888888;"><code># delete on server repo, mind the ":"</code></span>

$ git push <span style="color: #888888;"><code># merge with server repo</code></span></pre>
<p>This completes a two-branch workflow.</p>
<p>One thing to mention, although <em>rebase</em> keeps things tidy, it could be destructive and potentially dangerous if you don’t know what you are doing. Details can be found in the <a href="http://git-scm.com/docs/git-rebase">git-rebase manual page</a>. <a href="http://www.jarrodspillers.com/2009/08/19/git-merge-vs-git-rebase-avoiding-rebase-hell/">Jarrod Spillers</a> proposes a simple rule.</p>
<blockquote><p><strong>Don’t rebase branches you have shared with another developer.</strong></p></blockquote>
<p>It is always good to ask around if uncertain.</p>
</div>
<div>
<h1>Acknowledgment</h1>
<p>This post is not possible without the kind discussion with <em>falcou</em>@<code>#ste||ar</code> IRC channel. For more information, check the <a href="http://git-scm.com/book"><cite>Pro Git</cite></a> book and other good sources. Happy Gitting.</p>
</div>
<br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br /><img src="http://feeds.feedburner.com/~r/Stellar-ParalleX/~4/Fl2HhgmrGXo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://stellar.cct.lsu.edu/2013/03/developing-hpx-with-git-a-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://stellar.cct.lsu.edu/2013/03/developing-hpx-with-git-a-tutorial/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=developing-hpx-with-git-a-tutorial</feedburner:origLink></item>
		<item>
		<title>A Scalable Backend for True MMORPGs – HPX at GTC</title>
		<link>http://feedproxy.google.com/~r/Stellar-ParalleX/~3/KxIOPut8KBo/</link>
		<comments>http://stellar.cct.lsu.edu/2013/03/a-scalable-backend-for-true-mmorpgs-hpx-at-gtc/#comments</comments>
		<pubDate>Tue, 19 Mar 2013 09:38:03 +0000</pubDate>
		<dc:creator>Thomas Heller</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://stellar.cct.lsu.edu/?p=934</guid>
		<description><![CDATA[Currently the GPU Technology conference is ongoing. Together with the HPX Backend for LibGeoDecomp Andreas Schäfer submitted a poster about a scalable MMORPG design which eventually will use HPX to make it scale. The title of the poster is A &#8230; <a href="http://stellar.cct.lsu.edu/2013/03/a-scalable-backend-for-true-mmorpgs-hpx-at-gtc/">Continue reading <span class="meta-nav">&#8594;</span></a><br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></description>
				<content:encoded><![CDATA[<p>Currently the GPU Technology conference is ongoing. Together with the HPX Backend for <a href="http://www.libgeodecomp.org" alt="LibGeoDecomp">LibGeoDecomp</a> Andreas Schäfer submitted a poster about a scalable MMORPG design which eventually will use HPX to make it scale. The title of the poster is <a href="http://on-demand.gputechconf.com/gtc/2013/poster/pdf/P0234_AndreasSchaefer.pdf" alt="A Scalable Backend for True MMORPGs">A Scalable Backend for True MMORPGs</a>.</p>
<p>Also, don&#8217;t miss Andreas&#8217; talk <a href="http://registration.gputechconf.com/quicklink/hPepwHY" alt="S3299 - From Notebooks to Supercomputers: Tap the Full Potential of Your CUDA Resources with LibGeoDecomp">S3299 &#8211; From Notebooks to Supercomputers: Tap the Full Potential of Your CUDA Resources with LibGeoDecomp</a>   on thursday in room 211A form 16:00 to 16:25 if you happen to attend the conference.</p>
<br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br /><img src="http://feeds.feedburner.com/~r/Stellar-ParalleX/~4/KxIOPut8KBo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://stellar.cct.lsu.edu/2013/03/a-scalable-backend-for-true-mmorpgs-hpx-at-gtc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://stellar.cct.lsu.edu/2013/03/a-scalable-backend-for-true-mmorpgs-hpx-at-gtc/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=a-scalable-backend-for-true-mmorpgs-hpx-at-gtc</feedburner:origLink></item>
		<item>
		<title>Solving Combination Puzzles – An example HPX application – Part 1</title>
		<link>http://feedproxy.google.com/~r/Stellar-ParalleX/~3/VN3o772zIjw/</link>
		<comments>http://stellar.cct.lsu.edu/2013/02/solving-combination-puzzles-an-example-hpx-application-part-1/#comments</comments>
		<pubDate>Thu, 07 Feb 2013 19:19:10 +0000</pubDate>
		<dc:creator>Thomas Heller</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Tutuorial]]></category>

		<guid isPermaLink="false">http://stellar.cct.lsu.edu/?p=877</guid>
		<description><![CDATA[HPX is great for developing applications that run both in a shared memory and distributed memory environment. This is accomplished by leveraging the Active Global Address Space (AGAS). By creating components in AGAS we gain the ability to seamlessly write &#8230; <a href="http://stellar.cct.lsu.edu/2013/02/solving-combination-puzzles-an-example-hpx-application-part-1/">Continue reading <span class="meta-nav">&#8594;</span></a><br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></description>
				<content:encoded><![CDATA[<p>HPX is great for developing applications that run both in a shared memory and distributed memory environment. This is accomplished by leveraging the Active Global Address Space (AGAS). By creating components in AGAS we gain the ability to seamlessly write parallel object oriented applications without the need to manually care about passing messages to different localities of explicitly creating threads. While this idea sounds great it is difficult to think about an implementation which achieves exactly that. As such this blog post is trying to walk you through the development of a recursive back tracking brute force solver for <a href="http://en.wikipedia.org/wiki/Combination_puzzles">combination puzzles</a> and you will discover that recursion allows us in general to exploit parallelism.</p>
<p>This is the first post in a series. This article series will walk you through the complete lifecycle of an HPX application. From the first basic idea, which is covered in this post to a full fledged HPX application exploiting the unique features of HPX to write programs with a unified semantic for local and possibly remote access to objects. The idea to develop such an application was given by <a href="http://www.libgeodecomp.org">Andreas Schäfer</a> who challenged me to beat his MPI implementation. We&#8217;ll see how we fared in the last post of this series.</p>
<p><span id="more-877"></span></p>
<h1>The basic idea and algorithm</h1>
<p>Solving combination puzzles can be done a variety of ways. In order to demonstrate some functionalities of HPX we decided to implement a naive recursive back tracking algorithm which essentially does a depth search over all possible moves for a puzzle and terminates whenever a solution was found, or the maximum search depth of the recursion was reached and no solution was found. The basic algorithm therefore reads as follows:</p>
<pre class="brush: cpp; title: ; notranslate">
template
bool solve(Puzzle const &amp; p, std::size_t depth)
{
    if(p.is_solution()) return true;
    if(max_depth == depth) return false;

    std::vector next_moves = p.next_moves();
    for(Puzzle const &amp; next : next_moves)
    {
        if(solve(next, depth+1))
        {
            return true;
        }
    }
    return false;
}
</pre>
<p>What <span style="font-family: Courier New;">p.next_moves()</span> is supposed to do is probably best shown with a picture:</p>
<div id="attachment_891" class="wp-caption aligncenter" style="width: 963px"><img class="size-full wp-image-981" title="The next moves of an example 15 puzzle configuration." alt="The next moves of an example 15 puzzle configuration." src="http://stellar.cct.lsu.edu/wp-content/uploads/2013/02/15_puzzle.png" width="953" height="483" /><p class="wp-caption-text">The next moves of an example 15 puzzle configuration.</p></div>
<p>The image shows the possible next moves for the <a href="http://en.wikipedia.org/wiki/15_puzzle">15 puzzle</a> which is an example puzzle from the category of combination puzzles.</p>
<h1>Recursion is parallelism!</h1>
<p>So far so good. Sounds easy enough! But where is the parallelism you might ask. The answer is: <strong>Recursion is parallelism!</strong><br />
Let me prove that statement by presenting the following code:</p>
<pre class="brush: cpp; title: ; notranslate">

template
bool solve(Puzzle const &amp; p, std::size_t depth)
{
    if(p.is_solution()) return true;
    if(max_depth == depth) return false;

    std::vector next_moves = p.next_moves();

    std::vector solve_futures;
    solve_futures.reserve(next_moves.size());
    for(Puzzle const &amp; next : next_moves)
    {
        bool (*solve_fun)(Puzzle const &amp;, std::size_t) = solve;
        solve_futures.push_back(
            hpx::async(
                hpx::util::bind(
                    solve_fun
                  , next
                  , depth+1
                )
            )
        );
    }

    while(!solve_futures.empty())
    {
        hpx::util::tuple&lt;int, hpx::future &gt;
            wait_result = hpx::wait_any(solve_futures);

        std::size_t idx = hpx::util::get(wait_result);
        std::size_t res = hpx::util::get(wait_result).get();

        solve_futures.erase(solve_futures.begin() + idx);
        if(res)
        {
            if(!solve_futures.empty())
            {
                hpx::wait(solve_futures);
            }
            return true;
        }
    }

    return false;
}
</pre>
<p>Alright. That was too much. The simple and basic recursion just grew almost three times in size! However, the gain is massive.<br />
Let me walk you through the various parts that changed:</p>
<ol>
<li><em>Line 13 to 22:</em><br />
Instead of calling the function directly, we just issue an call to async. This will have the effect that a new thread invoking our recursion will get scheduled eventually. We push the result of the async call, which is a future, into a vector. A future is a object representing a value that will be computed eventually. A future can have various representations. In our case, the future is represented by a result of a asynchronously spawned function.</li>
<li><em>Line 25 to 42:</em><br />
This is the new meat of our logic. Instead of getting the results back sequentially, we will get results of completed recursions in any order. As such we wait on any of the futures (Line 19). As a result we get a tuple containing the index to the future in our vector, and the actual future that was completed. We erase that future from our vector since we know it was completed (Line 24). If the result of this function was &#8220;true&#8221;, we can bail out, wait on any remaining function invocations and return true. Otherwise, if all futures returned with a result of &#8220;false&#8221;, this specific function invocation was not successful in finding a solution.</li>
</ol>
<p>A full and working example demonstrating this solver can be found <a href="https://gist.github.com/sithhell/4731009">here</a>. You can compile it by following the instructions given in the <a href="http://stellar.cct.lsu.edu/files/hpx_0.9.5/html/hpx/manual/cmake/unix_apps_pkg_config.html">HPX documentation</a>.</p>
<p>We made it! We turned the inherently sequential execution into a fully parallel version! This version has several problems. The first problem is that it only works on one single locality (locality is the HPX term for node). That is, no distributed computing yet. This will be covered in part two. However, we are already able to exploit the full power of multi-core CPUs.<br />
Another problem is that this algorithm as is, searches every possible branch for a solution, which is not exactly what we want. We&#8217;d like to stop the recursion if any other thread has already found a solution. This will be discussed in the third part.</p>
<br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br /><img src="http://feeds.feedburner.com/~r/Stellar-ParalleX/~4/VN3o772zIjw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://stellar.cct.lsu.edu/2013/02/solving-combination-puzzles-an-example-hpx-application-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://stellar.cct.lsu.edu/2013/02/solving-combination-puzzles-an-example-hpx-application-part-1/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=solving-combination-puzzles-an-example-hpx-application-part-1</feedburner:origLink></item>
		<item>
		<title>HPX V0.9.5 Released</title>
		<link>http://feedproxy.google.com/~r/Stellar-ParalleX/~3/oCUCg0jOktQ/</link>
		<comments>http://stellar.cct.lsu.edu/2013/01/hpx-v0-9-5-released/#comments</comments>
		<pubDate>Thu, 17 Jan 2013 01:09:52 +0000</pubDate>
		<dc:creator>Hartmut Kaiser</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://stellar.cct.lsu.edu/?p=833</guid>
		<description><![CDATA[The STE&#124;&#124;AR Group is proud to announce the fifth formal release of HPX (V0.9.5). This release has been made possible by the hard, dedicated, and diligent work of everybody involved. This is the actual release we provide after the release &#8230; <a href="http://stellar.cct.lsu.edu/2013/01/hpx-v0-9-5-released/">Continue reading <span class="meta-nav">&#8594;</span></a><br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (3 votes cast)</div><br />]]></description>
				<content:encoded><![CDATA[<p>The STE||AR Group is proud to announce the fifth formal release of HPX (V0.9.5). This release has been made possible by the hard, dedicated, and diligent work of everybody involved. This is the actual release we provide after the release candidate we published last December. Please report any issues you encounter through our <a href="http://github.com/STEllAR-GROUP/hpx/issues" target="_blank">issue tracker</a>. <span id="more-833"></span>HPX (High Performance ParalleX) is a general C++ runtime system for parallel and distributed applications of any scale. It is the first freely available, open source, feature-complete, modular, and performance oriented implementation of the ParalleX execution model. HPX is targeted at conventional architectures and, currently, Linux based systems, such as SMP nodes and conventional clusters. We invite everybody interested to participate in the discussions and the development of this rapidly evolving project.</p>
<h2>Why is HPX is so special?</h2>
<ul>
<li>HPX exposes an uniform, standards-oriented API for ease of programming parallel and distributed applications.</li>
<li>It enables programmers to write fully asynchronous  code using hundreds of millions of threads.</li>
<li>HPX provides unified syntax and semantics for local and remote operations.</li>
<li>HPX makes concurrency manageable with dataflow and future based synchronization.</li>
<li>It implements a rich set of runtime services supporting a broad range of use cases.</li>
<li>It is designed to solve problems conventionally considered to be scaling-impaired.</li>
<li>HPX has been designed and developed for systems of any scale, from hand-held devices to very large scale systems.</li>
</ul>
<p>We are very pleased with this release as it is continuing along the lines of code and API consolidation, and overall usability improvements. We dedicated much attention to performance and we were able to significantly speed up the threading and networking subsystems. Please see here for a list of changes and new features.</p>
<p>You can download the release files from the <a href="http://stellar.cct.lsu.edu/downloads/">downloads</a> page or directly from <a href="https://github.com/STEllAR-GROUP/hpx">Github</a>. The release notes can be found <a href="http://stellar.cct.lsu.edu/downloads/hpx-v0-9-5-release-notes/">here</a>. Please feel free to try the examples and let us know what you think. The best way to get in contact with us is to leave a comment on this page or to send a mail to <a href="mailto:gopx@cct.lsu.edu">gopx@cct.lsu.edu</a>.</p>
<br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (3 votes cast)</div><br /><img src="http://feeds.feedburner.com/~r/Stellar-ParalleX/~4/oCUCg0jOktQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://stellar.cct.lsu.edu/2013/01/hpx-v0-9-5-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://stellar.cct.lsu.edu/2013/01/hpx-v0-9-5-released/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=hpx-v0-9-5-released</feedburner:origLink></item>
		<item>
		<title>Clang and OSX support</title>
		<link>http://feedproxy.google.com/~r/Stellar-ParalleX/~3/TYqHmfspYGM/</link>
		<comments>http://stellar.cct.lsu.edu/2013/01/clang-and-osx-support/#comments</comments>
		<pubDate>Mon, 07 Jan 2013 07:03:32 +0000</pubDate>
		<dc:creator>Thomas Heller</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://stellar.cct.lsu.edu/?p=800</guid>
		<description><![CDATA[Thanks to Pyry Jahkola (pyrtsa) we start the new year with an exciting new platform support. He submitted a bunch of patches (see his pull request) that allows us to build HPX on OSX with clang! So far he was &#8230; <a href="http://stellar.cct.lsu.edu/2013/01/clang-and-osx-support/">Continue reading <span class="meta-nav">&#8594;</span></a><br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (2 votes cast)</div><br />]]></description>
				<content:encoded><![CDATA[<p>Thanks to Pyry Jahkola (pyrtsa) we start the new year with an exciting new platform support. He submitted a bunch of patches (see his <a href="https://github.com/STEllAR-GROUP/hpx/pull/653">pull request</a>) that allows us to build HPX on OSX with clang! So far he was able to build with a vanilla version of clang. The tests and examples run just fine.<br />
<span id="more-800"></span><br />
This pull request highlights once again that we can keep our promise to deliver wide platform support. As with the Android support reported last year (<a href="http://stellar.cct.lsu.edu/2012/10/hpx-on-android">HPX on Android</a>), the changes to the core of HPX are very minimal and mostly address some deficiencies of the platforms compiler.<br />
Additionally, the support of Clang outlines our commitment to standard C++ and enables a new variety of different static code analysis to further improve our code base. Once again, thanks pyrtsa!</p>
<p>P.S.: A happy and successful year to everyone!</p>
<br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=5.0" /></div><div>Rating: 5.0/<strong>5</strong> (2 votes cast)</div><br /><img src="http://feeds.feedburner.com/~r/Stellar-ParalleX/~4/TYqHmfspYGM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://stellar.cct.lsu.edu/2013/01/clang-and-osx-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://stellar.cct.lsu.edu/2013/01/clang-and-osx-support/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=clang-and-osx-support</feedburner:origLink></item>
		<item>
		<title>HPX at MeetingC++ 2012</title>
		<link>http://feedproxy.google.com/~r/Stellar-ParalleX/~3/jUJ8QA9XfBo/</link>
		<comments>http://stellar.cct.lsu.edu/2012/12/hpx-at-meetingc-2012/#comments</comments>
		<pubDate>Mon, 31 Dec 2012 16:11:44 +0000</pubDate>
		<dc:creator>Thomas Heller</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://stellar.cct.lsu.edu/?p=795</guid>
		<description><![CDATA[Even though the Meeting C++ 2012 Conference happened almost two months ago now. I would still like to point out to this great conference. It was a great success, not only for HPX, but also the conference made a great &#8230; <a href="http://stellar.cct.lsu.edu/2012/12/hpx-at-meetingc-2012/">Continue reading <span class="meta-nav">&#8594;</span></a><br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br />]]></description>
				<content:encoded><![CDATA[<p>Even though the <a title="Meeting C++" href="http://www.meetingcpp.com" target="_blank">Meeting C++ 2012</a> Conference happened almost two months ago now. I would still like to point out to this great conference. It was a great success, not only for HPX, but also the conference made a great debut. HPX was represented with one talk! <span id="more-795"></span></p>
<blockquote><p>
This talk will demonstrate the novel HPX runtime system and will talk about how current and future versions of C++ will benefit from the new ways of parallelism exposed by these approaches.</p>
<p>The HPX runtime system is a modular, feature-complete, and performance-oriented representation of the ParalleX execution model targeted at conventional parallel computing architectures such as SMP nodes and commodity clusters. As an alternative to MPI, HPX incorporates routines to manage lightweight user-threads in addition to providing an Active Global Address Space (AGAS). HPX is implemented in C++11 and utilizes over 20 Boost and candidate Boost libraries.
</p></blockquote>
<p>Links to videos and slides are available <a title="HPX -- A unifying Parallel Runtime System written in C++" href="http://meetingcpp.com/index.php/talkview/items/4.html" target="_blank">here</a></p>
<p>The audio is not the best quality. Enjoy!</p>
<br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=0.0" /></div><div>Rating: 0.0/<strong>5</strong> (0 votes cast)</div><br /><img src="http://feeds.feedburner.com/~r/Stellar-ParalleX/~4/jUJ8QA9XfBo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://stellar.cct.lsu.edu/2012/12/hpx-at-meetingc-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://stellar.cct.lsu.edu/2012/12/hpx-at-meetingc-2012/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=hpx-at-meetingc-2012</feedburner:origLink></item>
		<item>
		<title>HPX V0.9.5 (RC1) Released</title>
		<link>http://feedproxy.google.com/~r/Stellar-ParalleX/~3/n8BVHZgJzPg/</link>
		<comments>http://stellar.cct.lsu.edu/2012/12/hpx-v0-9-5-rc1-released/#comments</comments>
		<pubDate>Mon, 17 Dec 2012 19:26:01 +0000</pubDate>
		<dc:creator>Hartmut Kaiser</dc:creator>
				<category><![CDATA[Release]]></category>
		<category><![CDATA[HPX]]></category>

		<guid isPermaLink="false">http://stellar.cct.lsu.edu/?p=765</guid>
		<description><![CDATA[We are proud to announce the fifth formal release of HPX (V0.9.5). This release has been made possible by the hard, dedicated, and diligent work of everybody involved. This is a release candidate (RC1) for the actual release which is &#8230; <a href="http://stellar.cct.lsu.edu/2012/12/hpx-v0-9-5-rc1-released/">Continue reading <span class="meta-nav">&#8594;</span></a><br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=4.7" /></div><div>Rating: 4.7/<strong>5</strong> (3 votes cast)</div><br />]]></description>
				<content:encoded><![CDATA[<p>We are proud to announce the fifth formal release of HPX (V0.9.5). This release has been made possible by the hard, dedicated, and diligent work of everybody involved. This is a release candidate (RC1) for the actual release which is planned for mid January 2013. Please report any issues you encounter through our <a href="http://github.com/STEllAR-GROUP/hpx/issues" target="_blank">issue tracker</a>.<br />
<span id="more-765"></span><br />
HPX (High Performance ParalleX) is a general C++ runtime system for parallel and distributed applications of any scale. It is the first freely available, open source, feature-complete, modular, and performance oriented implementation of the ParalleX execution model. HPX is targeted at conventional architectures and, currently, Linux based systems, such as SMP nodes and conventional clusters. We invite everybody interested to participate in the discussions and the development of this rapidly evolving project.  </p>
<h2>Why is HPX is so special?</h2>
<ul>
<li>HPX exposes an uniform, standards-oriented API for ease of programming parallel and distributed applications.</li>
<li>It enables programmers to write fully asynchronous&nbsp; code using hundreds of millions of threads.</li>
<li>HPX provides unified syntax and semantics for local and remote operations.</li>
<li>HPX makes concurrency manageable with dataflow and future based synchronization.</li>
<li>It implements a rich set of runtime services supporting a broad range of use cases.</li>
<li>It is designed to solve problems conventionally considered to be scaling-impaired.</li>
<li>HPX has been designed and developed for systems of any scale, from hand-held devices to very large scale systems.</li>
</ul>
<p>We are very pleased with this release as it is continuing along the lines of code and API consolidation, and overall usability improvements. We dedicated much attention to performance and we were able to significantly speed up the threading and networking subsystems. Please see here for a list of changes and new features.</p>
<p>You can download the release files from the <a href="http://stellar.cct.lsu.edu/downloads/">downloads</a> page. The release notes can be found <a href="http://stellar.cct.lsu.edu/downloads/hpx-v0-9-5-release-notes/">here</a>. Please feel free to try the examples and let us know what you think. The best way to get in contact with us is to leave a comment on this page or to send a mail to <a href="mailto:gopx@cct.lsu.edu">gopx@cct.lsu.edu</a>.</p>
<br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=4.7" /></div><div>Rating: 4.7/<strong>5</strong> (3 votes cast)</div><br /><img src="http://feeds.feedburner.com/~r/Stellar-ParalleX/~4/n8BVHZgJzPg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://stellar.cct.lsu.edu/2012/12/hpx-v0-9-5-rc1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://stellar.cct.lsu.edu/2012/12/hpx-v0-9-5-rc1-released/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=hpx-v0-9-5-rc1-released</feedburner:origLink></item>
		<item>
		<title>SC12 Demo: Highly Parallel Interactive Image Flow</title>
		<link>http://feedproxy.google.com/~r/Stellar-ParalleX/~3/6hfLOhJh3-M/</link>
		<comments>http://stellar.cct.lsu.edu/2012/11/sc12-demo-highly-parallel-interactive-image-flow/#comments</comments>
		<pubDate>Sun, 18 Nov 2012 16:29:50 +0000</pubDate>
		<dc:creator>Thomas Heller</dc:creator>
				<category><![CDATA[Demos]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[SC12]]></category>
		<category><![CDATA[HPX]]></category>
		<category><![CDATA[ParalleX]]></category>

		<guid isPermaLink="false">http://stellar.cct.lsu.edu/?p=751</guid>
		<description><![CDATA[The Highly Parallel Interactive Image Flow Application (HPIIF) is an interactive visualization built with HPX and  LibGeoDecomp in close collaboration with the Chair for Computer Architecture at the Friedrich-Alexander University in Erlangen (Germany). Based on an N-Body algorithm, we show a visualization &#8230; <a href="http://stellar.cct.lsu.edu/2012/11/sc12-demo-highly-parallel-interactive-image-flow/">Continue reading <span class="meta-nav">&#8594;</span></a><br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=4.7" /></div><div>Rating: 4.7/<strong>5</strong> (3 votes cast)</div><br />]]></description>
				<content:encoded><![CDATA[<p>The Highly Parallel Interactive Image Flow Application (HPIIF) is an interactive visualization built with HPX and  <a title="LibGeoDecomp" href="http://libgeodecomp.org" target="_blank">LibGeoDecomp</a> in close collaboration with the <a href="http://www3.cs.fau.de" target="_blank">Chair for Computer Architecture at the Friedrich-Alexander University in Erlangen (Germany)</a>.</p>
<p><span id="more-751"></span></p>
<p>Based on an N-Body algorithm, we show a visualization of particles interacting in an otherwise static image. The user is able to interact with the image through a high-definition camera and an Android-based tablet. In addition to the visualization, one can introspect the different performance characteristics through HPX&#8217;s performance counter framework. LibGeoDecomp is a generic library for stencil-based simulations. Users program against a common API, while the library leverages a number of optimized components to parallelize the simulation and adapt it to the system. Together with the new HPX backend, this demo showcases automatic load-balancing and dynamic removal/addition of hardware resources.</p>
<p><img class="alignnone" title="HPIIF Animated GIF" src="http://www.libgeodecomp.org/images/starry_night.gif" alt="" width="500" height="250" /></p>
<br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=4.7" /></div><div>Rating: 4.7/<strong>5</strong> (3 votes cast)</div><br /><img src="http://feeds.feedburner.com/~r/Stellar-ParalleX/~4/6hfLOhJh3-M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://stellar.cct.lsu.edu/2012/11/sc12-demo-highly-parallel-interactive-image-flow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://stellar.cct.lsu.edu/2012/11/sc12-demo-highly-parallel-interactive-image-flow/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sc12-demo-highly-parallel-interactive-image-flow</feedburner:origLink></item>
		<item>
		<title>HPX on Android!</title>
		<link>http://feedproxy.google.com/~r/Stellar-ParalleX/~3/OguIGqiXgMc/</link>
		<comments>http://stellar.cct.lsu.edu/2012/10/hpx-on-android/#comments</comments>
		<pubDate>Fri, 12 Oct 2012 13:21:13 +0000</pubDate>
		<dc:creator>Thomas Heller</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://stellar.cct.lsu.edu/?p=724</guid>
		<description><![CDATA[It&#8217;s been a while since the last post on this blog representing new development in the HPX world. We are not dead and are still working on providing a new and unique experience to the world of parallel computing! One &#8230; <a href="http://stellar.cct.lsu.edu/2012/10/hpx-on-android/">Continue reading <span class="meta-nav">&#8594;</span></a><br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=4.7" /></div><div>Rating: 4.7/<strong>5</strong> (3 votes cast)</div><br />]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s been a while since the last post on this blog representing new development in the HPX world. We are not dead and are still working on providing a new and unique experience to the world of parallel computing! One of our latest efforts was to bring HPX to Android devices. Android is an exciting platform which grew very popular recently.</p>
<p><span id="more-724"></span></p>
<p>With this post I am proud to announce the first &#8220;Hello World!&#8221;-like Android application running HPX:</p>
<div id="attachment_735" class="wp-caption aligncenter" style="width: 1290px"><a href="http://stellar.cct.lsu.edu/wp-content/uploads/2012/10/HPXAndroid.png"><img class="size-full wp-image-735" title="HPX on Android" src="http://stellar.cct.lsu.edu/wp-content/uploads/2012/10/HPXAndroid.png" alt="HPX on Android - Hello World" width="1280" height="800" /></a><p class="wp-caption-text">HPX on Android &#8211; Hello World</p></div>
<p>When pressing the button, 10 HPX threads will be spawned. Additionally, 4 performance counter showing the current value of HPX threads residing in the system. The application was compiled in debug mode, as such, the timings shown in the screenshot are definitely not all you can expect from HPX on ARM.</p>
<p>You can download the APK <a href="https://github.com/STEllAR-GROUP/HPXAndroid/HPXAndroid-debug.apk/qr_code">here</a>. (It has been tested on a Samsung Galaxy Note 10.1 tablet running Android version 4.0.4) For more information and the source code visit the <a href="https://github.com/STEllAR-GROUP/HPXAndroid">HPXAndroid github repository</a>. Please bear with use, the port is very new, and unfortunately we have to smooth out some things in order to guarantee an optimal experience for Android users. The HPX&lt;-&gt;Android Java Bridge is also kinda experimental and lacks lots of features. If you want to be part of this exciting new development visit us on the  <code>#ste||ar</code> IRC channels at <a href="http://freenode.net/">freenode</a> or drop us a comment here.</p>
<br /><div><img src="http://stellar.cct.lsu.edu/wp-content/plugins/gd-star-rating/gfx.php?value=4.7" /></div><div>Rating: 4.7/<strong>5</strong> (3 votes cast)</div><br /><img src="http://feeds.feedburner.com/~r/Stellar-ParalleX/~4/OguIGqiXgMc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://stellar.cct.lsu.edu/2012/10/hpx-on-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://stellar.cct.lsu.edu/2012/10/hpx-on-android/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=hpx-on-android</feedburner:origLink></item>
	</channel>
</rss>
