Build Your Own Super Computer with Raspberry Pis

Create a computer cluster using Raspberry Pi boards - everything from hardware, software, design and networks
Rating: 4.3 out of 5 (354 ratings)
26,145 students
Build Your Own Super Computer with Raspberry Pis
Rating: 4.3 out of 5 (354 ratings)
26,145 students
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

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 this course is for:
  • 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
Course content
13 sections • 51 lectures • 2h 17m total length
  • An Introduction to the Course
    04:46
  • Materials for 2-Pi Cluster
    1 page
  • An Overview of the Materials to Build a 2-Pi Cluster
    03:27
  • Mac OS X - Downloading the NOOBS Package
    00:43
  • Mac OS X - Download and Run SD Formatter 4.0 to Format New SD Cards
    02:07
  • Windows - Download and Run SD Formatter to Format SD Cards
    02:20
  • Mac OS X - Install NOOBS to the Newly Formatted SD Card
    00:38
  • Windows - Download and Install NOOBS to SD Card
    02:22
  • Plugging in a Raspberry Pi for the First Time
    06:05
  • Installing Raspbian with NOOBS
    01:20
  • First Boot after Raspbian OS Installation
    00:59
  • Raspi-Config - Raspberry Pi Starting Configuration
    01:59
  • Mac OS X - Using the Terminal to SSH into your Raspberry Pi
    01:40
  • Windows - SSH Into Your Raspberry Pi with Putty Terminal
    02:12
  • Updating & Upgrading Raspbian, and Installing the Necessary Packages
    04:52
  • Linux Command Sheet 1
    1 page
  • C Program: Call Processes
    00:21
  • C Program: Calculate Pi
    00:22
  • First OpenMPI Test - Call Process Names
    04:38
  • Second OpenMPI Test - Calculate the value of Pi
    06:27
  • Linux Command Sheet 2
    1 page
  • Plugging in the Second Raspberry Pi to the Cluster
    02:26
  • Setting up the Configuration on the Second Pi (raspi-config)
    01:39
  • Setting Up and Testing the Packages on the Second Pi
    03:00
  • Setting Static IP Address on Raspberry Pi
    02:53
  • Setting Static IP Addresses with a Router
    02:57
  • SSH Between Raspberry Pi Nodes
    01:58
  • Set Up Hostnames
    02:10
  • Linux Command Sheet 3
    1 page
  • Creating a Common User for All Nodes
    02:28
  • Generating SSH Keys for the Common User
    04:00
  • Linux Command Sheet 4
    1 page
  • Creating and Mounting Drives
    06:32
  • Running a Multithreaded Program Across Multiple Pis
    05:07
  • Automatically Mounting Drives on Boot-Up
    05:20
  • Linux Command Sheet 5
    1 page
  • Materials for 8-Pi Cluster
    3 pages
  • An Overview of the 8-Pi Cluster Materials
    03:11
  • Set Up Hosts for All Nodes
    02:14
  • Backup Raspberry Pi SD Card Image to Computer - Mac
    04:05
  • Create New Nodes: Write Raspberry Pi Image to New SD Card
    03:28
  • Create New Nodes: Update Hostname
    02:26
  • Setting Static IP Address on Additional Raspberry Pi Nodes
    01:51
  • Linux Command Sheet 6
    1 page

Instructor
Computer Science Graduate Student
Ben Heidorn
  • 4.3 Instructor Rating
  • 354 Reviews
  • 26,145 Students
  • 1 Course

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.