A Closer Look at ParallellaFollow article
As Parallella prototypes start to ship this post takes a look in more detail at what this potentially game changing single board computer provides and a few potential applications.
The Parallella project is the brainchild of Adapteva, a semiconductor company that has developed an incredibly energy-efficient microprocessor architecture named Epiphany that is capable of scaling to thousands of cores on a single chip.
The Epiphany chip is currently sampling in 16 and 64 core versions and provides floating-point RISC processors that can be clocked at up to 1GHz, each complete with a small amount of local memory and meshed together by a low-latency on-chip network.
The aim of the project is to make parallel computing accessible to everyone by providing a low cost many-core platform that is based on Epiphany and supported by open source development tools, comprehensive documentation and community resources.
Low power, heterogeneous computing
Epiphany is designed for use as a co-processor to ARM and Intel etc. hosts in a heterogeneous computing system. Such systems, with mixed types of computational units, are nothing new and just about any modern workstation, tablet or smartphone is equipped with a GPU in addition to a CPU. Without which it would be impossible, or at least not cost effective or practical, to achieve the required graphics performance with use of a general purpose processor alone.
Where Epiphany differs from most high-performance co-processors such as GPUs is that it is truly C-programmable and not application-specific. GPUs are extremely powerful and indeed are used in some supercomputers, but tend to be SIMD rather than MIMD and to be somewhat difficult to program and suited to a narrow selection of tasks outside of graphics processing.
High performance GPUs can also be power hungry, whereas the power consumption of a 64-core Epiphany chip is less than 2 watts, which means that it is also well suited to embedded applications.
The Parallella project was funded via Kickstarter, raising just short of $900,000 and with those pledging $99 or more being rewarded with at least one board with a 16-core Epiphany device
Having met and exceeded the funding goal on 27th October 2012 the project is now working to a challenging delivery timescale. With the first prototype boards having gone out on 31st December 2012, the beta version of the board due 28th February and release 1.0 to ship 31st May.
The Parallella platform
Parallella uses a Xilinx Zynq SoC to provide a dual-core ARM host along with programmable logic where the interface to the Epiphany chip is implemented. The board will also have 1GB RAM, SD storage, Gigabit Ethernet, USB, HDMI, plenty of GPIO and support for daughterboards.
Current prototypes make use of an off-the-shelf Zedboard development kit combined with an Epiphany add-on, but the Parallella beta and release 1.0 versions will be credit card sized.
The finished board will be an open source hardware design and documentation for the Epiphany architecture is provided without the need for non-disclosure agreements.
Linux is the operating system of choice and with Ubuntu as the supported distribution, but since open source drivers will be provided it should be possible to develop support for FreeBSD, Android or just about any other operating system with an ARM port.
The Epiphany SDK is based on gcc 4.7.0 and the newlib C library, with multi-core debugging and instruction level simulation of a single core. Embecosm are the partner responsible for developing this and they have recently put the sources onto GitHub, where an issue tracker can also be found.
Pre-packaged versions of the SDK that include a version of the Eclipse IDE with support for multi-core development have been made available to certain backers, and these will be made freely available to all in due course.
Another partner, Brown Deer Technology, has developed a fully open source OpenCL SDK that can be used to simplify the creation of applications which use both the ARM and Epiphany cores.
Working with those developing key languages and frameworks that benefit from highly parallel computing architectures will be essential to making Parallella a success, and with this in mind the project is also establishing links with other communities, such as Erlang.
A face detection demo
The Parallella forums launched a little over three weeks ago and the uses to which backers have said they will put their hardware include software-defined radio (SDR), volunteer computing, computer vision, sound and video processing, neural networks and physical simulations.
Given the combination of low energy consumption and high performance, Parallella will be particularly well suited to some of the more challenging embedded applications, such as SDR and computer vision on mobile device power budgets. But it could equally be clustered to enable the creation of desktop and extremely energy-efficient high-performance computing (HPC) systems.
Some backers stated that they simply intend to use Parallella as a platform for learning and this is every bit as important as the aforementioned uses. With closing the knowledge gap in parallel programming being the primary objective of the project, since if we achieve this who knows what will follow!
— Andrew Back, Community Lead for the Parallella Project
Top image: Adapteva's Roman Trogan and Yaniv Sapir with the first batch of prototypes, the two bottom-left fitted with Epiphany daughterboards.