The ARROW project proposes a high performance heterogeneous computing platform allowing to take advantage of a diversity of processing elements according to the task at hand. FPGAs provide the ability to perform very specific processing with few latencies, especially when executing data-flow algorithm, and consume little energy. GPUs offer an effective parallelization of the same kernel (SIMD), consume more energy but are easier to program. CPUs, for their part, are still efficient to execute the sequential and control part of the application and benefit of various existing codes. The ARROW platform integrating these three types of processing elements can substantially speedup the execution of a target applications by allowing the most efficient computing resource for the execution of the different sub-tasks of the application.
The programmability and efficient data transfers are key elements on this kind of platform in order to permit to a large number of users to take advantage of it, by providing an abstraction layer hiding the complexity of the underlying architecture.