Build Your Own Super Computer with Raspberry Pis
- Students will need to own a laptop or desktop with an internet connection and an SD Card Reader / Writer
- Materials for this class can vary based on your ambitions, but the minimum required materials are: 2 or more Raspberry Pi computers, 2 or more ethernet cables, a router or network switch, 2 or more micro-USB power supplies (5 Volt, 1.5 to 2 Amps), a wired USB keyboard, 2 or more micro SD cards (8 or more GB), a monitor with an HDMI input, and an HDMI cable.
Have you ever wanted to build your own super computer? Do you want to write programs that can run simultaneously on as many computing nodes as you wish? Do you want to learn what it takes to combine the processing powers of two, four, eight or more Raspberry Pis and run simulations at a fraction of the time and cost of running on a mainframe or even a high-end desktop computer?
If you've answered yes to any of these questions, then this course is for you. In this step-by-step series of video lectures, you'll learn how to set up your own computer cluster using cheap, affordable computers - and it doesn't get any more affordable than the Raspberry Pi.
Whether you're a Raspberry Pi enthusiast, a scientific researcher in need of cheap, expandable processing power, a programmer looking to expand their horizons with multithreaded algorithms, or a student looking to learn more about using Linux to build computing clusters, then you'll find plenty of value in this class as you build your own Raspberry Pi super computer.
These lectures are specially tailored to the Raspberry Pi 2 B+ board using Raspbian (a distribution based on Debian), which is a good place to start if you're unfamiliar with the Linux command line or building computer networks. If you are comfortable with the various flavors of Linux, you can use this course as a guideline for what it takes to build your own cluster using a different distribution.
Lastly, this class is a "living course", which means as we receive feedback and requests for specialized tutorials or updates, we'll continually update and add more to improve the quality and content of the course.
- This course is designed for anyone with a zeal for learning how computers work - especially with an interest in creating your own computer cluster
- You should be comfortable using a Linux command line, but you don't have to be knowledgeable - every single step of the way is recorded and documented to follow along easily
- If you love Raspberry Pis and own more than one, building a computer cluster is a fun way to learn how to get them to interact together and use all of their computer processing power combined
- An Introduction to the Course04:46
- Materials for 2-Pi Cluster1 page
- An Overview of the Materials to Build a 2-Pi Cluster03:27
- Mac OS X - Downloading the NOOBS Package00:43
- Mac OS X - Download and Run SD Formatter 4.0 to Format New SD Cards02:07
- Windows - Download and Run SD Formatter to Format SD Cards02:20
- Mac OS X - Install NOOBS to the Newly Formatted SD Card00:38
- Windows - Download and Install NOOBS to SD Card02:22
- Plugging in a Raspberry Pi for the First Time06:05
- Installing Raspbian with NOOBS01:20
- First Boot after Raspbian OS Installation00:59
- Raspi-Config - Raspberry Pi Starting Configuration01:59
- Mac OS X - Using the Terminal to SSH into your Raspberry Pi01:40
- Windows - SSH Into Your Raspberry Pi with Putty Terminal02:12
- Updating & Upgrading Raspbian, and Installing the Necessary Packages04:52
- Linux Command Sheet 11 page
- C Program: Call Processes00:21
- C Program: Calculate Pi00:22
- First OpenMPI Test - Call Process Names04:38
- Second OpenMPI Test - Calculate the value of Pi06:27
- Linux Command Sheet 21 page
- Plugging in the Second Raspberry Pi to the Cluster02:26
- Setting up the Configuration on the Second Pi (raspi-config)01:39
- Setting Up and Testing the Packages on the Second Pi03:00
- Setting Static IP Address on Raspberry Pi02:53
- Setting Static IP Addresses with a Router02:57
- SSH Between Raspberry Pi Nodes01:58
- Set Up Hostnames02:10
- Linux Command Sheet 31 page
- Creating a Common User for All Nodes02:28
- Generating SSH Keys for the Common User04:00
- Linux Command Sheet 41 page
- Creating and Mounting Drives06:32
- Running a Multithreaded Program Across Multiple Pis05:07
- Automatically Mounting Drives on Boot-Up05:20
- Linux Command Sheet 51 page
- Materials for 8-Pi Cluster3 pages
- An Overview of the 8-Pi Cluster Materials03:11
- Set Up Hosts for All Nodes02:14
- Backup Raspberry Pi SD Card Image to Computer - Mac04:05
- Create New Nodes: Write Raspberry Pi Image to New SD Card03:28
- Create New Nodes: Update Hostname02:26
- Setting Static IP Address on Additional Raspberry Pi Nodes01:51
- Linux Command Sheet 61 page
I am a Computer Science graduate student starting at Penn State University in Fall 2015. I previously worked as a software developer and development team leader at a start-up and received my Bachelor of Science in Physics in 2012. Primarily self-taught in programming, I have 7 years of experience developing desktop software, web and mobile applications, and my primary motivator is a lifelong love of learning, building programs, and tinkering with innovative hardware and software.