Multi-threaded Raster Image Processor Task Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for scheduling tasks in multi-threaded raster image processors (RIPs) struggle to simultaneously minimize total processing time, maximize processor utilization, reduce memory usage, and ensure timely and regular page output, as they often prioritize one goal over others, leading to suboptimal performance in achieving all desired objectives.

Innovation Solution

A method that interprets document objects in parallel, estimates the amount of parallelizable work, and selectively executes either interpreting or rasterizing tasks based on thresholds to maintain sufficient work for idle threads, thereby optimizing task scheduling to achieve multiple goals concurrently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If critical path heuristics are used to execute tasks on the critical path first, then the total time taken to process all tasks is reduced, but processor utilization and memory usage cannot be simultaneously optimized

Engineering Contradiction:
Improvetotal processing timeVSAvoidability to address multiple scheduling goals
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The scheduler dynamically adjusts its behavior based on real-time conditions by monitoring parallelizable work amount and switching between different scheduling modes (interpreting mode when work is low, rasterising mode when work is high). This dynamic adaptation allows the system to optimize for different goals at different times, resolving the contradiction between minimizing total processing time and addressing multiple scheduling objectives simultaneously.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the scheduling parameter (task selection criterion) based on the amount of parallelizable work available. When parallelizable work is below a threshold, the scheduler prioritizes interpreting tasks to increase parallelizable work. When above the threshold, it prioritizes rasterising tasks to minimize total processing time. This parameter change allows the system to adapt to different work states and optimize accordingly.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If list scheduling heuristics prioritize tasks with the largest number of dependencies, then task execution order is optimized, but the ability to minimize total processing time while maintaining regular page output is compromised

Engineering Contradiction:
Improvetask execution efficiencyVSAvoidtime to output first page
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The scheduler dynamically switches between interpreting mode (when parallelizable work is low) and rasterising mode (when parallelizable work is high). This dynamic behavior allows the system to first build up parallelizable work by executing interpreting tasks, then switch to rasterising mode to efficiently complete pages and output them regularly, thus addressing both task execution efficiency and timely page output.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system maintains continuous progress by ensuring that when in rasterising mode, pages are completed and output in a regular, timely fashion without interruption. The switching between modes ensures that useful action continues uninterrupted - either building parallelizable work or completing pages - thus maintaining continuous productivity while ensuring regular output.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If operating system scheduling is used, then high-priority processes are executed quickly, but the scheduler is not aware of individual tasks and cannot optimize for parallelizable work amount

Engineering Contradiction:
Improveprocess priority executionVSAvoidtask-level scheduling awareness
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The application-level scheduler acts as an intermediary between the operating system scheduler and the individual tasks. It receives process-level scheduling decisions from the OS and translates them into task-level execution decisions by monitoring parallelizable work amount and selecting appropriate tasks (interpreting or rasterising) to execute. This intermediary layer enables task-level optimization while respecting OS scheduling priorities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The scheduler implements feedback by continuously monitoring the amount of parallelizable work available and adjusting its task selection accordingly. When parallelizable work is below the threshold, it selects interpreting tasks to increase work availability. When above the threshold, it selects rasterising tasks to minimize total processing time. This feedback mechanism enables the system to adapt to changing work conditions while maintaining awareness of task-level details.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9672063B2Scheduling, interpreting and rasterising tasks in a multi-threaded raster image processor
Publication Date: 2017.06.06 CANON KK
  • US9672063B2 patent drawing
  • US9672063B2 patent drawing
  • US9672063B2 patent drawing

AI summary

A method of rasterizing a document using a plurality of threads interprets objects of the document by performing interpreting tasks associated with the objects. Objects associated with different pages are interpreted in parallel. A plurality of rasterizing tasks associated with the performed interpreting tasks are established, each performed interpreting task establishing a plurality of rasterizing tasks. The method estimates an amount of parallelisable work available to be performed using the plurality of threads. The amount of parallelisable work is estimated using the established rasterizing tasks and an expected number of interpreting tasks to be performed. The method selects, based on the estimated amount of parallelisable work, one of (i) an interpreting task to interpret objects of the document, and (ii) a rasterizing task from the established plurality of rasterizing tasks, and then executes the selected task using at least one thread to rasterize the document.