A Raspberry Pi is an inexpensive, single-board computer, about the size of a credit card, that is capable of running Linux and other lightweight operating systems. Its processor is quite similar to those found in smartphones. The Raspberry Pi can be plugged into a monitor and keyboard and used to perform all of the popular functions of a regular desktop computer. Originally developed to make computing cheap and available to as many people as possible, the Raspberry Pi has found its way into Joshua Kiepert’s research project, in the Electrical and Computer Engineering department at Boise State.
Kiepert started his work with the Raspberry Pi (RPi) this spring in response to a need he encountered while working on his doctoral research having to do with data sharing for wireless sensor networks. In the process of developing a novel data sharing system, Kiepert became convinced that the best way to test his ideas was to simulate them on a Beowulf cluster. A Beowulf cluster is a group of computers, usually identical, that are networked together in order to share the task of processing complex problems. (The name Beowulf was chosen by NASA engineers almost 20 years ago for a computer they deemed especially powerful.) At Boise State University, a Beowulf cluster exists in the “MetaGeek Lab” (or Onyx Lab), which is run by the Computer Science Department. The Onyx cluster currently consists of 32 processors, or nodes, each of which has a 3.1GHz Intel processor and 8GB of RAM, allowing substantial parallel processing capability.
However, Kiepert was not completely satisfied with relying on the Onyx Lab. One concern was with the availability of the cluster. What if it was taken offline for some reason in the middle of his research? There would be nothing else on campus that could be used as a substitute. If Onyx became unavailable, Kiepert’s project would be left high and dry. After one such incident, Kiepert realized that, by creating his own cluster, he could ensure that he would always have a method for running his simulations. Additionally, installing software necessary for his research required approval from the administrator when Kiepert used Onyx for testing. Although the admin is always supportive of student research, building his own cluster would allow Kiepert to install software more quickly. So with the help of fellow doctoral students Michael Pook, Vikram Patel, and undergraduate Corey Warner in the Hartman Systems Integration Laboratory, Kiepert decided to build his own Beowulf cluster using RPis. Not only were the RPi’s unique features for controlling simple hardware very useful, but the cost of creating the cluster was incredibly low. The cost for an RPi with an 8GB SD memory card is about $45, making the RPi platform one of the cheapest ways to create a cluster of 32 nodes. For comparison, each node in the Onyx cluster cost somewhere between $1,000 and $1,500. So, for close to the cost of one PC-based node, Kiepert was able to create an entire 32 node RPi cluster that requires less power than a single node in the Onyx cluster.
In spite of the obvious benefits, Kiepert’s approach is not ideal for every application. Perhaps the biggest downside is that an RPi is nowhere near as powerful as a desktop PC. Also, because of the limited processing capability, the RPiCluster will not reliably support multiple users simultaneously. However, Kiepert believes these drawbacks do not have a negative impact on his current research. In fact, he has found the RPiCluster so successful that he now uses it exclusively for his dissertation work. He has found the performance perfectly acceptable for his simulation needs and now has the added benefit of being able to customize the cluster software to fit his exact requirements.
Read the full report on Creating a Raspberry Pi-Based Beowulf Cluster.