Build Your Own Super Computer with Raspberry Pis
4.4 (34 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.
595 students enrolled
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.4 (34 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.
595 students enrolled
Created by Ben Heidorn
Last updated 4/2016
English
Current price: $10 Original price: $35 Discount: 71% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 2 hours on-demand video
  • 2 Articles
  • 8 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
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
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.
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.

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
Curriculum For This Course
51 Lectures
02:17:42
+
Introduction
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
02:20

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
00:38

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

Windows - Download and Install NOOBS to SD Card
02:22
+
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
06:05

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

Installing Raspbian with NOOBS
01:20

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

First Boot after Raspbian OS Installation
00:59

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

Raspi-Config - Raspberry Pi Starting Configuration
01:59

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
01:40

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

Windows - SSH Into Your Raspberry Pi with Putty Terminal
02:12

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
04:52

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
00:20

C Program: Calculate Pi
00:20

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

First OpenMPI Test - Call Process Names
04:38

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

Second OpenMPI Test - Calculate the value of Pi
06:27

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
02:26

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

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

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
03:00
+
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
02:53

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
02:57

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
01:58

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

Set Up Hostnames
02:10

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
02:28

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
04:00

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
06:32

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

Running a Multithreaded Program Across Multiple Pis
05:07

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

Automatically Mounting Drives on Boot-Up
05:20

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
02:14

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
04:05
+
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
03:28

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

Create New Nodes: Update Hostname
02:26

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
01:51

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

Linux Command Sheet 6
1 page
3 More Sections
About the Instructor
Ben Heidorn
4.4 Average rating
34 Reviews
595 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.