The Heterogeneous Node is a demonstrator for the execution of service compositions. Three different computing resources are deployed in the heterogeneous system: two Intel Xeon E5-2609 v2 CPUs, one Nvidia Tesla K20c GPU, and one Xilinx Virtex 6-based Maxeler Vectis FPGA card.
To demonstrate service executions, we’ve developed a set of 26 common image processing algorithms covering a variety of global, local, pixel, morphologic, and geometric operations. Each algorithm is available in four variants: single-threaded CPU code, multi-threaded CPU code with OpenMP-based loop parallelization, GPU code with OpenACC compiler directives, and MaxJ code describing Maxeler’s data flow engines executing the image processing algorithms.
The four different implementations for an image processing algorithm are bundled into a single software service. The services are designed as dynamically loadable plugins. To facilitate experimentation, we have developed an expandable client-server software framework. Using the client, a user can upload images to the server and execute a service composition on the desired computing resource. A service composition is specified as a task graph using the DOT language where the nodes represent single services. In the current version of our framework, the user must specify on which resource the service is computed.
All selected computing resources support precise energy and temperature measurements without need for dedicated measurement equipment, since all resources have on-die respectively on-card power and temperature sensors. These sensors are readable via system interfaces or libraries provided by the Linux kernel or the device manufacturers. We’ve developed a library providing measurement results for a specific service execution on the Heterogeneous Node.
Screenshot of the client-side graphical user interface after the execution of a service composition composed of a sequence of 6 image processing services.
If you have any questions regarding the Heterogeneous Node demonstrator, please contact the research staff from Subproject C2.