P-SOCRATES has the following overall strategic goals addressed to applications with high-performance and real-time requirements:
- Guarantee time-criticality with no performance degradation. The time-criticality requirements of applications from both high-performance computing and real-time and embedded computing domains will be guaranteed by ensuring time predictability through the whole design stack. Such guarantees will be extended to provide high-performance capabilities within analytically-derived response-time bounds.
- Provide parallelisation on top of COTS many-core high-end embedded processors, still fulfilling time-critical requirements. By combining parallel programming models of HPC with the real-time technology of embedded systems, the parallel execution of workload-intensive applications with critical timing requirements will be applied on COTS many-cores embedded processors. This will allow exploiting the immense computing power of such massively-parallel platforms in both high-performance computing and real-time and embedded computing domains.
- Reduce the cost of software design, development and integration. The whole technology developed within the project will be designed towards facilitating the production of efficient high-performance and embedded systems with requirements in performance and time predictability.
P-SOCRATES implements these goals through the following detailed, specific, and measurable objectives:
- Develop a parallel programming model capable of expressing data dependencies and real-time application properties. Parallel programming models currently used in high-performance computing will be extended to contain relevant information about the impact of executing simultaneous parallel task. Such information will be contained in an extended task dependency graph automatically generated by the compiler. The extended task dependency graph will allow decoupling the application parallelism from the actual mapping of execution in the underlying platform, in order to facilitate the porting of applications to multiple many-core platforms.
- Develop resource-aware mapping and scheduling algorithms that are able to predictably schedule multiple resources in the system (CPU, interconnect, memory). These algorithms will consider the information on parallelism, data-dependencies, and timing properties in the programming model, for allocating parallel tasks to cores and for scheduling their execution and access to interconnection networks, memories and other resources.
- Develop a timing analysis methodology capable of expressing the timing implications of data-dependencies and potential resource-contentions of task-to-core mappings. Analyse the different interfering sources (higher priority workload, network contention, memory bottlenecks, etc.) that might affect the execution of a task, providing upper bounds on the response times of each task. This information will influence the selection of the scheduling algorithms to allow for predictable systems, lending themselves to a tighter schedulability analysis and a simplified computation of worst-case timing parameters. This timing analysis will consider the extended task dependency graph provided by the compiler and the hardware platform description.
- Identify specific hardware recommendations to improve the predictability of current COTS many-core embedded processor designs. Current many-core embedded processors are designed to provide high throughputs for multiple types of workloads, as well as to accelerate computationally intensive algorithms for various application domains. We will provide a set of recommendations to improve platform predictability and decrease timing bounds without affecting the average-case behaviour of the platform.
- Integrate the proposed techniques on a real world use-case application, increasing its performance, while providing trustworthy real-time bounds, on a COTS many-core embedded platform. One of the main targets of the project is to prove that it is possible to implement real-time high-performance computing systems on next-generation many-core embedded platforms, without sacrificing performance. For this purpose, the implementation of a real-work application characterised by a heavy workload with real-time requirements will be provided on a COTS many-core platform, providing analytical bounds on response-time parameters.
- Contribute to Open Source software. The developed software framework, i.e. the programming model and the compiler, the resource allocation and the timing analysis tools, the developed simulator and the operating system scheduler will be made publicly available under an Open Source license at the end of the P-SOCRATES project.