TANGO Development-time tooling: An initial usage of Placer!

This blog article presents how Placer can be used on a real-world use case. In particular, it provides information to an embedded application developer for exploring quickly the optimal placement and schedule of the tasks computed by an embedded application named AquaScan. Alternatively, Placer can also handle additional placement constraints to let the developer study the impact on time performance in case the optimal placement and schedule are not followed. Designing and developing optimal software architectures for embedded applications to execute on a set of heterogeneous hardware devices in best time and energy performance requires making complex decisions. In particular, decision on placing software components on the appropriate hardware processing devices must not just consider processing performance but also data transfer. On multi-core and many-core devices, there is not much constraint on the code writing exercise. On the other hand, when GPU and FPGA are available in an embedded device then specific code must be developed for these types of hardware. Determining what software components would benefit most from executing on GPU or FPGA is extremely hard. Mainly because it is not always the obvious heavily parallelisable software task of an application that should automatically be placed on GPU or FPGA. The type and size of data transfer must be considered to make an optimal placement decision. Otherwise what may seem like a judicious placement thanks to a heavy parallelisation in the processing could not yield the optimal execution if for instance, datasets are large and do not form a constant stream. Furthermore, next to time performance, in embedded systems composed of several devices where some run on battery while others are powered through a UPC, energy consumption must be taken into account in particular for battery-operated devices. Thus, even expert developers cannot answer whether or not a given software component placement and software task schedule provide the most appropriate trade-off between time and energy performance. To ease this work, TANGO has developed two design tools. The first tool named DTC-Poroto helps to quickly port C code to VHDL and to take time and energy measure to characterise a software task execution on various input datasets. The second tool named Placer, takes a model of hardware processing, storage and transfer capabilities alongside a model of computation and communication (MoCC) of software tasks and their data exchange. The MoCC provided by Placer makes it possibility for a software task to provide several implementations, for instance, for executing on different hardware processing element such as CPU, GPU or FPGA. Furthermore, the MoCC is augmented with different software task dependencies information as well as other properties such as time and energy performance of each task implementation on a given hardware. From these input models, Placer computes the optimal placement and schedule of software task on the given hardware elements. In the remaining of this article, the application named AquaScan described very briefly below is used to illustrate the use of Placer. A future Blog article will be dedicated to DTC-Poroto. For more information, find attached the full document!