Distributed Software Verification Scheduler with Dynamic 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 with a scheduler node and worker nodes that utilize intelligent and dynamic load balancing by accessing job and resource queues to assign tasks based on job characteristics, minimizing communication and optimizing resource utilization through job availability, resource availability, and scheduling policies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional software testing methods are used, then the testing process is simple and fast, but the ability to uncover hard, corner-case bugs is insufficient

Engineering Contradiction:
Improveability to uncover bugsVSAvoidtesting speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the software verification task into multiple independent jobs that can be distributed across multiple worker nodes. Each job represents a portion of code to be verified, allowing the system to handle complex verification tasks by segmenting them into manageable units that can be processed in parallel across distributed computing entities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a distributed computing dimension to software verification by implementing a scheduler node that coordinates worker nodes across multiple computing entities. This adds a temporal and spatial dimension to the verification process, enabling parallel execution of verification jobs across different computing resources while maintaining coordination through job queues and resource allocation mechanisms.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If formal verification techniques are applied, then the ability to uncover hard, corner-case bugs improves, but the parallelization speed efficiency deteriorates without intelligent load balancing

Engineering Contradiction:
Improveability to uncover bugsVSAvoidparallelization speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic load balancing by continuously monitoring job queues and resource availability across worker nodes. The scheduler dynamically assigns jobs to resources based on real-time conditions, adjusting the distribution of computational tasks to optimize parallelization efficiency. This dynamic approach ensures that verification work is distributed optimally across available computing resources, achieving near-linear speedups.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent employs feedback mechanisms where worker nodes report their status and job completion information back to the scheduler node. This feedback loop enables the scheduler to make informed decisions about job assignment, resource allocation, and load balancing strategies, optimizing the parallel verification process based on actual execution conditions and performance metrics.

Inventive Principle:
Principle #23Feedback

3Productivity

If distributed computing is used for software verification, then parallelization capability improves, but system complexity increases due to job queues and resource coordination

Engineering Contradiction:
Improveparallelization capabilityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent designs a universal scheduler node that handles multiple functions including job management, resource allocation, load balancing, and coordination across worker nodes. This multi-functional scheduler consolidates complex coordination logic into a single centralized component, simplifying the overall system architecture while enabling efficient distributed verification across multiple computing entities.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces job queues and resource queues as intermediary structures between the scheduler node and worker nodes. These queues act as buffers and mediators that decouple the scheduling decisions from actual job execution, simplifying the interaction between components. The job queue manages task distribution while the resource queue tracks available computing entities, streamlining the coordination process and reducing direct system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8789054B2Scheduling policy for efficient parallelization of software analysis in a distributed computing environment
Publication Date: 2014.07.22 FUJITSU LTD
  • US8789054B2 patent drawing
  • US8789054B2 patent drawing
  • US8789054B2 patent drawing

AI summary

A method for verifying software includes accessing a job queue, accessing a resource queue, and assigning a job from the job queue to a resource from the resource queue if an addition is made to the a job queue or to a resource queue. The job queue includes an indication of one or more jobs to be executed by a worker node, each job indicating a portion of a code to be verified. The resource queue includes an indication of a one or more worker nodes available to verify a portion of software. The resource is selected by determining the best match for the characteristics of the selected job among the resources in the resource queue.