How do I program the Epiphany?

Since the Parallella Kickstarter campaign in 2012 the one question I get more than any other is ” How the @#$% do I program this thing?”

You are never going to become fluent in parallel programming without coding, so pick a card, any card. Let’s do some parallel programming!

Thanks to the incredible open source work that has come out of the Parallella community over the last year, we now have all major parallel programming models supported.


MPI (Message Passing)

Many said it couldn’t be done, but David Richie and Brown Deer Technology now has a very effective standard MPI (message passing interface) running on Epiphany!

Blog post

2D FFT Example

Academic Paper


BSP (Bulk Synchronous Parallel)

The BSP programming model invented by Leslie Valiant and Bill McColl has been resurrected for the Epiphany thanks to Jan-Willem Buurlage and others at the University of Utrecht, Netherlands.

Sources


Python (Thread/message)

A tutorial framework that’s fantastic for learning from Nick.

Example

Sources


OpenMP (Threading)

Thanks to the heroic efforts of Parallel Processing Group at University of Ioannina, Greece, there is now OpenMP 4.0 support for Parallella. Please try it!

Download


OpenCL (Threading and SIMD)

Brown Deer Technology has continued to work on the OpenCL infrastructure and updated it to the latest Epiphany SDK. The latest version aptly named “Freewill” is now available

Download


ERLANG (Message Passing)

Community member Merk Fleming has implemented the native Erlang interface for Epiphany along for heterogeneous programming within Erlang. Heterogeneous software and hardware is the future, so this is very encouraging. Mark has contributed his code to the new Parallel Architectures Library.

Blog Post

Sources


COPRTHR/STDCL (Threading)

An effective “coprocessor thread” alternative from Brown Deer Technology that lets you expose the parallelism available in a POSIX like manner. For the Epiphany, this is a more suitable programming model than the GPU/SIMD centric OpenCL programming model.

Download

Sources


BASIC

Community member Nick has put together an Epiphany BASIC (for parallel). A neat and simple way to get going with parallel programming.

Forum Thread

Sources

In addition we know there are people working on Haskell, Occam, APL, and Forth…

Andreas

2

Posted in White Papers.

Leave a Reply Using Facebook or Twitter Account