Supervisor Thread Folding for Multithread Race Condition Diagnosis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of designing dynamic multithreading architectures that effectively utilize multiple processor cores has hindered the adaptation of multi-core processors, with challenges in identifying and diagnosing issues such as race conditions and thread synchronization in multithreaded computer programs.

Innovation Solution

A computer-implemented method for runtime analysis of multithreaded programs, where threads are identified and folded into a single thread for execution, monitored, and their status presented in a user interface, allowing for control and diagnosis of thread behavior, including serialization, priority management, and lock usage tracking.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multithreaded computer programs are designed to effectively use multiple processor cores, then processing power and execution speed are improved, but the complexity of thread management and diagnosis of execution problems increases

Engineering Contradiction:
Improveexecution speedVSAvoidthread management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a supervisor thread as an intermediary that manages and coordinates multiple worker threads. This supervisor thread handles thread creation, task distribution, synchronization, and termination, thereby reducing the complexity of direct thread management and enabling effective multithreaded execution on multiple processor cores

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple threads are executed in parallel to increase processing power, then productivity is improved, but the difficulty of detecting and measuring execution problems such as race conditions increases

Engineering Contradiction:
Improveprocessing powerVSAvoidexecution problem diagnosis
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent implements comprehensive feedback mechanisms where the supervisor thread continuously monitors worker thread execution status, collects performance metrics, and detects execution problems. This feedback system enables real-time identification of race conditions and other thread-related issues, making diagnosis significantly easier while maintaining parallel execution for improved productivity

Inventive Principle:
Principle #23Feedback

3Reliability

If threads are monitored and controlled in real-time to identify execution problems, then reliability is improved, but the device complexity increases

Engineering Contradiction:
Improveexecution reliabilityVSAvoidmonitoring system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The supervisor thread serves multiple functions simultaneously: it creates worker threads, distributes tasks, monitors execution, collects feedback, detects problems, and terminates threads. This multi-functional design improves execution reliability through comprehensive monitoring while avoiding the complexity of separate dedicated monitoring components

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9886305B2Determining the status of plurality of threads by monitoring the execution of folded thread
Publication Date: 2018.02.06 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9886305B2 patent drawing
  • US9886305B2 patent drawing
  • US9886305B2 patent drawing

AI summary

A computer hardware system configured to perform runtime analysis and runtime control of a multithreaded computer program includes at least one processor. The at least one processor is configured to initiate and/or perform the following. A plurality of the threads are folded, under control of a supervisor thread, together to be executed as a single folded thread. The execution of the folded thread is monitored to determine a status of the threads. At least one indicator corresponding, to the determined status of the threads, is presented in a user interface.