Graphical Programming Environment Supporting Multiple Models of Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphical programming systems, such as LabVIEW, are limited by their homogenous data flow model of computation, which restricts the ability to efficiently handle multiple rates of execution, feedback cycles, and dynamic scheduling, making it difficult to develop applications like multi-rate systems and simulations that require different models of computation.

Innovation Solution

A graphical programming environment that allows the creation of heterogeneous systems by supporting multiple models of computation within a single graphical program, enabling the use of different data flow semantics for various portions of the program, such as homogenous and heterogeneous data flow, to accommodate diverse application requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a homogenous data flow model of computation is used in graphical programming systems, then the system is simpler to implement and operate, but the ability to handle multiple rates of execution and complex simulations is limited

Engineering Contradiction:
Improvesimplicity of graphical programming systemVSAvoidability to handle multiple rates of execution
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The programming environment is segmented into different execution contexts (simulation context and real-time context) that can operate independently with different data flow models. This allows the system to maintain simplicity in each individual context while achieving versatility at the system level through context switching and coordination.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The graphical programming system is designed to support multiple data flow models (homogenous and heterogeneous) within a single unified platform. The system can accommodate different execution rates, feedback cycles, and scheduling requirements through a universal architecture that translates between different computational models.

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

2Device complexity

If a homogenous data flow model is used, then the programming environment is easier to implement, but it cannot efficiently handle feedback cycles and dynamic scheduling

Engineering Contradiction:
Improvecomplexity of programming environment implementationVSAvoidhandling of feedback cycles and dynamic scheduling
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system incorporates dynamic scheduling capabilities that allow execution contexts to switch between different data flow models based on the requirements of the program being executed. This enables efficient handling of feedback cycles and dynamic scheduling without requiring a completely complex implementation architecture.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

A translation layer or intermediary mechanism is introduced that converts between different data flow models (homogenous and heterogeneous) into a unified execution framework. This intermediary handles the complexity of feedback cycles and dynamic scheduling by translating them into standard operations that the execution engine can process efficiently.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If multiple models of computation are supported within a single graphical program, then the versatility and adaptability improve, but the device complexity and difficulty of implementation increase

Engineering Contradiction:
Improvesupport for multiple models of computationVSAvoidcomplexity of graphical programming environment
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The programming environment is divided into distinct execution contexts (e.g., simulation context and real-time context) that each operate with a specific data flow model. This segmentation isolates the complexity of different computational models into separate manageable units while maintaining overall system versatility through context coordination.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes key parameters such as execution rate, data flow semantics, and scheduling policy to accommodate different models of computation. By parameterizing these aspects rather than requiring fundamentally different architectural components, the system achieves versatility while controlling implementation complexity.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If multiple models of computation are integrated, then the ability to develop complex applications improves, but the ease of operation and user friendliness decreases

Engineering Contradiction:
Improveability to develop complex applicationsVSAvoiduser friendliness of programming environment
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

Complex applications are segmented into separate execution contexts that can be developed and executed independently. Each context maintains a consistent data flow model that is easy to understand and operate, while the overall system achieves high productivity by coordinating these segmented contexts to handle complex applications.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An intermediary translation layer is provided that automatically converts between different data flow models and execution contexts. This intermediary handles the operational complexity behind the scenes, allowing users to work with familiar graphical programming interfaces while the system translates between different computational models to enable complex application development.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7506304B2Graphical data flow programming environment with first model of computation that includes a structure supporting second model of computation
Publication Date: 2009.03.17 NATIONAL INSTRUMENTS CORP
  • US7506304B2 patent drawing
  • US7506304B2 patent drawing
  • US7506304B2 patent drawing

AI summary

System and method for creating a graphical program that uses multiple models of computation (MoC). A first plurality of graphical program elements is assembled in a graphical program in response to first input, where the assembled first plurality of graphical program elements have a first MoC. A structure is displayed in the graphical program indicating use of a second MoC for graphical program elements comprised within the interior of the structure. A second plurality of graphical program elements is assembled within the structure in response to second input, where the assembled second plurality of graphical program elements have the second MoC. The graphical program is executable to perform a function, for example, by executing the assembled first plurality of graphical program elements in accordance with the first model of computation, and executing the assembled second plurality of graphical program elements in accordance with the second model of computation.