<?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>Hamiltonian Consulting - Information Technology, System Analysis and Design</title>
	<atom:link href="http://codeskilled.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://codeskilled.com</link>
	<description>Information Technology, Database Consulting, Programmer Analyst, System Development</description>
	<lastBuildDate>Thu, 02 Sep 2010 05:06:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Python OpenCL Example OpenCL Language</title>
		<link>http://codeskilled.com/24/python-opencl-example-opencl-language/</link>
		<comments>http://codeskilled.com/24/python-opencl-example-opencl-language/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 23:54:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[examples]]></category>
		<category><![CDATA[opencl]]></category>

		<guid isPermaLink="false">http://codeskilled.com/?p=24</guid>
		<description><![CDATA[Introduction to OpenCL and PyOpenCL. A quick description of OpenCL language and API]]></description>
			<content:encoded><![CDATA[<h3>Python OpenCL Example: pyOpenCL</h3>
<h4>Example of a program written in the OpenCL programming language.</h4>
<p>Below is an example of a program written in <a href="http://en.wikipedia.org/wiki/OpenCL" title="OpenCL wikipedia article">OpenCL</a>. This language is written to allow highly parallel processes to be computed on any type of highly parallel processor(s). This is an example from the &#8216;examples&#8217; folder of pyOpenCL.</p>
<h4>About OpenCL</h4>
<p>OpenCL stands for Open Computing Language. Its goal is to allow writing of programs across multiple platforms. One of the advantages of OpenCL is its ability to allow programs to be written for the GPU. The GPU is one of the most parallel processors to date and offers large amounts of parallel processing power. You will find OpenCL support in Linux, Windows, and MacOS (Snow Leopard or newer only unfortunately). You will find full support for the GPU using NVidia or ATI video cards and any of the previous operating systems. Also OpenCL is supported for some multi-core or multiple CPU set ups.</p>
<h4>Alternatives</h4>
<p>Other similar packages are NVidia&#8217;s <a href="http://en.wikipedia.org/wiki/CUDA">Compute Unified Device Architecture or CUDA</a> and Microsoft&#8217;s <a href="http://en.wikipedia.org/wiki/DirectCompute">DirectCompute</a>. None of these are quite as cross-platform as OpenCL.</p>
<h4>Overview</h4>
<p>We create 2 arrays of random numbers (using the numpy package) then write an OpenCL &#8216;kernel&#8217; that will sum the 2 arrays, and write to an output buffer the results. We then read that buffer back into python&#8217;s memory and print out statistics on that array.</p>
<h4>Source Code</h4>
<pre>
import pyopencl as cl
import numpy
import numpy.linalg as la

a = numpy.random.rand(50000).astype(numpy.float32)
b = numpy.random.rand(50000).astype(numpy.float32)

ctx = cl.create_some_context()
queue = cl.CommandQueue(ctx)

mf = cl.mem_flags
a_buf = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=a)
b_buf = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=b)
dest_buf = cl.Buffer(ctx, mf.WRITE_ONLY, b.nbytes)

prg = cl.Program(ctx, """
__kernel void sum(__global const float *a,
__global const float *b, __global float *c) {
     int gid = get_global_id(0);
     c[gid] = a[gid] + b[gid];
}
""").build()

prg.sum(queue, a.shape, a_buf, b_buf, dest_buf)

a_plus_b = numpy.empty_like(a)
cl.enqueue_read_buffer(queue, dest_buf, a_plus_b).wait()

