<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>Ryan McGreevy</title>
 
 <link href="http://rmcgreevy.com/" />
 <updated>2012-01-18T20:35:52-08:00</updated>
 <id>http://rmcgreevy.com/</id>
 <author>
   <name>Ryan McGreevy</name>
   <email>ryanmcgreevy@gmail.com</email>
 </author>

 
 <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/rmcgreevy" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="rmcgreevy" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
   <title>Arduino Automatic Toilet Flusher</title>
   <link href="http://rmcgreevy.com/2012/01/18/arduino-flusher.html" />
   <updated>2012-01-18T00:00:00-08:00</updated>
   <id>http://rmcgreevy.com/2012/01/18/arduino-flusher</id>
   <content type="html">&lt;p&gt;I recently decided to learn more about microcontrollers and electronics in general.  I took a robotics class in high school using, I think, some sort of BASIC stamp platform.  Then in college my senior project involved writing genetic algorithm based pathfinding AI for an &lt;a href="http://www.abotics.com/open_robot.htm"&gt;Open-Robot&lt;/a&gt;.  I handled the AI while my partner built the hardware and embedded code.  The high school class was too long ago and I wasn't very involved in the hardware side of my senior project, so I was basically starting fresh.&lt;/p&gt;

&lt;p&gt;I have seen a lot of arduino hacks around the internet so I purchased the "Inventor's Kit" from &lt;a href="http://www.sparkfun.com"&gt;Sparkfun&lt;/a&gt; and an electronics toolkit from &lt;a href="http://www.adafruit.com"&gt;Adafruit&lt;/a&gt;.  I was one of the kids that would get halfway through a lego instruction book only to throw it aside and start building my own thing.  In keeping with this characteristic I only made it a few examples into the inventor's kit before thinking of what I could do on my own.  I've always wanted to install some home automation and somehow the idea of an automatic toilet came to mind.  I realized I could easily throw it together with the arduino and servo from the kit and an IR rangefinder I purchased separately from adafruit.  I threw everything into two project boxes from Radioshack and powered it with a 9V battery switch I soldered up.  The code is pretty simple and can be found on &lt;a href="https://github.com/ryanmcgreevy/Arduino-Automatic-Toilet-Flusher"&gt;GitHub&lt;/a&gt;.  A quick video of the flusher in action and a little peek at the circuitsis below.  With my first arduino project done and some new parts on the way, I look forward to my next one!&lt;/p&gt;

&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/4k899QWsJwI" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;

</content>
 </entry>
 
 <entry>
   <title>Personal Supercomputing in the Cloud</title>
   <link href="http://rmcgreevy.com/2011/09/21/personal-supercomputing-cloud.html" />
   <updated>2011-09-21T00:00:00-07:00</updated>
   <id>http://rmcgreevy.com/2011/09/21/personal-supercomputing-cloud</id>
   <content type="html">&lt;p&gt;So the title of the post may contain a bit of hyperbole, but I think we are clearly and rapidly headed
in that direction. For about a year now, I have been playing around with the various abilities
of &lt;a href= "http://aws.amazon.com/"&gt;Amazon's Web Services&lt;/a&gt;, spending most of my time on ec2.
I have been particularly interested in the HPC offerings, "Cluster Compute" and "Cluster GPU" instances.
These instances have 8 cores coming from two quad core Intel Xeon X5570's, 23 GB memory (22 for GPU instance)
and 10 Gigabit Ethernet.  The GPU instances, as the name suggests also include two NVIDIA Tesla M2050 GPUs.
Each instance alone packs decent computational firepower, but the real value is seen as soon as these instances
are launched in parallel and clustered, leveraging the elastic nature of ec2.  I decided run some simple benchmarks
on ec2 using &lt;a href="http://www.ks.uiuc.edu/Research/namd/"&gt;NAMD&lt;/a&gt;, a molecular dynamics software which I help develop.&lt;/p&gt;

&lt;p&gt;I ran basic MD simulations on two different systems: Thioredoxin reductase (4,371 atom protein, 45,750 atoms solvated) and
a nitrilase (87,084 atom protein, 468,429 atoms solvated). I ran the simulations on individual CPU only and GPU instances to
illustrate the benefits of GPU acceleration, and also across small clusters of CPU only instances to demonstrate the
scaling across nodes (testing the 10Gb interconnect as well).&lt;br/&gt;
&lt;img src="/thionitr.png" height=404 width=398/&gt;&lt;/p&gt;

