Scalable Race Detection in Multicore Programs via Selective Event Monitoring
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current scalable monitoring techniques for race detection in multicore-based parallel programs face performance bottlenecks due to excessive access to shared data structures, leading to inefficient energy bug detection and increased power consumption.
Innovation Solution
A scalable monitoring apparatus and method that inserts monitoring codes into parallel programs to selectively inspect and store access events likely to participate in races, reducing the number of monitored events and minimizing access to shared data structures, while measuring and analyzing power data to detect energy bugs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all access events are monitored and stored in shared data structure, then race detection completeness is improved, but performance bottleneck and power consumption increase
Solution Approach 1:
The patent segments the monitoring process by dividing access events into different categories (frequent, occasional, rare) and processing them through different paths. Thread-local storage is used to segment the data structure access, allowing most events to be processed locally without acquiring shared locks, thus resolving the contradiction between complete monitoring and performance
Solution Approach 2:
The patent applies partial action by selectively monitoring only certain access events based on their race likelihood. Instead of monitoring all access events equally, it focuses resources on events that are more likely to be races, maintaining detection effectiveness while reducing overall monitoring overhead and power consumption
2Productivity
If selective access event monitoring is implemented, then performance is improved, but race detection precision deteriorates
Solution Approach 1:
The patent implements feedback mechanisms where monitoring results are used to adjust future monitoring behavior. The system learns from detected races and adjusts its monitoring strategy, ensuring that precision is maintained even as selective monitoring reduces overall overhead. Feedback loops verify that selected events still provide sufficient race detection coverage
Solution Approach 2:
The patent changes parameters of the monitoring system dynamically, adjusting which access events are monitored based on program characteristics and execution context. By changing monitoring parameters adaptively rather than using a fixed strategy, the system maintains high precision while achieving performance improvements through selective monitoring
3Reliability
If comprehensive race detection is performed, then reliability is improved, but power consumption increases
Solution Approach 1:
The patent segments power consumption by creating different monitoring paths with different energy costs. Thread-local storage operations consume less power than shared data structure operations with lock acquisition. By segmenting the monitoring approach, the system achieves reliable race detection while minimizing overall power consumption
Solution Approach 2:
The patent uses thread-local storage as a cheap, short-living alternative to expensive shared data structures. Each thread maintains its own copy of monitoring data locally, avoiding the power-intensive operations of acquiring and releasing locks on shared structures. This disposable local storage approach reduces power consumption while maintaining detection reliability
Data Source
AI summary
Provided are a scalable monitoring apparatus and method for detecting a race when a multicore-based parallel program is executed. The scalable monitoring apparatus for race detection of a multicore-based parallel program includes a monitoring code inserting unit configured to add a scalable monitoring code to a source parallel program to generate a transformed source parallel program, a thread monitoring unit configured to generate a data structure of a thread generated according to execution of the transformed source parallel program, an access event selecting unit configured to inspect a race likelihood according to execution of the transformed source parallel program to select an access event, an access event storage unit configured to store the access event in a shared data structure, a power measuring unit configured to measure and store power data according to execution of the source parallel program, and a power analyzing unit configured to analyze the power data to determine whether an energy bug has been generated.


