The UpScale SDK targets systems that demand more and more computational performance to process large amounts of data from multiple data sources, whilst requiring guarantees on processing response times. Manycore processor architectures allow these performance requirements to be achieved, by integrating dozens or hundreds of cores, interconnected with complex networks on chip, paving the way for parallel computing. Unfortunately, parallelization brings many challenges, by drastically affecting the system’s timing behavior: providing guarantees becomes harder, because the behavior of the system running on a multicore processor depends on interactions that are usually not known by the system designer. This causes system analysts to struggle to provide timing guarantees for such platforms.
UpScale tackles this challenge by including technologies from different computing segments to successfully exploit the performance opportunities brought by parallel programming models used in the highperformance domain and timing analysis from the embedded real-time domain, for newest many-core embedded processors available.
The UpScale SDK includes the following components:
- Source to source compiler – enabling to analyze source code OpenMP parallelism annotations, extracting the required information to allow for efficient and predictable mapping and scheduling of parallel computations.
- Lightweight OpenMP tasking runtime – a small-footprint, low overhead implementation of the tasking model of the latest OpenMP specification, which uses the information extracted by the compiler to map OpenMP tasks to operating systems threads.
- Embedded Many-Core Operating System – a small kernel implementation which efficiently handles parallel threads in many-core platforms, supporting both static assignment of threads to cores as well as global scheduling approaches.
- Analysis tools – an integrated toolset for the timing and schedulability analysis of real-time parallel applications.
The SDK framework is flexible and applicable to different use cases, as demonstrated by the project results. Initially released for the Kalray MPPA processor, it is possible to port to different hardware architectures as also demonstrated by the project.
After a first showcase in the project Industrial Workshop, November 2016 in Porto, Portugal, the final results of the project and the UpScale SDK were presented at Embedded World, the international gathering for the embedded system technology sector, which took place in Nuremberg, Germany, March 2017. UpScale is openly available and released under commercially-friendly open source licenses.
More information at http://www.upscale-sdk.com.
March 15th, 2017