COBRA

COde Behaviour fRAmework

COBRA is an open source framework that allows developers to optimize (worst-case) resource consumption. Currently it focusses mainly on computational resources, but it will soon be extended with power consumption, etc. The COBRA framework combines multiple research domains to optimize the resource consumption on multiple levels (timing, scheduling and parallelism):

WCET Analysis

To determine the Worst-Case Execution Time (WCET), different techniques exists. The COBRA framework implements both static and dynamic timing analysis, and even new hybrid techniques which combines the existing static and dynamic analysis techniques. These techniques are essential to characterise the resource consumption.

Scheduler optimization

Scheduler optimization towards real-time performance and/or power consumption. Energy and time (computing units) are both important resources, this part of the framework analyses and optimizes scheduling algorithms towards these resources given a specific application. The analysis methodology to find this optimal scheduling algorithm, includes the three evaluation levels. This gives us the opportunity to select a set of algorithms at the beginning of the design process and narrow it down towards the end.

Design pattern based performance optimization for multi-core processors

Executing an application on a multi-core processor can have a speed-up due to parallelism. However finding and implementing the right design patterns to find parallelism is time consuming. This process can be repeated at multiple levels, from code-based parallelism towards instruction-level parallelism. This framework tries to automate this process to find the best design patterns for parallelism at the right level.

As described in the figure below, the COBRA framework consists of three parts which can be used separately. The first part contains of the input to be manipulated in the second part or directly used in the analysis tools of the third part. The input consists of (1) the TACleBench benchmark suite, (2) Generic Input Programs and (3) specific applications given a specific hardware configuration. The second part transforms the input of the first part to specific applications with user-defined parameters to test a specific case for the analysis techniques. These tools provides their processed input data in the same format for every analysis tool, despite the format of the raw input. Because of this standardization, new analysis tools to be added to the COBRA framework must only support this format. The analysis tools are located in third part. These tools optimize the resource consumption on the different domains discussed above.