More efficient reuse of software code - a boost for high-performance embedded systems
MANY Innovation report
The practice of reusing existing software has become the norm among semiconductor developers. This is due to the increasing significance of time-to-market in fast product development along with the ability to reuse existing tested and verified software code, as software applications become more complex. With the arrival of many-core semiconductor architectures comes the problem of how to rewrite software applications to exploit the increased parallel processing available. The ITEA 2 MANY project came up with an improved programming environment for embedded systems, one that will facilitate the faster development of applications for a variety of hardware platforms.
The traditional response of increasing the frequency results in higher energy consumption. While the hardware industry has introduced multicore hardware, improving performance by efficiently utilising different cores is only possible if software can be run in parallel. A tough and complex task that requires the manual intervention of skilled experts. MANY focused on the legacy code of the software already developed and the possibility of automatically reusing code, which creates potentially huge savings, and set about providing tools that solve the issues and enable better utilisation of the technology. The unique aspect of MANY is that it not only solves some dead ends by providing better operating software but also optimises the quality of the output and, thus, performance.
The principal applications of MANY are threefold:
Firstly, as a software source whereby a software tool capable of automatic conversion reads classical single-core software and produces parallelised software that will run faster (optimised) and use the higher-performance that multi-core hardware provides. Its benefit is speed and power.
Secondly, tools that offer interactive support by providing extensive analysis and pinpoint with mark-up, leaving the the developer to decide where to make the actual changes. The interactive tools provided by the MANY project are proving popular among developers and help them to both understand and learn.
Finally, the third main application is changing the actual code during execution rather than pre-runtime in order to provide a virtualisation platform on which to run the application. This platform is effectively the layer between the actual hardware and the application, and therefore it is possible to combine this third approach with the previous ones.
The major beneficiary of the tools are software developers since the tools solve two basic issues that are considered almost impossible to do manually: to enable the user to run legacy software (single core software) on new advanced high-performance hardware (multi-core hardware) and to parse and transform source-to-source legacy code (single core software) into optimum high-performance application (multi-core software, or parallel software code). The reuse of historical investments on software to get high-performing applications makes the cost nil or negligible.
This parsing of legacy code represents a major breakthrough; it is a complex technology with great expectation and huge potential at low investment. The results of the project will enable some of the partners in the consortium to immediately begin generating income and for the European and the Korean industries, the MANY tools can become a major advantage. Estimates of the project results show important and significant savings in development costs. There are actually no other similar technologies around – others have either not yet reached their final objectives or have focused only on a simplified task. Having no tool is tantamount to entering a ‘black hole’ of a never-ending development cost.
The project aim of high-performance, low-power computing is particularly important in the embedded systems market in which video recognition, streaming media and complex algorithms are typical applications in the telecom and radio communication domain as well as increasingly in the automotive domain. Some examples of benefits for the final customers of high-performance products may include faster mobile phones or device, longer lifetime on handheld devices or potential for increased performance. Advanced and complex algorithms make it possible to take full advantage of the hardware performance.
Added value of the results
There are two distinct areas in which the project achieved results: development tools and code analysis and transformation. The development tools derive from the need of high performing software applications and the associated software support whereby sequential software migration enables parallel programming to harness multi-core architectures and address multi-core architecture requirements. Standards ensure the portability of application and performance while runtime mechanisms facilitate program efficiency. The added value of MANY in code analysis and transformation is evident in finding hotspots (static analysis, hotspot region isolation), dynamic dependence analysis (less target specific, cross-platform analysis), automatic parallelisation (broader coverage of codes and target architectures, extended parallelisation and optimisation capability) and last, but not least, unique integration of the tools.
This added value extends into execution platforms/virtualisation in respect of hardware transparency, core utilisation, programming and reliable embedded systems as well as other ITEA projects. One such example is ViSCA that focuses on the virtualisation of smart cards in which the added value of MANY can be found in tool-related virtualisation for robustness and hardware transparency. Another is H4H that is geared to optimising HPC applications on heterogeneous architectures whereby MANY’s embedded market focus can add value. Equally, MANY has benefited from the building blocks of the TSP STEP tool generated by the ParMA project and GEODES whose energy efficiency at node level and low-level communication schemes proved useful.
Collaboration with the Republic of Korea in this project has generated a mutual and beneficial outcome, benefiting the technology as well as open up business opportunities. The ITEA/EUREKA Ko-Summit meeting in Korea established concrete opportunities, such as Vector Fabrics in the commercialisation of the Pareon tool (a tool that smoothens multi-core software optimisation) which is being used in a few dozen locations, and where negotiations are ongoing with a major Korean company in the mobile domain, while SevenCore’s hypervisor has been selected by Hyundai Heavy Industry for its new HP robot controller. In moving to many-cores in future Professional Mobile Radio (PMR) products, TCS is considering using tools provided by MANY tool providers and at Ericsson more than a hundred personnel have been taught to use the tools developed within the project for the next generation of modems. Furthermore, Alten, the project coordinator, has generated increased competencies, which is a valuable asset in customer projects. Finally, and importantly, the open source development will have a positive impact in the academic environment as in the case of improved techniques for scheduling time-division multiplexing that are now also part of the Quantitative Evaluation of Embedded Systems course in the Embedded Systems Master’s curriculum at all three Dutch universities of technology. In conclusion, the project can be expected to strengthen European industry, especially in terms of shortening time to market and reducing upfront investments.