Technical Computing Environment Installation on Heterogeneous Hardware

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing environments require users to develop code in conventional programming languages like C++, C, or Fortran, which is inefficient for tasks in mathematics, science, engineering, and medicine, and do not effectively utilize heterogeneous hardware platforms.

Innovation Solution

A technical computing environment (TCE) is implemented with precompiled binary files that support multiple architectures, using a graphical model and code generator to optimize code for heterogeneous hardware platforms, allowing dynamic typing and array-based programming, and enabling automatic reconfiguration based on user usage patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional programming languages (C++, C, Fortran) are used for computing tasks, then users can perform basic programming operations, but computational efficiency for mathematics, science, engineering, and medicine tasks is poor and heterogeneous hardware platforms are not effectively utilized

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent replaces conventional programming language mechanisms with a mathematical notation-based system. Instead of using traditional programming constructs (loops, conditionals, functions), the system uses mathematical notations that are natively supported by the heterogeneous hardware platform, enabling direct translation of mathematical algorithms into optimized machine code without manual coding overhead

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

Solution Approach 2:

The patent introduces a code generator as an intermediary component that automatically translates mathematical notations into optimized code for specific hardware platforms. This intermediary handles the complexity of platform-specific optimizations, allowing users to work with high-level mathematical notations while the system manages the low-level hardware-specific code generation

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If precompiled binary files supporting multiple architectures are used, then compatibility across different hardware platforms is improved, but the ability to optimize for specific heterogeneous platforms is reduced

Engineering Contradiction:
Improveplatform compatibilityVSAvoidplatform-specific optimization
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements a dynamic code generation system that adapts to the specific hardware platform at runtime. The code generator detects the target platform's characteristics (CPU, GPU, FPGA, ASIC) and dynamically generates optimized code accordingly, rather than relying on static precompiled binaries. This allows the system to maintain compatibility across platforms while achieving optimal performance for each specific platform

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the approach from fixed binary files to parameter-driven code generation. The system accepts platform-specific parameters (hardware architecture, available resources, performance constraints) and uses these parameters to generate optimized code. This allows the same mathematical notation to be efficiently executed on different hardware platforms by adjusting generation parameters rather than maintaining separate binary versions

Inventive Principle:
Principle #35Parameter changes

3Ease of manufacture

If code is manually developed in conventional programming languages, then flexibility in programming is maintained, but time consumption for development increases and performance optimization decreases

Engineering Contradiction:
Improvecode development easeVSAvoiddevelopment time
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The patent implements an automatic code generation system that serves itself by translating mathematical notations directly into platform-optimized code without requiring manual programming. The system automatically handles code synthesis, optimization, and platform-specific adaptations, eliminating the need for users to manually write and optimize code in conventional programming languages

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent performs preliminary code generation and optimization before execution. The code generator pre-compiles mathematical notations into optimized machine code specific to the target hardware platform, eliminating the need for runtime interpretation or manual optimization. This preliminary action ensures both ease of use (users write mathematical notations, not code) and performance optimization (code is pre-optimized for the specific platform)

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9846575B1Installation of a technical computing environment customized for a target hardware platform
Publication Date: 2017.12.19 MATHWORKS INC
  • US9846575B1 patent drawing
  • US9846575B1 patent drawing
  • US9846575B1 patent drawing

AI summary

A device may receive installation software for installing a technical computing environment to be executed by a hardware platform, and may receive platform information associated with the hardware platform. The device may generate code for the technical computing environment based on the installation software and the platform information, and may generate, based on the code, one or more binary files or bitstream files for installing the technical computing environment on the hardware platform. The device may utilize the one or more binary files or bitstream files to install the technical computing environment on the hardware platform and for execution by the hardware platform. The technical computing environment may be customized for the hardware platform.