
An introduction to the course with a full rundown of the curriculum and a preview of the cluster you'll build.
A PDF with all of the materials needed to build a two-node Raspberry Pi cluster, the starting point for scaling up to an eight-Pi cluster (and larger!)
An overview and introduction to all of the materials needed to build a two-board Raspberry Pi cluster - the first step towards building a cluster of any size.
Download NOOBS with the Raspbian Operating System - we'll use this package to install Raspbian to your Raspberry Pis.
Format a Micro SD card so it's prepared for the NOOBS package. Mac OS X version of the lecture.
Format a Micro SD card so it's prepared for the NOOBS package. Windows version of the lecture.
Transfer the NOOBS package to the newly formatted Micro SD card. Mac OS X version.
Download and transfer the NOOBS package to the newly formatted Micro SD card. Windows version.
An overview of plugging in the Raspberry Pi for the first time, including some advice and general pleasantries.
An overview of the first boot up, and how to install Raspbian using NOOBS.
The brief follow-up to the Raspbian installation, which leads into the OS configuration.
Configuring the new Raspberry Pi and preparing it to be a cluster node.
Securely access the Raspberry Pi from afar using SSH. Mac OS X version.
Securely access the Raspberry Pi from afar using SSH and the Putty Terminal. Windows version.
Update and upgrade your Raspbian distribution, and then install all of the necessary packages for running your new cluster.
A review of all of the Linux commands used in this section.
Test out OpenMPI for the first time by calling multiple processes.
The first real Open MPI test - run a multithreaded program to calculate the value of Pi.
A review of all of the Linux commands used in this section.
Plug in the second Raspberry Pi node and start to build a cluster.
An overview of the configuration for the second (and all additional) Raspberry Pi nodes.
We'll update, upgrade and install all of the packages that we installed the first time, but this time with a bit more brevity. This setup prepares our slave node which will be cloned to make our army of Raspberry Pis.
How to set up a static IP address for your Raspberry Pis directly through the network interface.
An example of how to set the static IP addresses for a router that automatically sets dynamic IP addresses. There are multiple methods for setting the static IP address, depending on your router model and configuration - this is a way to set the static IP address for the Medialink router.
Building on the earlier lecture about securely accessing your Raspberry Pis from an external computer, you can also switch between each Raspberry Pi node remotely.
Setting up the /etc/hosts file to attribute each Raspberry Pi node to a specific hostname.
A review of all of the Linux commands used in this section.
Create a specific user on all Raspberry Pi nodes with an identical user ID, which allows us to automate logging into multiple nodes and running multithreaded programs across multiple nodes.
Generate a secure authorized key for the newly created user which allows SSHing into the individual nodes without entering a password each time.
A review of all of the Linux commands used in this section.
Create a new folder on the master Raspberry Pi node to export and mount a common drive across all nodes in the cluster in order to run a multithreaded program across multiple nodes.
Now the fun part: run a multithreaded program - the Pi calculation - across multiple Raspberry Pis.
Automatically mount the drive on the master node when the additional nodes are booted up.
A review of all of the Linux commands used in this section.
A PDF of all of the materials needed to build an eight-node Raspberry Pi cluster, as well as the materials needed to add a single additional node to the cluster, and additional optional materials.
An overview of the materials used to build an eight-node Raspberry Pi cluster - a platform for building an "octo-pi" that can be used to expand to clusters of any size.
Update the /etc/hosts file to reflect all of the Raspberry Pi nodes planned for the cluster prior to backing up the SD card and creating clones.
Using the command line, we'll copy the existing secondary Raspberry Pi disk image to a computer as a backup and to create cloned Raspberry Pi nodes to expand the cluster.
Create an additional Raspberry Pi SD card by copying the disk image to a new Micro SD card.
Using the newly cloned image, boot up the new Raspberry Pi node and update its hostname.
Update the newly cloned Raspberry Pi's static IP address to distinguish it from the other nodes and match the IP address set in the /etc/hosts file.
A review of all of the Linux commands used in this section.
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.