&lt;p&gt;It is obvious from these graphs how software can benefit from GPU acceleration, especially with two NVIDIA Teslas
at its disposal.  As shown in the thioredoxin results, the speed advantage from a single GPU instance cannot
even be matched by a three CPU only instance cluster.  Considering a GPU instance is $2.10/hour and a CPU instance is
$1.60/hour, you are certainly getting your money's worth from the GPU's if your software can utilize them.&lt;/p&gt;

&lt;p&gt;Also interesting is simply the speed that can be achieved on these instances. One GPU instance nets you roughly .08 days/ns
of performance.  For those unfamiliar with molecular dynamics, this metric describes how many real world days are required
to calculate 1 ns of simulation time.  Most simulations range from the 10's and 100's of ns to 10's and 100's of &amp;mu;s depending
on the process being studied. Squeezing about 12.5 ns a day out of a single GPU instance when simulating 45,750 atoms might
not seem exciting to researchers accustomed to running on top 500 supercomputers, but it is encouraging regardless. Not every
researcher receives millions of dollars in grants and access to the speediest supercomputers. As a huge proponent of the
"democratization" of science, I certainly enjoy seeing ec2 delivering such good performance to anyone with a few dollars at the
click of a button.&lt;/p&gt;

&lt;p&gt;Granted, once you start calculating the costs of running even a single GPU instance for a full day (about $50), the money
seemingly adds up quickly. What needs to be considered, however, is not just the upfront per hour cost, but also all of the
savings resulting from having amazon do all of the hardware work. Using ec2, you can literally launch an 8-node cluster
with the click of a single button.  You do not need to worry about privisioning hardware, setting up your own cluster,
paying for the electricity and maintaining every hardware component that will undoubtedly fail at some point. Setting
up a basic HPC cluster can be accomplished by almost anyone within just a few minutes, start to finish. Below you can
see a video from Amazon doing just this, even running NAMD!&lt;/p&gt;

&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/5zBxl6HUFA4" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;


&lt;p&gt;I find this exciting, as even the smallest research group or curious individual can have access to their own personal HPC
cluster. There are even companies such as &lt;a href="http://www.cyclecomputing.com/cyclecloud/overview"&gt;Cycle Computing&lt;/a&gt; that
offer solutions built on AWS to make it even more convenient to launch and manage HPC cloud clusters (such as queueing systems).
There will always be a place for ultra-high performing supercomputers, but now there are viable solutions for the rest of the world.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Hello Jekyll!</title>
   <link href="http://rmcgreevy.com/2011/07/14/hello-jekyll.html" />
   <updated>2011-07-14T00:00:00-07:00</updated>
   <id>http://rmcgreevy.com/2011/07/14/hello-jekyll</id>
   <content type="html">&lt;p&gt;Hello Jekyll!  After a long downtime in maintaining my website, I decided to redo it completely with
&lt;a href="https://github.com/mojombo/jekyll/wiki"&gt;Jekyll&lt;/a&gt;.  Jekyll is a blog aware, static site generator developed by the same guy
behind &lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt;.  As a programmer, I liked the idea of my website existing as portable, flat files
that can be published (and maintained) using a version control system (git).  I previously used WordPress for my site, which while convenient,
never quite gave me the feeling that I knew where everything was and how it truly worked.  Now with Jekyll, I can develop my site in the same
manner as my code, resting assured that I have all of my content safely (and easily) versioned and backed up locally and on GitHub.&lt;/p&gt;

&lt;p&gt;Because Jekyll generates a static html site, I can also put the entire site on &lt;a href="http://aws.amazon.com/"&gt;Amazon's S3&lt;/a&gt;, part
of their web services suite.  S3 is a storage solution that can also host static html website with the click of a button.&lt;br/&gt;
This allows me to mirror the entire site on S3 in case of a problem with GitHub and quickly redirect traffic as needed. S3 will also be used
to host any large files for the site, as GitHub site hosting is a free privelege that shouldn't be abused.  Ultimately I
hope that this change to Jekyll will get me to see my website as just another project to tinker with and keep me interested.  Hopefully
my site will no longer be some remote foreign application that I &lt;em&gt;should&lt;/em&gt; update, but instead something I &lt;em&gt;want&lt;/em&gt; to update.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Hello World!</title>
   <link href="http://rmcgreevy.com/2011/06/10/hello-world.html" />
   <updated>2011-06-10T00:00:00-07:00</updated>
   <id>http://rmcgreevy.com/2011/06/10/hello-world</id>
   <content type="html">&lt;p&gt;Hello World!&lt;/p&gt;
</content>
 </entry>
 
 
</feed>

