Task Stages Manage Parallel Execution Dependencies
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Productivity
If tasks are run in parallel to improve execution efficiency, then productivity increases, but device complexity increases due to dependency management
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.
2Device complexity
If sequential execution is used to simplify task management, then device complexity decreases, but productivity decreases due to underutilized resources
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.
3Productivity
If complex dependency analysis is performed to optimize parallel execution, then productivity increases, but ease of operation decreases due to maintenance difficulty
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.
Data Source
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.


