
Turning OpenMP Programs into Parallel Hardware - zxv
http://www.nextplatform.com/2016/10/19/turning-openmp-programs-parallel-hardware/
======
zxv
The article states, "an OpenMP application written in the C programming
language ... is compiled and the generated hardware is synthesized, technology
mapped and place and routed to yield a bit-stream. This bit-stream is used to
program the FPGA and the user can start using the enhanced OpenMP-accelerated
application."

The article links to a full text paper:

Podobas, Artur, and Mats Brorsson. "Empowering OpenMP with Automatically
Generated Hardware." SAMOS XVI. 2016. [http://www.diva-
portal.org/smash/get/diva2:1033786/FULLTEXT0...](http://www.diva-
portal.org/smash/get/diva2:1033786/FULLTEXT01.pdf)

Here is the abstract of the full text paper:

OpenMP enables productive software development that targets shared-memory
general purpose systems. However, OpenMP compilers today have little support
for future heterogeneous systems – systems that will more than likely contain
Field Programmable Gate Arrays (FPGAs) to compensate for the lack of
parallelism available in general purpose systems. We have designed a high-
level synthesis flow that automatically generates parallel hardware from
unmodified OpenMP programs. The generated hardware is composed of accelerators
tailored to act as hardware instances of the OpenMP task primitive. We drive
decision making of complex details within accelerators through a constraint-
programming model, minimizing the expected input from the (often) hardware-
oblivious software developer. We evaluate our system and compare them to two
state of the art architectures – the Xeon PHI and the AMD Opteron – where we
find our accelerators to perform on par with the two ASIC processors.

