Making parallel computing easy to use has been described as “a problem as hard as any that computer science has faced”. With such a big challenge ahead we need to make sure as many people as possible have access to open parallel hardware and development tools.
Inspired by great hardware communities like Raspberry Pi and Arduino, we also see a critical need for a truly open, high-performance computing platform that will enable us to close the knowledge gap in parallel programming.
The goal of the Parallella project is to democratize access to parallel computing through providing an affordable open hardware platform and open source tools, and supporting learning and the development of software which is able to harness the power of parallel systems.
To make parallel computing ubiquitous, developers need to have access to a platform that is affordable, open and easy to use.
The Parallella platform will be built on the following principles:
Open Access: Absolutely no NDAs or special access needed! All architecture and SDK documents must be published on the web.
Open Source: The Parallella platform will be based on free open source software (FOSS) development tools and libraries. All board design files will be provided as open source once the Parallella boards are released.
Affordability: Hardware cost and SDK costs have always been a a huge barrier to entry for developers looking to develop high performance software. The goal is to bring the Parallella high performance computer cost below $100, making it an affordable platform for all.
Although the initial focus has been on delivering the hardware platform this is only part of the story and Parallella is also very much an open source software project.
One important goal of Parallella is to teach parallel programming and the project will strive to be objective with respect to programming models. The only hard requirement is that the language/method chosen must be supported by free and open source development tools. Parallel programming projects and examples will be published based on all influential parallel programming languages and frameworks.
Beyond the Parallella SDK and learning materials we will support the development of open source languages, frameworks and applications that are able to unlock the potential of massively parallel computing architectures. Working closely with other open source communities and fostering cross-project collaboration.‘
An extensive review of Parallella’s board can found in “Supercomputing on the cheap with Parallella: Blowing open the doors to low-power, on-demand supercomputing” by Federico Lucifredi.
‘ Packing impressive supercomputing power inside a small credit card-sized board running Ubuntu, Adapteva‘s $99 ARM-based Parallella system includes the unique Ephiphany numerical accelerator that promises to unleash industrial strength parallel processing on the desktop at a rock-bottom price. The Massachusetts-based startup recently ran a successfully funded Kickstarter campaign and gained widespread attention only to run into a few roadblocks along the way. Now, with their setbacks behind them, Adapteva is slated to deliver its first units mid-December 2013, with volume shipping in the following months.
What makes the Parallella board so exciting is that it breaks new ground: imagine an Open Source Hardware board, powered by just a few Watts of juice, delivering 90 GFLOPS of number crunching. Combine this with the possibility of clustering multiple boards, and suddenly the picture of an exceedingly affordable desktop supercomputer emerges.
This review looks in-depth at a pre-release prototype board (so-called Generation Zero, a development run of 50 units), giving you a pretty complete overview of what the finished board will look like.‘
This is a very interesting development that immediately brings to mind a few business ideas.
First, is to build supercomputers for sale using Parallella’s boards. Of course other components must be added, namely memory and cooling, to form a complete system. This is akin to building a high end gaming pc using components from different manufacturers. Here, I note that liquid cooling may be a useful option (see “Cooling Personal Computers and Servers“).
Such supercomputers could be a series of standard units, a base standard unit that can be expanded in a modular fashion, or custom built systems. I can see a market for all of these approaches.
Second is to start a company that builds supercomputers in house and sells access to them via the cloud. This can certainly be done now with existing supercomputers (see “Supercomputer Apps“). However, Parallella offers the chance of constructing a system that is cheaper than buying one from Cray or IBM. Also, it allows a company to test the idea with relatively little capital at risk and if the business thrives, additional capacity can be constructed modularly. Additionally, Parallella wants to foster a community of developers using open source software tools. If they are able to do this, then it becomes easier to set up a company offering supercomputing access as the software tools will be readily accessible.
The third idea is a variant of the first two: construct a supercomputer optimized for machine learning. Current supercomputers are optimized for massively parallel physics-like computations (i.e. solution of coupled partial differential equations) in which the focus is on increasing the speed of pure number crunching. For machine learning, the bottleneck in speed is accessing information from memory. I do not have the expertise to even make suggestions on how to build a supercomputer for machine learning applications. However, the facts that Parallella is selling hardware components that memory and other components can be purchased separately, suggest that a clever engineering team should be able to construct a system that provides high speed at reasonable costs.
I strongly suspect that there are already groups formed to work on the ideas expressed above.