Advanced analysis
This project addresses the problem of advanced trace analysis, identifying patterns and metrics of higher-level
behavior such as performance problems, contention or simply normal activities, in the context of specific
programming models (e.g., OpenCL, OpenMP, MPI...) and has five research axes:
- Research on different programming models and examine how to relate trace information to programming constructs, and extract timing and other performance properties from execution traces, to be used in profiles and high-level models. For example, OpenCL delegates computation to heterogeneous processors, typically GPGPUs, sending requests and receiving results asynchronously. The tracing and profiling information generally arrives asynchronously as well, and must be synchronized and reconnected with the OpenCL constructs. This can enable to display a timeline of the parallel execution of the computation on the massively parallel SIMD cores, and a representation of the request queues. Interestingly, many special-purpose heterogeneous processors used in Telecom equipment have the same level of parallelism and asynchrony as GPGPUs. The work will thus target both types of devices, with the GPGPUs being easier to access, and experiment with, initially.
- Concentrate on advanced analysis modules and views related to resource consumption such as memory usage, input / output, and power consumption. In each of these cases, the system architecture and available hardware has evolved considerably and suitable monitoring data
collection and special-purpose views must be devised. Memory usage in the presence of virtualization and page merging is much more difficult to assess and views built with system-wide information can help detecting non optimal usage patterns. Input / output devices, shared among numerous cores, can easily become a bottleneck. Furthermore, the type of analysis must be adapted to the underlying medium, for example rotating disk, solid-state storage or remote virtual storage. Power consumption can now be studied more efficiently with new registers for power consumption measurement. In addition, advanced scheduling algorithms can significantly impact the potential power savings by grouping interrupts and minimizing the number of wakeups from sleep mode. - Pursuing the previous work on using the modeled state tree for matching patterns of high-level behavior for specific programming models. He will propose an organization to provide
pattern dictionaries than can automatically be used to match simultaneously and efficiently against large execution traces. By using the state history tree to store the pattern state, the proposed mechanism will allow for easy navigation through the trace, and debugging of the patterns, understanding how they were matched to the trace under study. - Research on trace correlation, building upon earlier work in this area and benefiting from the modeled state tree and state history tree. Two different use cases for trace correlation will be examined in particular. The first is when the same software package is used in two different contexts, one being considered a correct execution and the second labeled as problematic. In
that case, the correlation should highlight the differences which are likely related to the reported problem. The second use case is when two different versions of a software package are executed in the same context. Any difference, good or bad, is likely to be related to the differences highlighted by the correlation between the two traces. - Test the proposed algorithms on industrial problems and provide feedback for refinement and optimisation purposes and finally integration of the works into Trace Compass [With the help of Ericsson].