Skip to main content

Setting up, booting and testing an 18-core (2x ARM+ 16x Epiphany) Parallella board.

The Parallella computer started shipping to Kickstarter backers in December and I was excited to receive a board late last week. In fact, excited is a bit of an understatement — after the DHL tracking website showed that it had landed in the UK I was constantly hitting refresh!

What follows is a quick run through setting the board up, booting and performing a simple test to confirm operation of the 16-core floating-point accelerator.

For an introduction to Parallella see the project website and Kickstarter page.

Unboxing and setting up

The board came supplied with an accessory bundle comprising of:

  • Heatsink for the Zynq SoC

  • 5V power supply

  • 16GB MicroSDHC and SD adapter

  • Micro-HDMI to HDMI cable

  • Micro-USB to USB A male cable

  • Micro-USB to USB A female cable

The MicroSD card was pre-loaded with an installation of the Linaro build of Ubuntu 12.11. For those not in the know, Linaro is a not-for-profit organisation which sponsors the development of Linux and key associated open source projects on the ARM architecture.

The Parallella board can drive a HDMI display, but my preference is generally to run boards “headless” and with a serial hardware console. The above photo shows a laptop cabled to the board UART, via a USB adapter configured for 3.3v logic, and using Minicom for terminal emulation.

I didn't attach the supplied self-adhesive heatsink to the Zynq chip straight away, as when I house it an enclosure I may decide to use a different one. So in the meantime I positioned a small DC fan to ensure that plenty of air was being blown across the board; it may only consume circa 5 watts, but it's both very small and densely populated, and it's important to provide adequate cooling.

Booting and logging in

With the MicroSD card inserted, serial console attached and network connected, I plugged in the power supply and the boot process started to be output to Minicom. Here we can first see the bootloader, U-boot, announce itself, followed by messages concerning RAM and SD storage etc.

We next see a message about reading the file parallella.bit.bin — the bitstream that is used to configure the FPGA. By default this implements an eLink interface that enables the ARM host to communicate with the floating-point accelerator, along with a HDMI controller. However, for headless use it is possible to generate a replacement bitstream without HDMI support, which reduces power consumption and frees up space in the FPGA for implementing other peripherals.

Once the boot process completes the console drops into a root shell. The default network configuration uses DHCP and the IP address can be determined by typing ifconfig eth0. Alternatively, you can find out what address has been leased by checking your router.

Matrix multiplication test

Once I knew the IP address of the board I could log in via SSH.

In the home directory of the linaro user account can be found a sub-directory with example programs that make use of the floating-point accelerator. Running the test.sh shell script invokes the matrix multiplication program, which times how long it takes to perform the same calculation on the Epiphany chip and using all 16x cores, and then on the ARM host. As can be seen, using the Epiphany gives a speedup of approaching 12x!

Andrew Back, Parallella Community Manager

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.