Thread Management Processor for Reproducible Multi-Thread Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multi-threaded application programs face reproducibility issues due to operating system intervention, leading to unpredictable task processing order as the number of threads increases, making it difficult to analyze and ensure consistent simulation results.
Innovation Solution
A computing device with a processor and thread management processor that concurrently executes threads in an activated state and converts them to a wait state upon task completion, allowing all threads to be reset to an activated state when in a wait state, ensuring sequential and concurrent task processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multi-thread structure is used to improve processing efficiency, then productivity is improved, but reproducibility deteriorates due to operating system intervention
Solution Approach 1:
The patent segments the multi-threaded application execution into distinct phases: a first execution phase where threads run with normal OS scheduling, and a second execution phase where threads run in a reproducible mode with suspended OS scheduling. This segmentation allows the system to enjoy both high productivity during normal execution and high reproducibility during the controlled second phase.
Solution Approach 2:
The patent performs preliminary actions by setting up a controlled execution environment before the critical execution phase. The thread management processor is configured to suspend OS scheduling interventions in advance, and to prepare the thread execution context so that when the second execution phase begins, all threads can run in a deterministic, reproducible manner without OS interference.
2Productivity
If number of threads is increased to handle more tasks, then productivity is improved, but reproducibility deteriorates due to unpredictable task processing order
Solution Approach 1:
The system performs preliminary configuration of thread execution priorities and scheduling parameters before entering the reproducible execution phase. The thread management processor pre-establishes a deterministic scheduling policy that ensures consistent task processing order across multiple executions, regardless of the number of threads involved.
Solution Approach 2:
The patent implements periodic execution phases where the system alternates between normal multi-threaded execution and controlled reproducible execution. During the reproducible phases, threads execute in a predetermined sequence with suspended OS scheduling, ensuring that task processing order remains consistent across multiple runs while still allowing high thread counts for productivity.
3Ease of operation
If operating system scheduling is used for thread management, then ease of operation is improved, but reproducibility deteriorates due to intervention in thread execution
Solution Approach 1:
The patent segments thread management into two distinct modes: normal OS-managed scheduling for ease of operation during development and testing, and a controlled reproducible scheduling mode for consistent execution. The thread management processor automatically switches between these modes, allowing developers to enjoy OS convenience during setup while ensuring reproducibility during critical execution phases.
Solution Approach 2:
The thread management processor acts as an intermediary between the operating system and the application threads. It suspends OS scheduling interventions during the reproducible execution phase while maintaining thread management functionality, thus preserving ease of operation through automatic mode switching while eliminating OS-induced non-determinism during critical executions.
Data Source
AI summary
A computing device is provided. The computing device includes: a memory configured to load an application program including a plurality of threads; a processor configured to concurrently execute threads that are in a first state, and to convert a thread, which completes processing of at least one task distributed among the plurality of threads, from among the plurality of threads, from the first state into a second state, wherein the first state corresponds to an activated state in which a thread processes the at least one task, and the second state corresponds to a wait state; and a thread management processor configured to set all of the plurality of threads to the first state based on all of the plurality of threads being in the second state.


