Parallelizing Computing Operations by Duplicating Dependencies
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional computing systems face challenges in effectively handling dependencies between sequences of operations, which hinder true parallel processing and lead to serialization, particularly in complex tasks like electronic design automation (EDA) for integrated circuits, due to the need for synchronization and data communication between CPUs.
Innovation Solution
The approach involves duplicating operations corresponding to dependencies between sequences, allowing them to be processed independently by different CPUs, thereby breaking dependencies and optimizing CPU usage for faster processing times.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If operations are parallelized across multiple processors, then processing speed increases, but dependencies between operation sequences force serialization and reduce parallel processing effectiveness
Solution Approach 1:
The patent segments operations into independent sequences that can be executed in parallel by different processors. By dividing the operation graph into disconnected components, the system eliminates dependencies that would force serialization, allowing each segment to be processed independently and simultaneously.
Solution Approach 2:
The patent creates copies of operations for different processors. When an operation appears in multiple sequences, it is duplicated for each processor that needs to execute it. This copying allows each processor to work with independent copies of operations, eliminating the need for synchronization and data communication between processors.
2Reliability
If synchronization operations are introduced to handle dependencies, then data consistency is maintained, but operation serialization occurs and true parallel processing is prevented
Solution Approach 1:
The patent segments the operation graph into disconnected sequences, ensuring that no synchronization operations are needed between different processor sequences. Each sequence is independent and can be executed without waiting for other sequences, eliminating serialization while maintaining data consistency through the independence of operation sequences.
Solution Approach 2:
By copying operations to different processors, the patent ensures that each processor has its own independent copy of required operations. This eliminates the need for synchronization to maintain data consistency, as each processor works with its own copy without needing to coordinate with other processors.
3Device complexity
If conventional EDA tools are used without parallel processing, then dependency handling is simple, but execution time increases significantly for complex IC designs
Solution Approach 1:
The patent segments EDA operations into independent sequences that can be executed in parallel. By dividing the complex EDA workflow into disconnected operation sequences, the system reduces execution time for complex IC designs while maintaining simple dependency handling within each sequence.
Solution Approach 2:
The patent dynamically assigns operations to different processors based on the operation graph structure. Operations are distributed to maximize parallel processing efficiency, allowing the system to adapt to the specific complexity of different EDA tasks and reduce execution time for complex designs.
Data Source
AI summary
Disclosed is an improved method and system for implementing parallel processing of computing operations by effectively handling dependencies between different sequences of computing operations. In some approaches, some or all operations corresponding to dependencies between different sequences of operations are duplicated among the different sequences. This approach may be used to implement parallel processing of EDA tools.


