A4MCAR: Development and Software Evaluation of a Distributed Multi-core Demonstrator
Distributing software effectively to multi core, many core, and distributed systems has been studied for decades but still advances successively driven by domain specific constraints. Programming vehicle ECUs is one of the most constrained domains that recently approached the need for concurrency due to advanced driver assistant systems or autonomous driving approaches.
With this project, software distribution challenges for such systems are discussed and solutions are presented upon instruction precise modeling, affinity constrained distribution, and reducing task response times achieved by advanced software parallelization. Therefore, APP4MC's partitioning and mapping algorithms are advanced to consider affinity constraints, software component tags and communication costs.
A demonstrator system called A4MCAR has been developed which features not only low level functionalities such as sensor and motor driving but also high level features such as image processing, camera streaming, server-based wireless driving via Web, bluetooth connectivity via Android application, system core monitoring and analysis features and touchscreen UI. Our experiments along the multi-task heterogeneous demonstrator A4MCAR show that using APP4MC results instead of OS-based or sequential implementations on a distributed heterogeneous system significantly improves its responsiveness in order to potentially reduce energy consumption and replaces error prone manual constraint considerations for mixed-critical applications.
With the help of A4MCAR project it is intended that the Real-time Linux community will benefit from the published libraries and documentation that involve code snippets and information instructions on how to develop more optimized distributed and parallel software. Furthermore, the Eclipse and APP4MC community will benefit from the A4MCAR via advanced tool support for RPI developments, open source example applications, and validations of APP4MC parallelization results in order to create a better tooling for public. Those results can be used to assess and compare different parallelization scenarios and consequently identify optimal solutions regarding timing efficiency for the A4MCAR. Thereby, a point of reference can be given as well as an easy starting point for developers approaching parallelism with their developments.
Technology experience: XMOS xCORE-200, Core monitoring, Partitioning/mapping, xC, Linux-Kernel, Raspberry Pi, Bash scripting, Software profiling/tracing/monitoring, Python, TCP, PHP5/jQuery/Apache, Image processing, Touchscreen UI, Pthreads, Android, Inter-process communication, File I/O configurations.
Open-source development workflow:
The efforts regarding my master thesis has been accepted to Google Summer of Code 2017 to be funded by Google Inc and Eclipse Foundation. Thanks to my institute for their excellent supervision and encouragement !! Here is the link to access our project and here is the link to the docs I've created.
I participated with my supervisors to a Hackathon (2017) at Eclipse Foundation Europe to exchange ideas. Thanks for an excellent day!
I participated to EclipseCon 2016 conference IoT Day with this project on behalf of the institute I am working for!
I also participated to Dortmund International Research Conference held in 2017 to demonstrate the A4MCAR project!
Access to the Project:
In order to access the project, please visit https://mozcelikors.github.io/a4mcar
The display interface designed:
Web server designed for both control / stream / core display:
Display and the performance algorithm that I developed:
Android Application with a virtual joystick and bluetooth connection (a colleague was also involved in designing this App):
An alternative web-based control page: