Machine Vision Processor Allocation Dynamics

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Machine vision software for multiple processor computers was not optimized to adapt to various operating conditions, requiring users to manually select processor usage for each tool routine, leading to inefficiencies when not all cores were available due to contention with other programs.

Innovation Solution

A method that allows users to dynamically designate the maximum number of processors for a machine vision application program, enabling each tool routine to use the lesser of the available processors and its capability, allowing for simultaneous execution on multiple processors and flexible allocation during execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the machine vision software is configured to use all processor cores, then execution speed is improved, but flexibility to accommodate other applications deteriorates

Engineering Contradiction:
Improveexecution speedVSAvoidflexibility to accommodate other applications
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The software dynamically determines the number of processor cores to use by detecting available cores at runtime and comparing against a stored maximum value, allowing flexible adaptation between maximizing execution speed and accommodating other applications based on current system conditions

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If users manually select processor usage for each tool routine, then adaptability to various operating conditions is improved, but device complexity and time consumption deteriorate

Engineering Contradiction:
Improveadaptability to various operating conditionsVSAvoidconfiguration complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The software automatically configures processor usage for each tool routine by detecting available cores and applying the maximum limit without user intervention, making the system self-configuring while maintaining adaptability to different operating conditions

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A single automated configuration mechanism serves all tool routines uniformly, eliminating the need for individual manual settings while maintaining adaptability across different operating conditions and application scenarios

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

3Productivity

If the software uses all available processor cores, then productivity is improved, but the ability to share processors with other applications deteriorates

Engineering Contradiction:
Improveimage analysis speedVSAvoidmulti-application compatibility
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system dynamically adjusts processor allocation by detecting currently available cores at runtime and comparing against a pre-stored maximum value, enabling automatic adaptation between high-performance mode and multi-application sharing mode based on real-time system conditions

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9412158B2Method of configuring a machine vision application program for execution on a multi-processor computer
Publication Date: 2016.08.09 COGNEX CORP
  • US9412158B2 patent drawing
  • US9412158B2 patent drawing

AI summary

A machine vision system includes a computer with one or more processors and software that has a plurality of tool routines each performing a different image analysis function. A machine vision application program is created by selecting certain ones of the plurality of tool routines to analyze the image. A maximum number of processors on the computer is designated as available for executing a machine vision application, wherein the maximum number may be less than the total number of processors on the computer. When the machine vision application program operates execution of each tool routine is limited to using simultaneously no more than the maximum number of processors.