The detailed event lists gathered independently from several processors need to be processed to extract higher level information suitable for analysis at higher levels of abstraction. This may be achieved by detecting self similar sections of the trace, or sections matching use case maps, which may correspond to higher level utility operations. Different metrics may be used (frequency of occurrence, number of different contexts in which a sequence is used) in order to estimate the likelihood of a sequence to represent a higher level abstract utility operation. The context is significantly different in system level traces where asynchronous work queues and interrupts mix with simpler nested calls.
As a first step, the possible events abstraction will be examined on a single system. For instance, a sequential file reading operation may be the abstract representation of numerous, possibly out of order, disk block reads. New efficient algorithms will be developed based on pattern detection techniques to abstract out the content of low-level traces generated from multi-core systems. Pattern detection algorithms rely on matching criteria to assess the extent to which various parts of a trace can be deemed similar. A key activity of this milestone is to study how existing matching criteria can be applied to low-level traces and if there is a need to create new ones.
The resulting algorithms will vary in the way existing (or new) matching criteria are combined and weighed.
A significant challenge is to cope with the variability and uncertainty associated with the approximate time synchronization of events from independently clocked cores and computers, and the unobvious matching of request and response pairs, particularly in the presence of non connection oriented protocols with lost packets and retransmissions.