The 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 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 manycore 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. UpScale is openly available and released under commercially-friendly open source licenses. More information at http:/www.upscale-sdk.com.