print la.norm(a_plus_b - (a+b)), la.norm(a_plus_b)
</pre>
<h4>Links:</h4>
<p><a href="http://mathema.tician.de/software/pyopencl" title="PyOpenCL homepage">PyOpenCL</a><br />
<a href="http://www.python.org/" title="Python Homepage">Python</a><br />
<a href="http://www.boost.org/" title="Boost Homepage">Boost C++ Libraries</a> (required for PyOpenCL)<br />
<a href="http://en.wikipedia.org/wiki/OpenCL" title="OpenCL wikipedia article">More info on OpenCL</a></p>
]]></content:encoded>
			<wfw:commentRss>http://codeskilled.com/24/python-opencl-example-opencl-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Application Development</title>
		<link>http://codeskilled.com/19/application-development/</link>
		<comments>http://codeskilled.com/19/application-development/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 03:03:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[application development]]></category>

		<guid isPermaLink="false">http://codeskilled.com/?p=19</guid>
		<description><![CDATA[Need custom application development in Barrie or Toronto area? 
We develop custom applications for any business including web applications, construction and engineering applications, or any data input applications.
Our design process is quick and effective. Call us for a quote.
]]></description>
			<content:encoded><![CDATA[<h2>Need custom application development in Barrie or Toronto area? </h2>
<p>We develop custom applications for any business including web applications, construction and engineering applications, or any data input applications.</p>
<p>Our design process is quick and effective. Call us for a quote.</p>
]]></content:encoded>
			<wfw:commentRss>http://codeskilled.com/19/application-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web Crawling Project</title>
		<link>http://codeskilled.com/8/web-crawling-project/</link>
		<comments>http://codeskilled.com/8/web-crawling-project/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 01:58:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://codeskilled.com/?p=8</guid>
		<description><![CDATA[
Hamiltonian Constulting develops Custom Web Crawling Application


Web Crawling

For the CityDirect network
Task: A system was developed for web data mining. Users were able to input specialized URLs to guide the crawler, and manually rank data sources for their reliability.
Achievements

Gathered large amounts of data (100s of GB) in a relational database (PostgreSQL).
Multi-process and multi-threaded application written in [...]]]></description>
			<content:encoded><![CDATA[<h2>
Hamiltonian Constulting develops Custom Web Crawling Application<br />
</h2>
<h3>
Web Crawling<br />
</h3>
<h4>For the <a href="http://www.citydirect.info">CityDirect network</a></h4>
<p><strong>Task:</strong> A system was developed for web data mining. Users were able to input specialized URLs to guide the crawler, and manually rank data sources for their reliability.</p>
<p><strong>Achievements</strong></p>
<ul>
<li>Gathered large amounts of data (100s of GB) in a relational database (PostgreSQL).</li>
<li>Multi-process and multi-threaded application written in Python.</li>
<li>Due to code reuse and good practices, delivered system in half the time others had quoted.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://codeskilled.com/8/web-crawling-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome Hamiltonian Consulting to Barrie, Ontario</title>
		<link>http://codeskilled.com/4/welcome-hamiltonian-consulting-to-from-barrie-ontario/</link>
		<comments>http://codeskilled.com/4/welcome-hamiltonian-consulting-to-from-barrie-ontario/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 23:28:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Messages]]></category>
		<category><![CDATA[database analyst]]></category>
		<category><![CDATA[database consulting]]></category>
		<category><![CDATA[I.T. consulting]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[system analysis]]></category>
		<category><![CDATA[system design]]></category>

		<guid isPermaLink="false">http://codeskilled.com/?p=4</guid>
		<description><![CDATA[Welcome to Hamiltonian Consulting&#8217;s blog. This is officially our first post, and we look forward to serving all of your Information Technology consulting needs!
Hamiltonian consulting has had a vast amount of experience with many clients, and we are now expanding to take on new clients.
We are able to offer technical consulting services, database analyst, computer [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to Hamiltonian Consulting&#8217;s blog. This is officially our first post, and we look forward to serving all of your Information Technology consulting needs!</p>
<p>Hamiltonian consulting has had a vast amount of experience with many clients, and we are now expanding to take on new clients.</p>
<p>We are able to offer technical consulting services, database analyst, computer consulting, system design consulting, SEO consulting, and any I.T. consulting you or your small business may need for a very reasonable price.</p>
<p>In the future we look forward to serving you!</p>
]]></content:encoded>
			<wfw:commentRss>http://codeskilled.com/4/welcome-hamiltonian-consulting-to-from-barrie-ontario/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
