In previous articles, such as Kernel or ISA, we saw how complicated interacting with Epiphany chip could be. A whole bunch of registers, memory banks, and funky addressing scheme. It's a lot to know, for someone who just wants to run a "hello world" program... If only we had some C library that would hide all this complex logic from us?!
Making use of hardware is much harder than owning it, especially when we speak about uniquely designed SBCs such as Parallella. Why? Because problems that can be solved best with parallel computing are hard...
In previous posts, we were introduced to the hardware and made it operational with the kernel module. Soooo... (drum rolls) it's time to write and run a program on the Epiphany chip! But how can one do it? What compiler do I use? What "language" does the Epiphany chip understands? Is it C, C++, assembly, binary, or what?
Embedded devices such as RaspberryPI don't have enough power for running Hadoop jobs. It is a complex piece of software. Instead of trying to adapt it, I decided to use a more "lightweight" solution, which is OpenMPI map-reduce. MPI was designed for distributed computations, so why not run a map-reduce framework on it? Let's do it!