Thursday, May 30, 2013

Networking Meets Super-computing: Ethan Waldie

Raspberry Pi Matrix
As part of our Technology Department's emphasis on innovation and project driven student centered learning, I have been encouraged to follow through on my desire to investigate super-computing. We have begun to design and build a low cost super-computing system and will use it to further our understanding about larger scale super-computing technologies. The goal of the project is not to simply build something with more computing power, but rather build something that realistically models the ways in which large scale supercomputers operate. To do this, however, we needed a lot of individual computers - getting our hands on 64 desktops PCs would have been very expensive. It is for this reason that we selected the Raspberry Pi as our technology platform. It is a small, low power, and low cost computer that has all of the networking and computing capabilities that we need for our investigation.

Laboratory Network Layout
                In order to connect the Raspberry Pi’s together and allow them to collectively solve problems, we chose to use something called a Message Passing Interface (MPI). This is an industry standard protocol that dictates how programs running on separate computers can communicate.

Mandelbrot Fractal
                We then were ready to go about prototyping an 8 node super-computer. To test the process, we utilized a problem that could be easily split up in to several parts allowing each node to work independently. We selected a program that uses abstract algebra to compute an image known as the Mandelbrot fractal. We then ran a series of experiments to test one of the most basic theories of super-computing and that is the idea that eventually overtime as you add more and more nodes there will be a point where the advantage of adding more nodes will be negligible.


Performance Increase with Additional Raspberry Pis
                 Eventually we want to work toward building a 64 node system that could be used to demonstrate  the principles of super-computing and allow students to try their hand at programming on a distributed computing cluster. Our intention is to equip the larger system with an array of LED lights that would allow us to visualize exactly what the computer is doing and let us visualize computing in real time.


Watch our video for a more in-depth explanation.