Parallel Calculation Planning for Rule-Set Dependency Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing planning systems face performance challenges in evaluating large volumes of rule-based expressions due to sequential computation processes that do not leverage high-performance computing architectures, requiring manual specification of parallelization by developers and lacking dynamic scalability.
Innovation Solution
A system that dynamically generates a parallel calculation plan by splitting rule-based expressions into task units, rearranging them into sequential task groups based on logical dependencies and problem partitioning, enabling parallel execution across multiple processing nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If sequential computation process is used to evaluate rule-based expressions, then implementation simplicity is maintained, but computation speed and processing efficiency deteriorate
Solution Approach 1:
The patent divides the set of rule-based expressions into multiple independent task units that can be executed in parallel. Each task unit represents a discrete evaluation unit that can be processed separately, enabling parallel computation across multiple processing nodes while maintaining the logical dependencies between rules through the task graph structure.
Solution Approach 2:
The patent transitions from sequential one-dimensional execution to multi-dimensional parallel execution by organizing task units into a task graph with multiple processing nodes. This dimensional transformation allows simultaneous evaluation of independent rules across different processing nodes, significantly improving computation speed.
2Ease of operation
If manual parallelization specification is required, then control precision over execution order is improved, but ease of operation and development time deteriorate
Solution Approach 1:
The system automatically generates the parallel execution plan by analyzing the logical dependencies between rules and constructing a task graph. This self-service mechanism eliminates the need for developers to manually specify parallelization details, reducing development time while maintaining precise control over execution order through automatic dependency analysis.
Solution Approach 2:
The patent implements dynamic parallelization where the execution plan is generated at runtime based on the actual rule set and data characteristics. This dynamic approach allows the system to adaptively optimize the parallel execution strategy without requiring static manual configuration, improving both ease of operation and flexibility.
3Productivity
If high-performance computing platforms are utilized, then processing capacity is improved, but system complexity and resource management difficulty increase
Solution Approach 1:
The patent introduces a task graph as an intermediary layer between the rule-based expressions and the parallel computing platform. This task graph abstracts the complexity of resource management and parallel execution, providing a standardized interface that simplifies the utilization of high-performance computing platforms while maintaining high processing capacity.
4Reliability
If rule-based expressions are evaluated in batch form, then computational accuracy is maintained, but response time and online processing capability deteriorate
Solution Approach 1:
The patent enables continuous evaluation of rule-based expressions by implementing parallel processing that can operate in both batch and online modes. The task graph structure allows for continuous execution of independent rules without waiting for sequential completion, maintaining computational accuracy through consistent evaluation logic while significantly reducing response time through parallelism.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A system for generating a parallel calculation plan to evaluate a rule-set or a rule-based expression list by spilling the list of rule-based expressions into multiple task units and reconfiguring all independent task units at the same calculation levels into several parallelized task groups such that task units within each task group may be scheduled for parallel execution across a cluster of processing nodes. The parallelization may be dynamically determined based on generated tasks but may further be subject to an additional layer of parallelization based on range-based splitting of each task into multiple parallel executable subtasks. The final parallelized calculation plan may include a set of sequentially ordered task groups based on logical dependencies and problem partitioning with information regarding parallelized execution of each task group.