  One of the barriers to the adoption of parallel computing is the inherent
complexity of its programming. The Open Multi-Processing (OpenMP) Application
Programming Interface (API) facilitates such implementations, providing high
abstraction level directives. On another front, new architectures aimed at low
energy consumption have been developed, such as the Greenwaves Technologies
GAP8, a Multi-Processor System-on-Chip (MPSoC) based on the Parallel Ultra Low
Power (PULP) Platform. The GAP8 has an 8-core cluster and a Fabric
Controller(FC) master core. Parallel programming with GAP8 is very promising on
the efficiency side, but its recent development and lack of a robust OS to
handle threads and core scheduling complicate a simple implementation of the
OpenMP APIs. This project implements a source to source translator that
interprets a limited set of OpenMP directives, and is capable of generating
parallel microcontroller code manipulating the cores directly. The preliminary
results obtained in this work shows a reduction of the code size, if compared
with the base implementation, proving the efficiency of the project to ease the
programming of the GAP8. Further work is need in order to implement more OpenMP
directives.

Distributed, Parallel, and Cluster Computing