Dynamic Task Complexity Limits for Multi-Threaded Print Jobs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for dynamically adjusting task complexity in multi-processor systems, such as printing systems, do not consider the changing system state and resource utilization, leading to inefficient task allocation and processing load management.
Innovation Solution
A method is introduced to allocate tasks for rendering a page in a multi-threaded system by determining a complexity limit based on the utilization measure of worker threads, adjusting this limit according to the system's state, and comparing the processing load of tasks to ensure optimal allocation and resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If task complexity is increased to improve processing efficiency, then productivity increases, but system stability deteriorates when worker threads are already at high utilization
Solution Approach 1:
The complexity limit is made dynamic rather than static. The system continuously monitors worker thread utilization and adjusts the complexity limit accordingly - increasing it when utilization is low to maximize productivity, and decreasing it when utilization is high to maintain stability. This dynamic adaptation resolves the contradiction by allowing the system to optimize for productivity under favorable conditions while protecting stability when resources are constrained.
Solution Approach 2:
The system implements feedback control by monitoring worker thread utilization and using this information to adjust task allocation decisions. The utilization metric serves as feedback that informs the complexity limit adjustment, creating a closed-loop control system that balances productivity and stability based on real-time system state.
2Reliability
If the complexity limit is decreased to maintain system stability, then reliability improves, but productivity decreases due to underutilization of processing resources
Solution Approach 1:
Rather than using a fixed conservative complexity limit, the system dynamically adjusts the limit based on actual system conditions. When worker threads have available capacity (low utilization), the complexity limit increases to maximize productivity. This dynamic approach eliminates the need to permanently reduce the complexity limit for stability, as stability is maintained only when necessary.
Solution Approach 2:
The system changes the complexity limit parameter in response to utilization conditions. By modifying this key parameter based on system state, the system can operate at high productivity levels when possible while maintaining stability when needed, rather than being constrained by a permanently low complexity limit.
3Ease of operation
If tasks are allocated based on fixed granularity levels, then ease of operation improves, but adaptability deteriorates when system state changes during job processing
Solution Approach 1:
The system transitions from static task granularity to dynamic task complexity. Instead of being constrained to fixed granularity levels, the system can allocate tasks of varying complexity based on real-time worker thread utilization. This maintains operational simplicity while dramatically improving adaptability to changing system conditions.
Solution Approach 2:
The system changes from using fixed granularity as the allocation parameter to using dynamic complexity limits. This parameter change allows the system to respond to utilization changes while maintaining the simplicity of rule-based allocation, resolving the contradiction between ease of operation and adaptability.
4Measurement precision
If the whole job is received before determining granularity, then measurement precision improves for job characteristics, but loss of time increases due to idle processing capacity
Solution Approach 1:
The system performs preliminary analysis of job characteristics when the whole job is received to determine initial complexity limits. However, it also continuously monitors and adjusts these limits during processing based on actual worker thread utilization. This preliminary action provides accurate initial task allocation while subsequent dynamic adjustment prevents time loss due to changing system conditions.
Solution Approach 2:
The system uses feedback from worker thread utilization monitoring to continuously refine task allocation decisions. This feedback mechanism allows the system to start with precise job-level analysis and then adapt to real-time conditions, minimizing idle processing capacity while maintaining accurate task complexity assessment.
Data Source
AI summary
Disclosed are methods of allocating tasks for a print job in a multi-threaded system. One method determines a utilisation measure of at least one of a plurality of intermediate data generating threads, and a complexity limit of a intermediate data generation task. The complexity limit is decreased if the determined utilisation measure of the intermediate data generating thread is under a predetermined threshold. The complexity limit limits a processing load of the intermediate data generation task to be allocated to the intermediate data generating thread. The method then compares the processing load of the intermediate data generation task to be allocated with the determined complexity limit, and allocates the intermediate data generation task to the intermediate data generating thread for processing in an event that the processing load of the intermediate data generation task satisfies the complexity limit.


