Build Your Own Super Computer with Raspberry Pis

Create a computer cluster using Raspberry Pi boards - everything from hardware, software, design and networks
4.8 (25 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.
439 students enrolled
Instructed by Ben Heidorn IT & Software / Hardware
50% off
Take This Course
  • Lectures 51
  • Length 2.5 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 8/2015 English

Course Description

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.

What are the requirements?

  • 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.

What am I going to get from this course?

  • 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

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

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction

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

Section 2: Assembling Materials
1 page

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.

Section 3: Getting Started with the Master Raspberry Pi Node

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.

1 page

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

Section 4: Running a Multithreaded Program Using OpenMPI
C Program: Call Processes
C Program: Calculate Pi

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.

1 page

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

Section 5: Adding the Second Raspberry Pi to the Cluster

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.

Section 6: Setting Up the Network

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.

1 page

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

Section 7: Creating the Common User for All Nodes

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.

1 page

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

Section 8: Running a Multithreaded Program on Both Raspberry Pis

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.

1 page

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

Section 9: Creating Our "Octo-Pi": Building an Eight Pi Super Computer
3 pages

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.

Section 10: Spooling Up a New Computing Node

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.

1 page

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

Section 11: Constructing the Complete Raspberry Pi Cluster

A full overview of the physical design and setup of the Raspberry Pi octo-pi design in its final case.


A method of testing each of the Raspberry Pis in the cluster within their new housing and performing the updates in the section "Spooling Up a New Computing Node".

Section 12: Connecting the Raspberry Pis to a Network Switch

A brief introduction to installing the new switch software and setting up the switch to work with the router.


A visual overview of plugging in the switch to the router and how to connect your PC to the switch.


An overview of hooking up the Raspberry Pis to the switch and testing their connection one by one.

Section 13: Running the Complete Raspberry Pi Supercomputer

A demonstration of the fully-completed Raspberry Pi super computer, including every connection and design decision that goes into the final cluster.


The moment of truth: running a multithreaded program - the Pi calculation - across all 32 cores available in the eight-node Raspberry Pi cluster.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Ben Heidorn, 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.

Ready to start learning?
Take This Course