Bounding Function for Dynamic Software Verification Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional software testing methods lack the ability to uncover hard, corner-case bugs, and existing formal verification techniques require inefficient load balancing to achieve linear speeds in parallelization across multiple computer entities.
Innovation Solution
A distributed computing system that employs a bounding function to dynamically and intelligently balance the execution of software verification jobs across multiple nodes, using historical parameters and idle node availability to optimize job distribution and resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional software testing methods are used, then the testing process is simple, but hard corner-case bugs cannot be uncovered
Solution Approach 1:
The patent transforms conventional testing by introducing symbolic execution parameters and formal verification methods. Instead of using concrete input values, the system executes software with symbolic representations and generates constraints to explore all possible execution paths, thereby uncovering corner-case bugs that conventional testing misses.
Solution Approach 2:
The patent replaces manual or conventional automated testing mechanisms with formal verification methods. The system uses mathematical logic and constraint solving to automatically verify software properties, substituting traditional mechanical testing processes with a more rigorous formal approach that can prove correctness or find bugs.
2Reliability
If formal verification techniques are applied, then hard bugs can be uncovered, but parallelization speed is reduced due to inefficient load balancing
Solution Approach 1:
The patent implements dynamic load balancing in the parallel verification system. The system continuously monitors the status of verification tasks across multiple nodes and dynamically adjusts task distribution based on real-time workload conditions, ensuring optimal resource utilization and maintaining linear speedup in parallel execution.
Solution Approach 2:
The patent incorporates feedback mechanisms in the parallel verification system. Nodes report their execution status and workload to the coordinator, which uses this feedback information to make intelligent decisions about task allocation and resource distribution, thereby optimizing parallelization efficiency and achieving linear speeds.
3Reliability
If distributed computing is used for software verification, then verification capability is enhanced, but communication overhead increases
Solution Approach 1:
The patent divides the software verification task into independent segments that can be distributed across multiple computing nodes. Each node handles a specific portion of the verification workload, and the system uses a coordinator to manage task distribution. This segmentation enables parallel verification while minimizing communication overhead by reducing the frequency and volume of inter-node communications.
Data Source
AI summary
A method for verifying software includes determining the result of a bounding function, and using the result of the bounding function to apply one or more policies to the execution of the received job. The bounding function evaluates the execution of a received job, the received job indicating a portion of software to be verified. The result of the bounding function is based upon the present execution of the received job, one or more historical parameters, and an evaluation of the number of idle nodes available to process other jobs.


