Dynamic Thread Switching for Parallel Data Stream Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing information processing systems face challenges in efficiently processing and outputting a large number of data streams in parallel, particularly when displaying moving image thumbnails, due to increased system load and potential frame drops caused by varying decoding rates of multiple threads.
Innovation Solution
The method involves creating threads for processing and storing intermediate data in buffers, with dynamic switching based on predetermined thresholds to manage texture data storage, allowing for efficient allocation of processing resources and reducing frame drops by prioritizing threads with lower decoding rates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the number of threads is increased to process more data streams in parallel, then the parallel processing capability is improved, but the system load increases and frame drops occur
Solution Approach 1:
The patent implements dynamic thread switching based on buffer status. The system monitors the amount of intermediate data in buffers and dynamically adjusts which threads are active, switching from threads with high buffer accumulation to those with low accumulation. This dynamic adjustment allows the system to maintain high parallel processing capability while preventing buffer overflow that causes frame drops.
Solution Approach 2:
The patent employs feedback control by continuously detecting the amount of intermediate data stored in buffers and using this information to control thread execution. When a thread's buffer exceeds a predetermined threshold, the system switches to other threads, creating a feedback loop that maintains system stability and prevents frame drops while maximizing parallel processing throughput.
2Productivity
If the number of threads is increased to display more thumbnails, then the output parallelism is improved, but the system load increases making it difficult to ensure predetermined output rates
Solution Approach 1:
The patent segments the processing system into independent threads, each handling a specific data stream with its own buffer. This segmentation allows the system to manage multiple thumbnails independently, switching between threads based on individual buffer status rather than managing a monolithic high-load system. The segmentation reduces overall system complexity by isolating processing loads.
Solution Approach 2:
The patent changes the operational parameters of threads dynamically based on buffer status. Instead of running all threads at constant high load, the system adjusts thread execution parameters (active/inactive state) based on real-time buffer conditions. This parameter change allows high thumbnail display capacity while maintaining manageable system load through selective thread activation.
3Productivity
If intermediate data is accumulated in buffers for parallel output, then the parallel output capability is improved, but buffer overflow may occur causing processing delays
Solution Approach 1:
The patent performs preliminary action by proactively switching threads before buffer overflow occurs. The system monitors buffer levels and switches from a thread whose buffer is approaching full capacity to another thread, preventing buffer overflow and the associated processing delays. This preliminary switching action maintains continuous parallel output capability.
Solution Approach 2:
The patent implements skipping by rapidly switching between threads based on buffer status. When a thread's buffer approaches full capacity, the system skips ahead to another thread with available buffer space, rushing through the potential bottleneck before it causes delays. This skipping mechanism maintains high parallel output rates by avoiding buffer overflow-induced stalls.
Data Source
AI summary
A method of processing information, includes: creating threads for respective input data streams, and switching them for processing, the threads each being for applying predetermined processing to an input data stream and storing the resulting intermediate data into a buffer; and reading multiple pieces of the intermediate data from the respective corresponding buffers to output multiple pieces of output data in parallel. The switching for processing includes: detecting the amount of intermediate data that is stored and yet to be read in the buffers when starting processing the threads; and stopping processing of the thread when the amount of the intermediate data thereof exceeds a set value, and switching processing to other threads.


