<?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>Parallelcoding.com</title>
	<atom:link href="http://www.parallelcoding.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.parallelcoding.com</link>
	<description>Intelligent, Efficient, Parallel, and Sustainable Code</description>
	<lastBuildDate>Thu, 02 Feb 2012 15:17:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Calling CUDA Kernels from C++</title>
		<link>http://www.parallelcoding.com/2012/02/02/calling-cuda-kernels-from-c/</link>
		<comments>http://www.parallelcoding.com/2012/02/02/calling-cuda-kernels-from-c/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 15:17:23 +0000</pubDate>
		<dc:creator>Robert Green</dc:creator>
				<category><![CDATA[CUDA]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[GPU]]></category>

		<guid isPermaLink="false">http://www.parallelcoding.com/?p=841</guid>
		<description><![CDATA[I had a need to call a CUDA kernel from inside a C++ class. When I went looking through the NVIDIA examples and the wealth of information on the internet, I could not find a clear solution to my problem. &#8230;<p class="read-more"><a href="http://www.parallelcoding.com/2012/02/02/calling-cuda-kernels-from-c/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>I had a need to call a CUDA kernel from inside a C++ class. When I went looking through the NVIDIA examples and the wealth of information on the internet, I could not find a clear solution to my problem. So, let me state plainly how to accomplish this:</p>
<ol>
<li>Create a ".cu" file for your kernels;</li>
<li>For each kernel you would like to call from C++, create a wrapper that can be called from inside your class;</li>
<li>Inside this wrapper, call your kernel function;</li>
<li>Include the prototype for your wrapper in the header file of your class, but not inside the class definition.
</ol>
<p>An example of the ".cu" file and the class header are shown below. One thing you apparently do not need to do (particularly in Visual Studio 2010) is include the ".cu" file in your class. As long as it is part of your project, everything should work just fine.</p>
<pre class="brush: cpp; title: ; notranslate">
#ifndef _PROJECT_KERNELS
#define _PROJECT_KERNELS

__global__ void kernel(double Param1, double Param2){
    // Do Kernel Stuff here
}
extern &quot;C&quot; void functionName(double Param1, double Param2){

    kernel&lt;&lt;&lt;Nb, Nt&gt;&gt;kernel(Param1, Param2);
}
#endif
</pre>
<pre class="brush: cpp; title: ; notranslate">
#ifndef MYCLASS_H_
#define MYCLASS_H_

#include &lt;cuda.h&gt;
#include &quot;cuda_runtime.h&quot;

extern &quot;C&quot; void functionName(double Param1, double Param2);

class myClass{
    myClass();
}
#endif
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.parallelcoding.com/2012/02/02/calling-cuda-kernels-from-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coding Guidelines: Finding the Art in the Science - Part 2</title>
		<link>http://www.parallelcoding.com/2011/12/29/coding-guidelines-finding-the-art-in-the-science-part-2/</link>
		<comments>http://www.parallelcoding.com/2011/12/29/coding-guidelines-finding-the-art-in-the-science-part-2/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 17:08:57 +0000</pubDate>
		<dc:creator>Robert Green</dc:creator>
				<category><![CDATA[Code Readability]]></category>
		<category><![CDATA[Coding Guidlines: Finding the Art in the Science]]></category>

		<guid isPermaLink="false">http://www.parallelcoding.com/?p=765</guid>
		<description><![CDATA[After writing Part 1 of this post, I received a very awesome Christmas gift - "The Pragmatic Programmer: From Journeyman to Master" by Andrew Hunt &#38; Dave Thomas. While I've only dug into the first few chapters of this book, I like &#8230;<p class="read-more"><a href="http://www.parallelcoding.com/2011/12/29/coding-guidelines-finding-the-art-in-the-science-part-2/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>After writing Part 1 of this post, I received a very awesome Christmas gift - "<a href="http://pragprog.com/the-pragmatic-programmer">The Pragmatic Programmer: From Journeyman to Maste</a>r" by Andrew Hunt &amp; Dave Thomas. While I've only dug into the first few chapters of this book, I like the majority of what is said. While there was one section of Chapter 1 that really struck a chord with me (section 6 where the authors speak about communication of various types), reading the book spurred me to take a look around <a href="http://pragprog.com">pragprog.com</a>, something that I haven't done for quite a while.</p>
<p>While at pragprog.com, I stumbled across their magazine, PragPub. In the September 2009 magazine there is a wonderful article titled, "<a href="http://pragprog.com/magazines/2009-09/beauty-in-code">Beauty in Code.</a>" The entire article deals with understanding the function and meaning of these unique snippets of code. While this is a fun challenge (I may use this in the classroom someday), it makes a solid point regarding development that is very well stated in the article:</p>
<blockquote><p>We translate user stories into source code. How much of it survives the operation? More importantly, how much of it gets lost in the translation?</p></blockquote>
<p>The issue being dealt with here is clarity. Clarity in code is vital and adds directly to the beauty of what is being developed in both form in function. While I could rant on this topic for quite some time, I will simply let this simmer for a while.</p>
<p>I leave you with two excellent quotes. The first is from the article I've discussed and the other is from <a href="http://thinkrelevance.com/blog/2008/09/10/java-next-4-immutability.html">Java.next #4: Immutability</a>.</p>
<blockquote><p>If you do it right, the beauty you see is multifaceted. If the code (as it runs) is as beautiful as the code (as it is written), then you are singing it just right.</p></blockquote>
<blockquote><p>Languages are not about what they make possible, but about what they make beautiful.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.parallelcoding.com/2011/12/29/coding-guidelines-finding-the-art-in-the-science-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coding Guidelines: Finding the Art in the Science - Part 1</title>
		<link>http://www.parallelcoding.com/2011/12/27/coding-guidelines-finding-the-art-in-the-science/</link>
		<comments>http://www.parallelcoding.com/2011/12/27/coding-guidelines-finding-the-art-in-the-science/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 12:45:18 +0000</pubDate>
		<dc:creator>Robert Green</dc:creator>
				<category><![CDATA[Code Readability]]></category>
		<category><![CDATA[Coding Guidlines: Finding the Art in the Science]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.parallelcoding.com/?p=745</guid>
		<description><![CDATA[Recently, I wrote a post about an article titled, "Software Engineering for Scientists". One of the strong points made in that article was that There’s 60 years of existing scientific knowledge buried in code and it’s extremely difficult to extract. As scientists write new code, &#8230;<p class="read-more"><a href="http://www.parallelcoding.com/2011/12/27/coding-guidelines-finding-the-art-in-the-science/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Recently, I wrote a <a href="http://www.parallelcoding.com/2011/09/01/thoughts-on-software-engineering-for-scientists/">post</a> about an article titled, "<a title="Software Engineering for Scientists" href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?isnumber=5999774&amp;arnumber=5999781">Software Engineering for Scientists</a>". One of the strong points made in that article was that</p>
<blockquote><p>There’s 60 years of existing scientific knowledge buried in code and it’s <strong><em>extremely difficult to extract</em></strong>. As scientists write new code, they need to <em><strong>clearly ex­press intent in a way that doesn’t affect code performance</strong></em>.</p></blockquote>
<p>This reinforces the idea that there is a huge issue concerning the writing of clear, concise, and understandable code in industry and academics. In light of this idea, I've recently published an article with Henry Ledgard titled "Coding Guidelines: Finding the Art in the Science" that can be found <a title="ACM - Coding Guidelines: Finding the Art in the Science" href="http://cacm.acm.org/magazines/2011/12/142527-coding-guidelines-finding-the-art-in-the-science/fulltext" target="_blank">here</a> and <a title="ACM Queue - Coding Guidelines: Finding the Art in the Science" href="http://queue.acm.org/detail.cfm?id=2063168" target="_blank">here</a>. The article itself is focused on the idea that there is a role that aesthetics plays when writing code. This is perhaps summed up best by the first few lines of the article:</p>
<blockquote><p>Computer science is both a science and an art. Its scientific aspects range from the theory of computation and algorithmic studies to code design and program architecture. Yet, when it comes time for implementation, there is a combination of artistic flare, nuanced style, and technical prowess that separates good code from great code.</p></blockquote>
<p>This article, as opposed to those that layout strict coding guidelines to increase performance and maintainability, is focused on developing code that is easier to read by focusing on the aesthetic appeal of the code. And, while it has not been studied yet, code that appeals to developers in this fashion should lead to 1) Easier maintenance, 2) Increased productivity, and 3) A shorter period of acclimation when working with an unfamiliar code base.</p>
<p>In the paper, we present 6 distinct guidelines that should be followed as much is possible:</p>
<ol>
<li>Consider a program as a table;</li>
<li>Let simple English be your guide;</li>
<li>Rely on context to simplify code;</li>
<li>Use white space to show structure;</li>
<li>Let decision structures speak for themselves; and</li>
<li>Focus on the code, not the comments.</li>
</ol>
<p>Some of these ideas are controversial and some people will see a few things that we have presented as impractical. That is why we have presented our ideas as "guidelines", not "standards". This is a flexible set of ideas that can be molded to fit individuals and corporations alike.</p>
<p>Beyond this, the use of aesthetics in coding suggests that there are some general principles that will aid in making code appealing to nearly everyone, though there will be some nuances between different developers.</p>
<p>One thing I would like to mention is that some folks have pointed out some errors in the Figures (particularly Figure 1). I would encourage readers not to lose sight of the "forest for the trees" in this situation as requests have been made to fix these minor errors. This is particularly true as the guidelines are intended to be IDE, language, and syntax neutral. Thus, the visual appeal (and the point) of the examples should be apparent regardless.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.parallelcoding.com/2011/12/27/coding-guidelines-finding-the-art-in-the-science/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts on &quot;Software Engineering for Scientists&quot;</title>
		<link>http://www.parallelcoding.com/2011/09/01/thoughts-on-software-engineering-for-scientists/</link>
		<comments>http://www.parallelcoding.com/2011/09/01/thoughts-on-software-engineering-for-scientists/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 21:22:29 +0000</pubDate>
		<dc:creator>Robert Green</dc:creator>
				<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://www.parallelcoding.com/?p=742</guid>
		<description><![CDATA[I just read the article "Software Engineering for Scientists" and I think it makes some incredibly excellent points regarding software development in the scientific community. There are two particular issues to point out. First, the clarity and the ability of &#8230;<p class="read-more"><a href="http://www.parallelcoding.com/2011/09/01/thoughts-on-software-engineering-for-scientists/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>I just read the article "<a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?isnumber=5999774&amp;arnumber=5999781">Software Engineering for Scientists</a>" and I think it makes some incredibly excellent points regarding software development in the scientific community. There are two particular issues to point out.</p>
<p>First, the clarity and the ability of code to communicate intent clearly are very important. If I could only find a way to articulate how important clarity and communication are for code stability, I would, but I find that anything I say does not express this clearly enough. So, from the article:</p>
<blockquote><p>"There’s 60 years of existing scientific knowledge buried in code and it’s <strong><em>extremely difficult to extract</em></strong>. As scientists write new code, they need to <em><strong>clearly ex­press intent in a way that doesn’t affect code performance</strong></em>. Code structures are one way to help capture intent and knowledge, yet they don’t impede performance."</p></blockquote>
<p>Second, results of what you code must be verified somehow. Again, from the article:</p>
<blockquote><p>"One panelist pointed out that testing results in “reviewing the output instead of reviewing the code.”Everyone agrees that code review is a good idea. However, it’s difficult to incorporate code review into work practices without the large overhead it commonly entails."</p></blockquote>
<p>So, if you are writing code, please consider the clarity and intent of what you are writing. This is important and will save many developers, scientists, and others hours of wasted time. Also, if you write scientific code, please share it with the community. Critiquing code, verifying results, and extending algorithms would be much easier if there was a real atmosphere of cooperation out there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.parallelcoding.com/2011/09/01/thoughts-on-software-engineering-for-scientists/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Particle Swarm Optimization (PSO) in Matlab</title>
		<link>http://www.parallelcoding.com/2011/04/25/particle-swarm-optimization-pso-in-matlab/</link>
		<comments>http://www.parallelcoding.com/2011/04/25/particle-swarm-optimization-pso-in-matlab/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 14:58:54 +0000</pubDate>
		<dc:creator>Robert Green</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Matlab]]></category>
		<category><![CDATA[Metaheuristics]]></category>
		<category><![CDATA[Octave]]></category>
		<category><![CDATA[Particle Swarm Optimization]]></category>

		<guid isPermaLink="false">http://www.parallelcoding.com/?p=728</guid>
		<description><![CDATA[Here is a very simple version of PSO in Matlab. PSO is a very popular, population based metaheuristic algorithm that mimics swarming behavior and swarm intelligence in order to solve optimization problems. The code below is intended to get you &#8230;<p class="read-more"><a href="http://www.parallelcoding.com/2011/04/25/particle-swarm-optimization-pso-in-matlab/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Here is a very simple version of PSO in Matlab. PSO is a very popular, population based metaheuristic algorithm that mimics swarming behavior and swarm intelligence in order to solve optimization problems.</p>
<p>The code below is intended to get you started working with PSO in Matlab or Octave. Best efforts were made to keep the code clean and easy to understand. Feel free to play with it and <a title="Contact Me" href="http://www.parallelcoding.com/contact-me/">contact</a> me with any questions.</p>
<p><a href="http://www.parallelcoding.com/wp-content/uploads/PSO/PSO.m">Click Here to Download PSO.m</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.parallelcoding.com/2011/04/25/particle-swarm-optimization-pso-in-matlab/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Genetic Algorithms on GPU using CUDA</title>
		<link>http://www.parallelcoding.com/2011/04/13/genetic-algorithms-on-gpu-using-cuda/</link>
		<comments>http://www.parallelcoding.com/2011/04/13/genetic-algorithms-on-gpu-using-cuda/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 21:15:14 +0000</pubDate>
		<dc:creator>Robert Green</dc:creator>
				<category><![CDATA[CUDA]]></category>
		<category><![CDATA[Genetic Algorithms]]></category>

		<guid isPermaLink="false">http://www.parallelcoding.com/?p=716</guid>
		<description><![CDATA[Some references for GA on GPU. If you know of any further resources, please contact me. Downloads: PDF &#124; Bibtex [1] Q. Yu, C. Chen, and Z. Pan, “Parallel genetic algorithms on programmable graphics hardware,” in Lecture Notes in Computer &#8230;<p class="read-more"><a href="http://www.parallelcoding.com/2011/04/13/genetic-algorithms-on-gpu-using-cuda/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Some references for GA on GPU. If you know of any further resources, please contact me.</p>
<p>Downloads: <a href="ttp://www.parallelcoding.com/wp-content/uploads/2011/04/GA_On_GPU.pdf">PDF</a> | <a href="http://www.parallelcoding.com/wp-content/uploads/2011/04/GA_On_GPU.bib">Bibtex</a> <br/><br/></p>
<p>[1] Q. Yu, C. Chen, and Z. Pan, “Parallel genetic algorithms on programmable graphics hardware,” in Lecture Notes in Computer Science<br />
3612. Springer, 2005, p. 1051.<br/><br />
[2] P. Pospichal and J. Jaros, “GPU-based Acceleratino of the Genetic Algorithm,” in Proceedings of GECCO 2009, 2009.<br/><br />
[3] A. Munawar, M. Wahib, M. Munetomo, and K. Akama, “Hybrid of genetic algorithm and local search to solve max-sat problem using NVIDIA CUDA framework,” Genetic Programming and Evolvable Machines, vol. 10, pp. 391–415, 2009.<br/><br />
[4] S. Debattistic, N. Marlat, L. Mussi, and S. Cagnoni, “Implementatino of a Simple Genetic Algorithm within the CUDA Architecture,” in Proceedings of GECCO 2009, 2009.<br/><br />
[5] S. Zhang and Z. He, “Implementation of parallel genetic algorithm based on cuda,” in Advances in Computation and Intelligence, ser. Lecture Notes in Computer Science, Z. Cai, Z. Li, Z. Kang, and Y. Liu, Eds. Springer Berlin / Heidelberg, 2009, vol. 5821, pp. 24–30.<br/><br />
[6] S. Tsutsui and N. Fujimoto, “Solving quadratic assignment problems by genetic algorithms with gpu computation: a case study,” in Proceedings of the 11th Annual Conference Companion on Genetic and Evolutionary Computation Conference: Late Breaking Papers,  ser. GECCO ’09. New York, NY, USA: ACM, 2009, pp. 2523–2530.<br/><br />
[7] P. Vidal and E. Alba, “A multi-gpu implementation of a cellular genetic algorithm,” in 2010 IEEE Congress on Evolutionary Computation (CEC), July 2010, pp. 1–7.<br/><br />
[8] ——, “Cellular genetic algorithm on graphic processing units,” in Nature Inspired Cooperative Strategies for Optimization (NICSO 2010), ser. Studies in Computational Intelligence, J. Gonzlez, D. Pelta, C. Cruz, G. Terrazas, and N. Krasnogor, Eds. Springer Berlin/Heidelberg, 2010, vol. 284, pp. 223–232. <br/><br />
[9] R. Arora, R. Tulshyan, and K. Deb, “Parallelization of binary and real-coded genetic algorithms on GPU using CUDA,” in IEEE Congress on Evolutionary Computation, 2010, pp. 1–8. <br/><br />
[10] N. Fujimoto and S. Tsutsui, “A highly-parallel tsp solver for a gpu computing platform,” in Proceedings of the 7th international conference on Numerical methods and applications, ser. NMA’10. Berlin, Heidelberg: Springer-Verlag, 2011, pp. 264–271.<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.parallelcoding.com/2011/04/13/genetic-algorithms-on-gpu-using-cuda/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Artificial Immune Optimization on the GPU using CUDA</title>
		<link>http://www.parallelcoding.com/2011/04/13/artificial-immune-optimization-on-the-gpu/</link>
		<comments>http://www.parallelcoding.com/2011/04/13/artificial-immune-optimization-on-the-gpu/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 20:54:52 +0000</pubDate>
		<dc:creator>Robert Green</dc:creator>
				<category><![CDATA[Artificial Immune]]></category>
		<category><![CDATA[CUDA]]></category>

		<guid isPermaLink="false">http://www.parallelcoding.com/?p=712</guid>
		<description><![CDATA[Some references for AIS on GPU. If you know of any further resources, please contact me. Downloads: PDF &#124; Bibtex [1] J. Zhao, Q. Liu, W. Wang, Z. Wei, and P. Shi, “A parallel immune algorithm for traveling salesman problem &#8230;<p class="read-more"><a href="http://www.parallelcoding.com/2011/04/13/artificial-immune-optimization-on-the-gpu/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Some references for AIS on GPU. If you know of any further resources, please contact me.</p>
<p>Downloads: <a href="ttp://www.parallelcoding.com/wp-content/uploads/2011/04/AIS_On_GPU.pdf">PDF</a> | <a href="http://www.parallelcoding.com/wp-content/uploads/2011/04/AIS_On_GPU.bib">Bibtex</a> <br/><br/></p>
<p>[1] J. Zhao, Q. Liu, W. Wang, Z. Wei, and P. Shi, “A parallel immune algorithm for traveling salesman problem and its application on cold<br />
rolling scheduling,” Information Sciences, vol. 181, no. 7, pp. 1212 – 1223, 2011.<br />
[2] J. Li, L. Zhang, and L. Liu, “A Parallel Immune Algorithm Based on Fine-grained Model with GPU-Acceleration,” in Foruth International<br />
Conference on Innovative Computing, Information, and Control, 2009, pp. 683–686.<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.parallelcoding.com/2011/04/13/artificial-immune-optimization-on-the-gpu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ant Colony Optimization on GPU using CUDA</title>
		<link>http://www.parallelcoding.com/2011/04/11/ant-colony-optimization-on-gpu/</link>
		<comments>http://www.parallelcoding.com/2011/04/11/ant-colony-optimization-on-gpu/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 20:47:17 +0000</pubDate>
		<dc:creator>Robert Green</dc:creator>
				<category><![CDATA[Ant Colony Optimization]]></category>
		<category><![CDATA[CUDA]]></category>
		<category><![CDATA[Metaheuristics]]></category>

		<guid isPermaLink="false">http://www.parallelcoding.com/?p=705</guid>
		<description><![CDATA[Some references for ACO on GPU. If you know of any further resources, please contact me. Downloads: PDF &#124; Bibtex [1] J. Li, X. Hu, Z. Pang, and K. Qian, “A Parallel Ant Colony Optimization Algorithm based on Fine-Grained Model &#8230;<p class="read-more"><a href="http://www.parallelcoding.com/2011/04/11/ant-colony-optimization-on-gpu/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Some references for ACO on GPU. If you know of any further resources, please contact me.</p>
<p>Downloads: <a href="ttp://www.parallelcoding.com/wp-content/uploads/2011/04/ACO_On_GPU.pdf">PDF</a> | <a href="http://www.parallelcoding.com/wp-content/uploads/2011/04/ACO_on_GPU.bib">Bibtex</a> <br/><br/></p>
<p>[1] J. Li, X. Hu, Z. Pang, and K. Qian, “A Parallel Ant Colony Optimization Algorithm based on Fine-Grained Model with GPU-Acceleration,” Internation Journal of Innovative Computing, Information, and Control, vol. 5, no. 11(A), November 2009.<br/><br />
[2] Y.-S. You, “Parallel ant system for traveling salesman problem on GPUs,” in Proceedings of GECCO 2009, 2009.<br/><br />
[3] S. Sanci, “A Parallel Algorithm for Flight Route Planning on GPU using CUDA,” Master’s thesis, Middle East Technical University,<br />
Turkey, 2010.<br/><br />
[4] J. M. Cecilia, J. M. Garca, M. Ujaldon, A. Nisbet, and M. Amos, “Parallelization strategies for ant colony optimisation on GPUs,”<br />
Computing Research Repository, pp. –1–1, 2011.<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.parallelcoding.com/2011/04/11/ant-colony-optimization-on-gpu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Particle Swarm Optimization on the GPU using CUDA</title>
		<link>http://www.parallelcoding.com/2011/03/21/particle-swarm-optimization-on-the-gpu/</link>
		<comments>http://www.parallelcoding.com/2011/03/21/particle-swarm-optimization-on-the-gpu/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 13:41:55 +0000</pubDate>
		<dc:creator>Robert Green</dc:creator>
				<category><![CDATA[Particle Swarm Optimization]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.parallelcoding.com/?p=647</guid>
		<description><![CDATA[I'm currently doing some research into Particle Swarm Optimization (PSO) on the GPU using CUDA. As a bit of preliminary work I am gathering previous research on the topic. Below is a list of the most recent work that I &#8230;<p class="read-more"><a href="http://www.parallelcoding.com/2011/03/21/particle-swarm-optimization-on-the-gpu/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>I'm currently doing some research into Particle Swarm Optimization (PSO) on the GPU using CUDA. As a bit of preliminary work I am gathering previous research on the topic. Below is a list of the most recent work that I can find including a PDF and Bibtex version of all references. If you know of any further resources, please contact me.</p>
<p>Downloads: <a href="http://www.parallelcoding.com/wp-content/uploads/2011/03/PSO_On_GPU.pdf">PDF</a> | <a href="http://www.parallelcoding.com/wp-content/uploads/2011/03/PSO_On_GPU.bib">Bibtex</a> <br/><br/></p>
<p>[1] G. A. Laguna-Snchez, M. Olgun-Carbajal, N. Cruz-Corts, and R. B.-F. J. A. Alvarez-Cedillo, “Comparative study of parallel variants for a particle swarm optimization,” Journal of Applied Research and Technology, vol. 7, no. 3, pp. 292–309, 2010.<br/><br/></p>
<p>[2] Y. Zhou and Y. Tan, “GPU-based parallel particle swarm optimization,” in Proceedings of the Eleventh conference on Congress on Evolutionary Computation, ser. CEC '09. Piscataway, NJ, USA: IEEE Press, 2009, pp. 1493–1500.<br/><br/></p>
<p>[3] L. Mussi, S. Cagnoni, and F. Daolio, “GPU-based road sign detection using particle swarm optimization,” in Ninth International Conference on Intelligent Systems Design and Applications, December 2009, pp. 152 –157.<br/><br/></p>
<p>[4] W. Zhu and J. Curry, “Particle swarm with graphics hardware acceleration and local pattern search on bound constrained problems,” in IEEE Swarm Intelligence Symposium, 2009. SIS ’09, April 2009, pp. 1–8.<br/><br/></p>
<p>[5] L. de P. Veronese and R. Krohling, “Swarm’s flight: Accelerating the particles using C-CUDA,” in IEEE Congress on Evolutionary Computation, 2009. CEC ’09., May 2009, pp. 3264 –3270.<br/><br/></p>
<p>[6] B. Rymut and B. Kwolek, “Gpu-supported object tracking using adaptive appearance models and particle swarm optimization,” in Proceedings of the 2010 international conference on Computer vision and graphics: Part II, ser. ICCVG’10. Berlin, Heidelberg: Springer-Verlag, 2010, pp. 227–234.<br/><br/></p>
<p>[7] C. Bastos-Filho, M. Oliveira, D. Nascimento, and A. Ramos, “Impact of the random number generator quality on particle swarm optimization algorithm running on graphic processor units,” in Hybrid Intelligent Systems (HIS), 2010 10th International Conference on, August 2010, pp. 85–90.<br/><br/></p>
<p>[8] L. Mussi, F. Daolio, and S. Cagnoni, “Evaluation of parallel particle swarm optimization algorithms within the CUDA(TM) architecture,” Information Sciences, vol. In Press, Corrected Proof, 2010.<br/><br/></p>
<p>[9] L. Mussi, S. Ivekovic, and S. Cagnoni, “Markerless articulated human body tracking from multi-view video with gpu-pso,” in Proceedings of the 9th international conference on Evolvable systems: from biology to hardware, ser. ICES’10. Berlin, Heidelberg:Springer-Verlag, 2010, pp. 97–108.<br/><br/></p>
<p>[10] Y. Tan and Y. Zhou, “Parallel particle swarm optimization algorithm based on graphic processing units,” in Handbook of Swarm Intelligence, ser. Adaptation, Learning, and Optimization, L. M. Hiot, Y. S. Ong, B. K. Panigrahi, Y. Shi, and M.-H. Lim, Eds. Springer Berlin Heidelberg, 2010, vol. 8, pp. 133–154.<br/><br/></p>
<p>[11] Y. Zhou and Y. Tan, “Particle swarm optimization with triggered mutation and its implementation based on GPU,” in Proceedings of the 12th annual conference on Genetic and evolutionary computation, ser. GECCO ’10. New York, NY, USA: ACM, 2010, pp. 1–8.<br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.parallelcoding.com/2011/03/21/particle-swarm-optimization-on-the-gpu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Moore&#039;s vs. May&#039;s</title>
		<link>http://www.parallelcoding.com/2011/03/18/637/</link>
		<comments>http://www.parallelcoding.com/2011/03/18/637/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 14:03:45 +0000</pubDate>
		<dc:creator>Robert Green</dc:creator>
				<category><![CDATA[Parallel / Distributed]]></category>

		<guid isPermaLink="false">http://www.parallelcoding.com/?p=637</guid>
		<description><![CDATA[I just read Doublas Eadline's post at  Linux Magazine and found it really fascinating. The best tidbit to chew on is: This is where all the hardware excitement meets the cold reality of parallel programming. We are all familiar with &#8230;<p class="read-more"><a href="http://www.parallelcoding.com/2011/03/18/637/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>I just read Doublas Eadline's post at  <a href="http://www.linux-mag.com/id/8422/?hq_e=el&amp;hq_m=1210749&amp;hq_l=12&amp;hq_v=76abbfac82">Linux Magazine</a> and found it really fascinating. The best tidbit to chew on is:</p>
<blockquote><p>This is where all the hardware excitement meets the cold reality of parallel programming. We are all familiar with “Moore’s Law” (the transistor density doubles every two years). Many people have probably not heard of “May’s Law.” (for the purist, you can substitute “trend” for “law”). In any case, <a href="http://en.wikipedia.org/wiki/David_May_%28computer_scientist%29">David May</a> states his law as follows, “Software efficiency halves every 18 months, compensating for Moore’s Law.” Think about it. Every new generation of hardware</p></blockquote>
<p><a href="http://en.wikipedia.org/wiki/Moore's_law">Moore's Law</a> - The number of transistors on a chip doubles roughly every 2 years</p>
<p><a href="http://en.wikipedia.org/wiki/David_May_%28computer_scientist%29">May's Law</a> - Software efficiency halves every 18 months, compensating for Moore’s Law.</p>
<p>Chew on that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.parallelcoding.com/2011/03/18/637/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

