Buying for a Team? Gift This Course
Wishlisted Wishlist

Please confirm that you want to add Build Your Own Super Computer with Raspberry Pis to your Wishlist.

Add to Wishlist

Build Your Own Super Computer with Raspberry Pis

Create a computer cluster using Raspberry Pi boards - everything from hardware, software, design and networks
4.7 (28 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
473 students enrolled
Created by Ben Heidorn
Last updated 8/2015
$10 $30 67% off
4 days left at this price!
30-Day Money-Back Guarantee
  • 2 hours on-demand video
  • 2 Articles
  • 8 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?

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.

Who is the target audience?
  • 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
Students Who Viewed This Course Also Viewed
What Will I Learn?
Build a super computer using multiple Raspberry Pi 2 B+ computers with Raspbian
Create a working Raspberry Pi from a basic Raspbian installation and customize it to your needs
Create and spool up slave Raspberry Pi nodes in a fraction of the time it takes to set up each one
Manage the Raspberry Pi computer cluster entirely using the Linux command line interface with comfort and ease
Install OpenMPI, compile and run multi-processor programs from the ground up
Learn the fundamentals for writing a multi-threaded program in C
Create a computer network using your home router, or expand to a production-level network with a managed switch
Export and mount drives and communicate between your Raspberry Pis all on the command line
View Curriculum
  • 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.
Curriculum For This Course
Expand All 51 Lectures Collapse All 51 Lectures 02:17:42
1 Lecture 04:46

An introduction to the course with a full rundown of the curriculum and a preview of the cluster you'll build.

Preview 04:46
Assembling Materials
7 Lectures 11:37

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!)

Preview 1 page

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.

Preview 03:27

Download NOOBS with the Raspbian Operating System - we'll use this package to install Raspbian to your Raspberry Pis.

Preview 00:43

Format a Micro SD card so it's prepared for the NOOBS package. Mac OS X version of the lecture.

Preview 02:07

Format a Micro SD card so it's prepared for the NOOBS package. Windows version of the lecture.

Windows - Download and Run SD Formatter to Format SD Cards

Transfer the NOOBS package to the newly formatted Micro SD card. Mac OS X version.

Mac OS X - Install NOOBS to the Newly Formatted SD Card

Download and transfer the NOOBS package to the newly formatted Micro SD card. Windows version.

Windows - Download and Install NOOBS to SD Card
Getting Started with the Master Raspberry Pi Node
8 Lectures 19:07

An overview of plugging in the Raspberry Pi for the first time, including some advice and general pleasantries.

Plugging in a Raspberry Pi for the First Time

An overview of the first boot up, and how to install Raspbian using NOOBS.

Installing Raspbian with NOOBS

The brief follow-up to the Raspbian installation, which leads into the OS configuration.

First Boot after Raspbian OS Installation

Configuring the new Raspberry Pi and preparing it to be a cluster node.

Raspi-Config - Raspberry Pi Starting Configuration

Securely access the Raspberry Pi from afar using SSH. Mac OS X version.

Mac OS X - Using the Terminal to SSH into your Raspberry Pi

Securely access the Raspberry Pi from afar using SSH and the Putty Terminal. Windows version.

Windows - SSH Into Your Raspberry Pi with Putty Terminal

Update and upgrade your Raspbian distribution, and then install all of the necessary packages for running your new cluster.

Updating & Upgrading Raspbian, and Installing the Necessary Packages

A review of all of the Linux commands used in this section.

Linux Command Sheet 1
1 page
Running a Multithreaded Program Using OpenMPI
5 Lectures 11:46
C Program: Call Processes

C Program: Calculate Pi

Test out OpenMPI for the first time by calling multiple processes.

First OpenMPI Test - Call Process Names

The first real Open MPI test - run a multithreaded program to calculate the value of Pi.

Second OpenMPI Test - Calculate the value of Pi

A review of all of the Linux commands used in this section.

Linux Command Sheet 2
1 page
Adding the Second Raspberry Pi to the Cluster
3 Lectures 07:05

Plug in the second Raspberry Pi node and start to build a cluster.

Plugging in the Second Raspberry Pi to the Cluster

An overview of the configuration for the second (and all additional) Raspberry Pi nodes.

Setting up the Configuration on the Second Pi (raspi-config)

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.

Setting Up and Testing the Packages on the Second Pi
Setting Up the Network
5 Lectures 09:58

How to set up a static IP address for your Raspberry Pis directly through the network interface.

Setting Static IP Address on Raspberry Pi

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.

Setting Static IP Addresses with a 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.

SSH Between Raspberry Pi Nodes

Setting up the /etc/hosts file to attribute each Raspberry Pi node to a specific hostname.

Set Up Hostnames

A review of all of the Linux commands used in this section.

Linux Command Sheet 3
1 page
Creating the Common User for All Nodes
3 Lectures 06:28

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.

Creating a Common User for All Nodes

Generate a secure authorized key for the newly created user which allows SSHing into the individual nodes without entering a password each time.

Generating SSH Keys for the Common User

A review of all of the Linux commands used in this section.

Linux Command Sheet 4
1 page
Running a Multithreaded Program on Both Raspberry Pis
4 Lectures 16:59

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.

Creating and Mounting Drives

Now the fun part: run a multithreaded program - the Pi calculation - across multiple Raspberry Pis.

Running a Multithreaded Program Across Multiple Pis

Automatically mount the drive on the master node when the additional nodes are booted up.

Automatically Mounting Drives on Boot-Up

A review of all of the Linux commands used in this section.

Linux Command Sheet 5
1 page
Creating Our "Octo-Pi": Building an Eight Pi Super Computer
4 Lectures 09:30

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.

Materials for 8-Pi Cluster
3 pages

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.

Preview 03:11

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.

Set Up Hosts for All Nodes

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.

Backup Raspberry Pi SD Card Image to Computer - Mac
Spooling Up a New Computing Node
4 Lectures 07:45

Create an additional Raspberry Pi SD card by copying the disk image to a new Micro SD card.

Create New Nodes: Write Raspberry Pi Image to New SD Card

Using the newly cloned image, boot up the new Raspberry Pi node and update its hostname.

Create New Nodes: Update 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.

Setting Static IP Address on Additional Raspberry Pi Nodes

A review of all of the Linux commands used in this section.

Linux Command Sheet 6
1 page
3 More Sections
About the Instructor
4.7 Average rating
27 Reviews
473 Students
1 Course
Computer Science Graduate Student

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.

Report Abuse