Plug-in Task Scheduler for Parallel Runtime Flexibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems face challenges in efficiently managing concurrent task execution due to limited flexibility in schedulers, which are constrained by the complexity of the runtime environment, leading to suboptimal scheduling and difficulty in keeping pace with increasing process demands.

Innovation Solution

A parallel execution runtime environment that delegates task queuing, dispatch, and thread management to plug-in schedulers, allowing user code to select and manage schedulers, and exposing interfaces for task initialization, status tracking, cancellation, and exception handling, while enabling inline execution and debugger access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a scheduler is integrated into the runtime environment, then task execution management is provided, but flexibility for runtime developers to implement customized schedulers is limited

Engineering Contradiction:
Improvescheduler flexibilityVSAvoidruntime environment complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The scheduler functionality is segmented into a separate plug-in component that can be independently developed, configured, and replaced without modifying the core runtime environment. This allows the runtime to maintain its stability while enabling flexible scheduler implementations through modular plug-ins.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A plug-in interface acts as an intermediary between the runtime environment and customized scheduler implementations. This interface layer enables developers to implement flexible scheduling logic while the runtime maintains control over task execution, preventing direct coupling and reducing overall system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If scheduler parameters are configured by a process, then some customization is possible, but optimization for particular process demands is insufficient

Engineering Contradiction:
Improvetask execution efficiencyVSAvoidscheduling optimization capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The scheduler transitions from a static configuration model to a dynamic plug-in architecture where scheduling policies can be changed at runtime. Processes can load and switch between different scheduler plug-ins based on their specific demands, enabling dynamic optimization without recompilation or reconfiguration of the entire runtime.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Instead of limiting customization to predefined parameters, the system allows complete scheduler policy changes by loading different plug-in implementations. Each plug-in can implement entirely different scheduling algorithms and policies tailored to specific process requirements, going beyond simple parameter adjustments.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9141422B2Plug-in task scheduler
Publication Date: 2015.09.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9141422B2 patent drawing
  • US9141422B2 patent drawing
  • US9141422B2 patent drawing

AI summary

A parallel execution runtime allows tasks to be executed concurrently in a runtime environment. The parallel execution runtime delegates the implementation of task queuing, dispatch, and thread management to one or more plug-in schedulers in a runtime environment of a computer system. The plug-in schedulers may be provided by user code or other suitable sources and include interfaces that operate in conjunction with the runtime. The runtime tracks the schedulers and maintains control of all aspects of the execution of tasks from user code including task initialization, task status, task waiting, task cancellation, task continuations, and task exception handling.