Announcing the Parallel Architectures Library (PAL)

1024_diagram
We have shipped well over 10,000 Parallella computers across the globe and we are now ready to move on to the next phase of making parallel computing ubiquitous. Unfortunately the energy needed to escape the current “von Neumann potential well” seems to be approaching infinity. The legacy programming stack is so effective and so easy to use that developers and companies simply cannot afford to choose the better (parallel) solution. To make parallel computing ubiquitous our only choice is to rewrite the whole software stack from scratch, including: algorithms, run-times, libraries, and applications. This is not a problem specific to Adapteva, Epiphany, or the Parallella, it’s a problem for the whole industry!

For a few months we have been working on a new portable and opens source standard library effort called the Parallel Architectures Library (“PAL” for short).  The library includes basic functions for parallel math, communication, and synchronization. It’s work in progress and far from complete, but the basic API is ready for broader review and contribution.

Functionality:

  • Math, DSP, and Image Processing
  • Synchronization
  • Communication

Design Goals

  • Parallel (Make parallelism a first class citizen in a standard library)
  • Fast (Speed over safety )
  • Compact (Small enough to work for memory limited processors with < 32KB RAM)
  • Portable (Portable across different ISAs and systems)
  • Permissive (Apache 2.0 license to maximize industry adoption)

License

The PAL source code is licensed under the Apache License, Version 2.0. See LICENSE for full license text unless otherwise specified

Sources

To find the complete API and browse the current source code, check out the repository and README on github:
https://github.com/parallella/pal

Contribution

Here’s how you can help:

  • Review and comment on API and approach (all feedback is appreciated)
  • Suggest improvements
  • Write a function. If 100 people contributes one function each, we could be done in a week!
  • Write tests
  • Fix bugs
  • Report problems
  • Try it out

At the risk of sounding like the guy standing on the soapbox in the square talking about the sky falling…

  • If you are not part of the solution, you are part of the problem.
  • If you are not with us you are against us.

The future is parallel, spread the word!

Sincerely,
Andreas