Software Challenges
The PHANTOM project is developing innovative technologies that address software development challenges that are emerging from the evolution of traditional embedded computing into cyber-physical systems, where connected and integrated systems of computing and networking need to monitor, control and manage physical processes while delivering high performance within real-time constraints and with appropriate security. This evolution is being driven by three key factors that are having a dramatic impact on Information and Communications Technologies (ICT) in Europe:
​
-
The advent of the Internet of Things (IoT) that is forecast by 2020 to create a single worldwide dynamic and intelligent information network of more than 50 billion devices gathering, producing and sharing over the Internet massive amounts of data to be processed in support of new applications and services for business and consumers;
-
ICT is estimated to have a significant (~5%) and accelerating share of worldwide energy consumption creating a cross-cutting challenge for ICT to improve energy efficiency and to adopt more lower power computing technologies; and
-
Today’s computing assets – including widely available multi-core heterogeneous systems (GPU, CPU, FPGA), and embedded High Performance Computing (HPC) – are burdensome for programmers requiring dual expertise in both application engineering and computer system engineering to address the complexity between the computing hardware platforms and the application domains.
To address these challenges, a holistic approach is needed that encompasses a complete system view of both hardware and software that can be applied in multiple industry domains.
​
The PHANTOM project is delivering an integrated cross-layer (hardware and system software/programming environment), that supports a multi-objective and cross-application approach for exploiting next generation heterogeneous, parallel and low-power computing systems, while masking the complexity of the underlying computing hardware from the programmer.
Project Overview
Selecting Open Source Components
Deciding whether open source software (OSS) meets the required standards for adoption in terms of quality, maturity, activity of development and user support is not a straightforward process. It involves exploring various sources of information including:
-
Its source code repositories to identify how actively the code is developed, how well the code is commented, whether there are unit tests etc.
-
Communication channels such as newsgroups, forums and mailing lists to identify whether user questions are answered in a timely and satisfactory manner, to estimate the number of experts and users of the software
-
Its bug tracking system to identify whether the software has many open bugs and at which rate bugs are fixed, and
-
Other relevant metadata such as the number of downloads, the license(s) under which it is made available, its release history etc.
Dependence on an OSS project can thus either be a blessing or a curse. The ability to accurately assess the risks and benefits of adopting particular OSS projects is essential to the software community at large - especially open source software frameworks and platforms and highly specialised essential utility packages, which can make a depending product or service unexpectedly incur insurmountable technical difficulties when the OSS projects suddenly reach end-of-life.
Project Technologies
The PHANTOM project is providing a hardware-agnostic software platform that executes over reconfigurable multi-core and heterogeneous (GPU, FPGA, CPU) hardware platforms. The software platform offers capabilities for multi-dimensional optimisations through dynamic adaptations of systems and orchestration of reconfigurable hardware platforms, while providing productivity-orientated software programming tools for next generation parallel systems, while having energy efficiency, performance guarantees and cost effectiveness as intrinsic software design features. The PHANTOM research and development objectives are the following:
​
-
Increasing the versatility, reconfigurability and integration of heterogeneous computing platforms – through new hardware abstractions for heterogeneous multi-core hardware including CPUs, GPUs, reconfigurable devices (FPGA), as well as analogue processing embedded hardware with standard PC interfaces, and emerging mixed hardware platforms, while meeting requirements for energy efficiency, performance guarantees and cost effectiveness.
-
Developing a hardware-agnostic, flexible and cost-effective software platform for multi-dimensional optimisation and increased productivity in programming – through an innovative programming environment and monitoring technologies that mask the complexity of the underlying hardware and automate application optimisations, while balancing ease of programming, portability and performance.
-
Providing system security across all levels starting from secure and trusted zones on hardware up to system software and application software level – through the innovative application of proven security concepts of separation, component integration, policy architecture and physical resource sharing that exploits heterogeneous architectures.
-
Improving key system characteristics of energy efficiency and system resilience – through advances in resource scheduling and monitoring capabilities for heterogeneous hardware computing platforms and programming interfaces that allow energy and resilience related control policies to be incorporated in the multi-dimensional optimisation process.
The technology developments are being driven by industrial use cases from the Telecom, Surveillance and High Performance Computing (HPC) domains within the context of industrial software development environments and platforms.