Back in January of last year I wrote about an ambitious new project that set out to build an affordable, open parallel computing platform, which some three months previous had completed a successful Kickstarter campaign and raised almost $900,000 in order to fund its development.
A great deal has happened since then and unfortunately there were, as is often the case with hardware projects, delays. But then, developing a tiny, high performance computer with groundbreaking energy-efficiency and a $99 price tag was never going to be easy — and particularly with a core team of just a handful of people and a semiconductor start-up to run.
However, I'm pleased to be able to report that backers of the Kickstarter campaign have now all received their rewards and the Parallella board has finally gone into general availability, with international distribution also having recently been put in place. And I think (hope!) that few would argue that what has been achieved over the past 18 months is nothing short of remarkable.
That we now have a low-cost open hardware computing platform equipped with a many-core processor — for which comprehensive documentation is freely available, along with a GNU-based SDK — is a huge step forward. And that this platform has an active and steadily growing community which is rolling up its sleeves and learning how to think parallel, is incredibly exciting.
Before we look to the future, first a little history.
Not all plain sailing
It's fair to say that the Kickstarter campaign was a roller coaster ride in itself and for a little while it looked as though the target might not be met, but fortunately there was a surge in support towards the end and the target was cleared by almost $150,000.
Just a few months after the close of the campaign the first prototypes went out to those who had pledged at higher levels, and in February 2013 the PCB placement for Revision 0 of the final form factor board was published along with a preliminary hardware reference manual.
That same month the complete SDK — GNU toolchain plus Epiphany driver and library — sources were published. The rev 0 board design then went into manufacture in March, with the very first boards coming back soon after, and by May these had successfully booted Linux.
Over the months that followed much testing ensued, peripherals were “brought up," device drivers were written, rev 0 boards were shipped to early access backers, and in due course updates were made to the design as a result of testing and feedback from the community.
However, sourcing the parts for 6,300 boards proved to be something of a challenge and along with changes that needed to be made to the Epiphany chip packaging, it meant that by June 2013 the project was now behind schedule. In the months that followed further setbacks were then encountered, as a key member of the engineering team left and finances became severely stretched.
Delivering on a promise
Following a dark few months, by October 2013 things had started to look up once again, with Antmicro joining the engineering team and a solution to financial challenges on the horizon.
In December, Adapteva announced that they had closed a round of funding, and the same month the first batch of Revision 1.1 — the final design — boards were assembled. Manufacturing these in volume once again presented component-sourcing challenges and with long lead times being quoted. However, these challenges were overcome, production started in earnest in February 2014, one month on 1,500 boards had shipped, and 97 percent of the rewards had gone out by early May.
At the time of writing in excess of 10,000 boards have been shipped to a combination of Kickstarter backers and those who pre-ordered after the campaign had closed, along with sales since then via the Adapteva website. There are also close to 100 universities that have received free (as in beer and as in freedom!) hardware via the Parallella University Program (PUP).
And finally, boards are now generally available in the U.S. direct from Adapteva and via Amazon, and more recently outside the U.S. via international distribution partner, RS Components.
Next stop: upstream
Of course the hardware is only part of the story and a key goal is to upstream all the drivers so that anyone could build a kernel with full device support from mainline, instead of having to use a fork or apply patches. An eminently sensible thing to do, this will make it much easier to get timely kernel updates and for Linux distributions to add support for the Parallella board.
This is one area where previous experience really counts and the project is fortunate to have been receiving expert help with this from Andreas Färber, who has been preparing patches, submitting them to the linux-arm-kernel mailing list and making changes where necessary.
Ubuntu is the officially supported Linux distribution and images are provided that are based on Linaro builds, with 14.04 being the current version. However, at present and until changes have been committed upstream, a custom kernel and device tree must be used.
There is also an unofficial Debian 7.0 image and it should be possible to run just about any distro that has an armhf architecture build. Provided that is that the aforementioned kernel and device tree are located in the BOOT filesystem on the SD card, along with an FPGA configuration bitstream.
A set of utilities are provided that allow the temperature of the Zynq SoC to be monitored, environment variables to be read from flash, and GPIO to be exercised.
As previously mentioned the Epiphany SDK has been available since early last year, and simple examples are provided that demonstrate how to program the Epiphany chip. The COPRTHR SDK builds on the Epiphany SDK to add support for developing OpenCL applications, and once again this is accompanied by a set of example programs.
A Parallella team has been set up on Launchpad and at present there is a snapshots PPA with a packaged version of the Parallella utilities, and there are plans to package the SDKs also.
Given the delays and that hardware didn't start shipping in volume until less than 6 months ago, it's still very much early days in terms of seeing what the community will build with Parallella. That said, the indications so far are certainly positive.
A contributor who goes by the name of Shodruky is one of the most prolific and has contributed examples for real-time ray tracing and mandelbrot set calculation and rendering, plus a third which colorises, scales and renders depth data from a MS Kinect sensor.
Another community contributed example demonstrates how to use the Epiphany accelerator from within the R statistical programming language. While a project undertaken as part of Google Summer of Code extended the John the Ripper password cracker so that it can take advantage of the Epiphany accelerator, resulting in an energy efficiency 25x better than CPU & GPGPU!
The most impressive hardware hacks so far have been courtesy of Sylvain Munaut, who last year started work with a prototype system to integrate the Myriad-RF software-defined radio (SDR) transceiver module, and more recently shared details of an LCD touch screen interface he's working on. A notable mention must also go to Brian Guarraci, who built an 8-node cluster with a design that was inspired by iconic supercomputers, the Cray 1 and the Connection Machine.
Building to enable
Now that commitments have been delivered on, the board has gone into general availability and the core tools are in place, the question is now one of: what can be done to better enable the community? We've certainly got some ideas and we'll be working to improve the SDKs and documentation, and to upstream to kernel.org and to package the tools to make it easier to develop for the platform. However, as always we'd love to hear any suggestions that people may have!
Andrew Back is Parallella's Community Manager.