Bounding Function for Dynamic Software Verification Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Reliability

If conventional software testing methods are used, then the testing process is simple, but hard corner-case bugs cannot be uncovered

Engineering Contradiction:
Improvebug detection capabilityVSAvoidtesting method complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #35Parameter changes

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If formal verification techniques are applied, then hard bugs can be uncovered, but parallelization speed is reduced due to inefficient load balancing

Engineering Contradiction:
Improvebug detection capabilityVSAvoidparallelization speed
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #23Feedback

3Reliability

If distributed computing is used for software verification, then verification capability is enhanced, but communication overhead increases

Engineering Contradiction:
Improveverification capabilityVSAvoidcommunication overhead
Core Design Contradiction:
ReliabilityVSLoss of energy

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8914775B2Dynamic and intelligent partial computation management for efficient parallelization of software analysis in a distributed computing environment
Publication Date: 2014.12.16 FUJITSU LTD
  • US8914775B2 patent drawing
  • US8914775B2 patent drawing
  • US8914775B2 patent drawing

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.