Dynamic Task Complexity Limits for Multi-Threaded Print Jobs

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #23Feedback

2Reliability

If the complexity limit is decreased to maintain system stability, then reliability improves, but productivity decreases due to underutilization of processing resources

Engineering Contradiction:
Improvesystem stabilityVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvetask allocation simplicityVSAvoidsystem state responsiveness
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvejob characteristic analysisVSAvoidprocessing delay
Core Design Contradiction:
Measurement precisionVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9250848B2Dynamically adjusting the complexity of worker tasks in a multi-threaded application
Publication Date: 2016.02.02 CANON KK
  • US9250848B2 patent drawing
  • US9250848B2 patent drawing
  • US9250848B2 patent drawing

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.