Task Stages Manage Parallel Execution Dependencies

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Scheduling tasks in a computer system environment is inefficient due to underutilized resources and increased execution time when tasks are run sequentially, and running them in parallel is complicated by dependencies between tasks, making it difficult to maintain and costly to manage these dependencies.

Innovation Solution

The introduction of an extra abstraction layer called 'stages' to manage dependencies between tasks, where each task is mapped to a specific stage and maximum stage, allowing for parallel execution while preventing tasks with lower stages from running concurrently, thus optimizing resource utilization and simplifying maintenance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If tasks are run in parallel to improve execution efficiency, then productivity increases, but device complexity increases due to dependency management

Engineering Contradiction:
Improvetask execution efficiencyVSAvoiddependency management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments tasks into different stages (e.g., stage 1, stage 2, stage 3) based on their dependency relationships. Each task is assigned to a specific stage, and the system manages parallel execution by controlling which stages can run concurrently. This segmentation transforms the complex web of inter-task dependencies into a simpler hierarchical structure where stage N can only execute after stage N-1 completes, thereby reducing the complexity of dependency management while maintaining high parallel execution efficiency.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If sequential execution is used to simplify task management, then device complexity decreases, but productivity decreases due to underutilized resources

Engineering Contradiction:
Improvetask management simplicityVSAvoidresource utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements a dynamic task execution system where the execution plan is not fixed but adapts based on stage completion. The system dynamically determines which tasks can be executed in parallel by checking stage dependencies in real-time. This dynamic approach allows the system to automatically optimize resource utilization by launching as many independent tasks as possible while maintaining simple management through the stage abstraction, thus resolving the contradiction between simplicity and productivity.

Inventive Principle:
Principle #15Dynamics

3Productivity

If complex dependency analysis is performed to optimize parallel execution, then productivity increases, but ease of operation decreases due to maintenance difficulty

Engineering Contradiction:
Improveparallel execution optimizationVSAvoiddependency maintenance ease
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent introduces stages as an intermediary layer between tasks and the execution system. Instead of directly managing complex task-to-task dependencies, the system uses stages as mediators: tasks are grouped into stages, and dependency rules are simplified to stage-level constraints (stage N waits for stage N-1). This intermediary abstraction maintains optimal parallel execution by enforcing proper sequencing while dramatically simplifying operation and maintenance, as users only need to define stage assignments rather than analyze complex inter-task dependency graphs.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8949853B2Using stages to handle dependencies in parallel tasks
Publication Date: 2015.02.03 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8949853B2 patent drawing
  • US8949853B2 patent drawing
  • US8949853B2 patent drawing

AI summary

Technologies are described herein for using stages for managing dependencies between tasks executed in parallel. A request for permission to execute a task from a group or batch of tasks is received. The specified task is retrieved from a task definition list defining a task ID, stage, and maximum stage for each task in the group. If another pending or currently running task exists with a stage and maximum stage less than the stage defined for the retrieved task, then the retrieved task is not allowed to run. If no other pending or currently running task exists with a stage and maximum stage less than the stage defined for the retrieved task, then the permission to execute the specified task is given.