O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Building a BeagleBone Black Super Cluster

Book Description

Build and configure your own parallel computing Beowulf cluster using BeagleBone Black ARM systems

In Detail

BeagleBone Black is a low-cost, community-supported development platform for developers and hobbyists. It boots Linux in under 10 seconds and gets started on development in less than five minutes with just a single USB cable. The BeagleBone Black ARM system is a perfect candidate for building a Beowulf cluster.

The book starts with a short introduction to the computational power of the required computers, and will take you through the hardware and key features of the BeagleBone Black ARM system. You will then be introduced to the ports and control buttons of the board. The real-life examples in the book will show you how to configure and compile the software packets, and you will be shown how to write your own cluster software and utilize important mathematical libraries. The book concludes with programming and simulation examples using sophisticated physics simulation libraries as typical applications. This book will be a very helpful guide to get started in the world of super computing.

What You Will Learn

  • Use the minimal configuration necessary to control your BeagleBone via a network
  • Build your own scalable server rack and low-cost power supply
  • Set up the network backbone and configure the boards for cluster interconnection
  • Use FTP, Samba, or SCP for simple file transfers
  • Configure the OpenMPI Message Passing Interface for cluster communication and ScaLAPACK for distributed calculation of mathematical problems
  • Develop your own simulation software and visualize your data using a highly sophisticated physics simulation package

Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Table of Contents

  1. Building a BeagleBone Black Super Cluster
    1. Table of Contents
    2. Building a BeagleBone Black Super Cluster
    3. Credits
    4. About the Author
    5. About the Reviewers
    6. www.PacktPub.com
      1. Support files, eBooks, discount offers, and more
        1. Why subscribe?
        2. Free access for Packt account holders
    7. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Downloading the example code
        2. Errata
        3. Piracy
        4. Questions
    8. 1. BeagleBone Black System Board
      1. Introducing the hardware
        1. The central processing unit
        2. I/O interfaces and control buttons
        3. The onboard memory and flash storage
      2. The storage memory partition structure
      3. The boot-selection button
        1. Recovering a boot failure
      4. Operating systems
        1. ARMhf images
        2. The Ubuntu 12.04 ARMhf Linux system
      5. Software programming
        1. The open source philosophy
        2. Software modularity and dependencies
        3. The source code and programming languages
        4. Low-level programming
        5. High-level programming
        6. The compiler toolchain
      6. Summary
    9. 2. Building a Beowulf Cluster
      1. Minimal configuration and optional equipment
        1. Minimal configuration
        2. Using a USB keyboard
        3. Using the HDMI adapter and monitor
      2. Building a scalable board-mounting system
        1. Board-holding rods
        2. Board spacers
        3. Cooling system
      3. Using a low-cost power source
        1. Power requirements
        2. Power cables
        3. Modifying the ATX power supply
      4. Setting up the network backbone
      5. The network topology
        1. The RJ45 network cables
        2. The Ethernet multiport switch
      6. The storage memory
        1. Installing images on microSD cards
        2. The swap space on an SD card
        3. The external network storage
      7. Summary
    10. 3. Operating System Setup and Configuration
      1. The Linux host environment
      2. Creating the master node's installation image
        1. Bootable SD cards and partition tables
        2. Downloading Ubuntu for ARM
        3. Writing the installation image to the microSD card
        4. Adapting the image size to the card space
      3. Installing the operating system on the master node
        1. Configuring the network interface
        2. Flashing the internal eMMC
      4. The external network storage
      5. Installing and configuring the slave nodes
        1. Creating the slave node's installation image
        2. Configuring the slave node's network interface
        3. Flashing the internal eMMC
        4. Creating SSH login keys
      6. A crash course in developing applications
        1. Installing development tools
        2. First test program
      7. Transferring files from and to the BeagleBone master node
        1. The FTP server
        2. File transfer with WinSCP
      8. Summary
    11. 4. Parallel Computing with OpenMPI and ScaLAPACK
      1. MPI – Message Passing Interface
        1. The process control
        2. The software structure
      2. Installing and configuring OpenMPI
        1. Downloading and installing OpenMPI packages
        2. Configuring the default hostfile
        3. Creating a test application
          1. Simple node synchronization
          2. Passing values between nodes
        4. ScaLAPACK and linear mathematical problems
      3. Installing and configuring ScaLAPACK
        1. Solving a positive symmetric tridiagonal system with ScaLAPACK
          1. Understanding the code
          2. Understanding the mathematics behind the code
      4. Summary
    12. 5. Advanced Solving of General Equation Systems
      1. PETSc – a toolkit for scientific computation
        1. Installing graphical libraries
        2. Downloading and configuring PETSc
        3. Compiling PETSc
        4. Installing PETSc on your cluster nodes
        5. PETSc example programs
          1. Compiling and running PETSc programs
          2. Simple vector math
          3. Solving linear equations with SuperLU_DIST
          4. Direct solvers versus iterative solvers
          5. Solving nonlinear equations with SNES
      2. SLEPc – a library for Eigenvalue problems
        1. Downloading and configuring SLEPc
        2. Compiling SLEPc
        3. A SLEPc example program
          1. Compiling a SLEPc program
          2. Demonstrating the cluster's scaling ability
      3. Summary
    13. 6. Scientific and Technological Examples of Parallel Computing
      1. Calculations on cloud-distributed mesh grids
        1. The triangulation of a body mesh
        2. Finite elements
          1. A practical example – the temperature gradient
      2. deal.II – a powerful Physics calculation library
        1. Obtaining deal.II
        2. Configuring deal.II
        3. Building deal.II
      3. Example programs
        1. Using makefiles
        2. First deal.II example – triangulation
          1. Explaining the code
        3. Dimensional independent code
        4. Iterative triangulation refinement
      4. Parallel solution of elastic equations
      5. The visualization of calculated data
      6. Summary
    14. A. References
    15. Index