Book Image

Raspberry Pi Super Cluster

By : Andrew K. Dennis
Book Image

Raspberry Pi Super Cluster

By: Andrew K. Dennis

Overview of this book

A cluster is a type of parallel/distributed processing system which consists of a collection of interconnected stand-alone computers cooperatively working together. Using Raspberry Pi computers, you can build a two-node parallel computing cluster which enhances performance and availability. This practical, example-oriented guide will teach you how to set up the hardware and operating systems of multiple Raspberry Pi computers to create your own cluster. It will then navigate you through how to install the necessary software to write your own programs such as Hadoop and MPICH before moving on to cover topics such as MapReduce. Throughout this book, you will explore the technology with the help of practical examples and tutorials to help you learn quickly and efficiently. Starting from a pile of hardware, with this book, you will be guided through exciting tutorials that will help you turn your hardware into your own super-computing cluster. You'll start out by learning how to set up your Raspberry Pi cluster's hardware. Following this, you will be taken through how to install the operating system, and you will also be given a taste of what parallel computing is about. With your Raspberry Pi cluster successfully set up, you will then install software such as MPI and Hadoop. Having reviewed some examples and written some programs that explore these two technologies, you will then wrap up with some fun ancillary projects. Finally, you will be provided with useful links to help take your projects to the next step.
Table of Contents (15 chapters)
Raspberry Pi Super Cluster
About the Author
About the Reviewers

Experimenting with MPI and Fortran

The following Fortran program is an adaptation of the hello_rpi.c application from Chapter 3, Parallel Computing – MPI on the Raspberry Pi .

Create a new file called hello_rpi.f in the Fortran directory that you created earlier as follows:

vim /home/pi/Fortran/hello_rpi.f

Next add the following code to the file:

  program hellorpi
  include 'mpif.h'

  integer rpi, totalrpi, ierr

  call MPI_INIT(ierr)
  call MPI_COMM_RANK(MPI_COMM_WORLD, rpi, ierr)
  call MPI_COMM_SIZE(MPI_COMM_WORLD, totalrpi, ierr)

  print *, 'This is Raspberry Pi ',(rpi+1),' of ',totalrpi

  call MPI_FINALIZE(ierr)

You can see this program is very similar to the C one.

To start with, we include the mpif.h header. Following this we declare a number of integer variables to store the current Raspberry Pi executing the program, the total number of RPi's in the cluster, and an additional variable for an error code.

After this are the three MPI calls we made in the hello_rpi.c application...