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.