Book Image

Building a BeagleBone Black Super Cluster

By : Andreas J Reichel
Book Image

Building a BeagleBone Black Super Cluster

By: Andreas J Reichel

Overview of this book

Table of Contents (14 chapters)
Building a BeagleBone Black Super Cluster
About the Author
About the Reviewers

Introducing the hardware

The BBB board is a complete, low-cost, energy-efficient, multipurpose development system with onboard Ethernet, flash storage, video controller, and much more. Its primary goal is to offer a true open hardware and community-supported embedded computer for developers and hobbyists. Compared to low-level embedded systems such as Arduino, BBB is a fully functional standalone PC that has the size of a credit card.

Without any expansion cards, the power required by a BBB is around 2.5 watts, which is 5 percent of the power required by a typical light bulb. Compared to a common Pentium III computer with the same clock frequency of 1 GHz, it only needs about 2.5 percent of its power requirement, and even has a better graphics card onboard, but has slightly less memory.

The central processing unit

In general, the power of a computer is defined by the speed of its components. Most critical are the main memory, its bus interconnection, and the central processing unit (CPU). The slowest interconnecting path between faster components is called the bottleneck and defines the overall system's performance. On modern CPUs, the memory interface is on-die, which means that it is integrated into the silicon chip. This offers maximum performance and avoids any bottlenecks between the CPU and the main memory. This is also the case with BBB.

BBB's heart is the Sitara ™ ARM ® Cortex-A8 32-bit processor from Texas Instruments with a programmable clock driven at 1 GHz by factory settings. Interestingly, on some of my boards, the XAM3359AZCZ100 version of the CPU is used, which has a maximum frequency of 800 MHz according to TI. Despite this, it is driven at 1000 MHz on BBB without any problems. According to the manual, it was changed to XAM3358 in the board revision C. The architecture is RISC, which means that the CPU only needs one clock cycle to execute a command. This makes the Cortex-A8 faster than a typical Intel P3 with the same clock frequency if one focuses on standard instructions. Also, the CPU supports the NEON instruction set, which gives BBB a great advantage over Raspberry Pi.

Under full processor utilization, the board gets quite warm. This is not a problem if it is used as a standalone board. However, if there is more than one board in a small area or even if the boards are stacked on top of each other, they will need some cooling in order to avoid overheating. An example of a cheap cooling system is given in Chapter 2, Building a Beowulf Cluster.

The figure in the next section shows us the internal CPU architecture that also provides very sophisticated features such as a touchscreen controller and a 3D graphics acceleration on-die.

I/O interfaces and control buttons

The actual purpose of BBB was to provide a development platform that is easy to program and can be used to control or regulate other hardware. In other words, it must be able to measure and output signals that are easy to interface in the hardware and software. To provide this capability, two 46-pin headers are available for general-purpose I/O (GPIO). These pins use a 3.3 volt logic for I/O. A higher voltage level might result in damaging the CPU. The board also provides two programmable real-time units (PRUs) for time-critical applications. Please refer to the hardware manual for a detailed description. In this book, no I/O operation is described, as they are not used in the BBB cluster.

Besides general-purpose I/O, the board also provides the following:

  • A RJ45 network jack

  • A 5V power jack

  • A USB client

  • A USB host port

  • A HDMI jack for video and audio support

  • A serial port header that is useable for debugging

The system can be powered by either the 5V power jack or the USB client port using the preinstalled operating system. However, using the operating system as described in this book, we can see that only the 5V power jack will work. This means that the boards in the final cluster configuration cannot be powered up using a USB power supply. Please refer to Chapter 2, Building a Beowulf Cluster, for information on how to build a cheap and efficient power supply. This book only describes the usage of the RJ45 network interface for installation, configuration, and user control via SSH. Thus, it is not necessary to make use of the HDMI port in cluster applications. The onboard network controller works with 10/100 megabit/s.

The internal architecture of BBB's CPU

The following image and list gives you an overview of the important onboard ports, plugs, and control buttons; a indicates a 5V power jack, b indicates an RJ45 Ethernet port, c indicates a general-purpose I/O with serial header on its right, d indicates a USB host port, e indicates status LEDs, f indicates the reset button, g indicates the power button, h indicates the CPU, i indicates the boot-selection button, j indicates a USB client port, k indicates the microSD slot, and l indicates the mini HDMI port:

While the power and reset buttons are used in the same manner as they are used on PCs, the boot-selection button is used to select the boot sector located in either the internal ROM or on the external microSD card. This function is very useful in order to recover a misconfigured or non-bootable system.

The onboard memory and flash storage

BBB is equipped with 512 MB of DDR3 RAM, which possesses a higher bandwidth compared to the competitor, which is Raspberry Pi, which uses DDR2 RAM. It is not possible to extend the physical RAM on a single BBB; however, this is not important when performing cloud computing because this makes use of distributed memory.

For nonvolatile storage, 2 or 4 GB of 8-bit eMMC flash memory—depending on your board revision—is available onboard. This is enough to install all the required software along with the operating system in order to perform the highly sophisticated computations described in this book. Any dynamic libraries will be installed in a common network shared folder. The storage capacity can also be extended using the free microSD card slot that provides more virtual memory or additional storage capacity. You should refer to the documentation of your specific board version to see supported microSD card sizes. In this book, an additional card with 16 GB size will be used for the master-node board, which will be explained in Chapter 3, Operating System Setup and Configuration.