Tuesday, September 18, 2012

Time for some Pi

I ran across a great article in Ars Technica about Professor Simon Cox at the University of Southampton, and his 6 year old son, who built a 64-node parallel machine out of Raspberry Pi devices and a rack made of Legos.  He gives step-by-step instructions on how to set things up, and this seemed like a perfect opportunity to do something cool.  If you aren't familiar with the philosophy behind Raspberry Pi, it's worth the read, and is a noble cause.

Professor Cox's 64-node configuration costs a little more than I care to spend, but I figure an 8-node environment would be a good balance between reasonable parallelism and cost.  I started with the instructions above, and here is what I found ...

I ordered 8 Raspberry PI model B boards from MCM Electronics at $35 apiece.  2 days later (today), they arrived.









We (me and my son Neil) picked up a wireless keyboard, cell phone mini-USB power supply, and 16 GB SD card for another $81, and began an installation.

I downloaded the wheezy-raspian distribution, dropped it on my new SD card, and everything worked per the instructions.  The first-boot was magical - everything came up as intended, and I got into the initial config tool.  Make the following config changes:

  • Expand the root file system to use the whole SD card
  • Set the user password
  • Enable SSH
  • Boot to the user shell
  • Install updates

Being able to reach the web from this little machine and see it all on my TV in the living room was great.

After re-booting, the system came up to a point, and then did an online config of the root file system.  This took a relatively long time - several minutes, so we had to be patient.  Eventually everything came up, and we saw the desktop:



We could surf the web, or do anything that a regular machine can do.  It looks like the system takes about 1.6 GB of space, since a check of the root file system showed about 90% free.  None of this was blazing fast.  You never forget that this is a configuration with an ARM1176JZF-S 700 MHz processor, VideoCore IV GPU, and 256 Megabytes of RAM.  One thing that may be affecting the performance of this setup is the speed of the SD card.  We used a PNY card with no particular claims for speed, so who knows.

The performance of the individual nodes won't be a big deal if we can get a parallel configuration right, and apply it to some task that lends itself to parallel solutions.

This was a successful and satisfying first day.  It was fun to see one of these little machines take it's first step.  Next we'll start getting the parallel environment in place.


No comments:

Post a Comment