Method for selecting a hardware architecture for implementing a software application
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for determining the most suitable hardware architecture for software applications are tedious, expensive, and require detailed knowledge of the target architecture and programming language, necessitating multiple and costly tests.
Innovation Solution
A method that determines a target hardware architecture by executing a software application with modified input data sets, calculating metrics, and using a parallelization score to select the most suitable architecture without requiring detailed knowledge of the hardware or programming language.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If dynamic program analysis is used to determine hardware architecture, then accurate evaluation of application performance is achieved, but the process becomes tedious and expensive requiring detailed knowledge of target architecture and programming language
Solution Approach 1:
The patent introduces an intermediary metric calculation system that analyzes input-output data relationships without requiring direct knowledge of the target hardware architecture or programming language. This intermediary layer processes application data to generate metrics that indirectly characterize hardware suitability, eliminating the need for experts to manually analyze code against specific architecture requirements
Solution Approach 2:
The patent creates simplified copies or representations of the application's computational characteristics through metric calculations on input-output data. Instead of analyzing the actual complex code and its interaction with target hardware, the system generates metric copies that capture essential performance characteristics, enabling architecture selection without direct hardware knowledge
2Reliability
If multiple hardware architectures are tested empirically to find the most efficient implementation, then accurate hardware selection is achieved, but the process requires multiple costly tests and porting operations
Solution Approach 1:
The patent performs preliminary analysis of the application's input-output data characteristics before actual hardware deployment or extensive testing. By calculating metrics from representative input-output pairs in advance, the system predicts hardware suitability without requiring multiple iterative tests on different architectures, saving time and resources
Solution Approach 2:
The patent changes the evaluation parameters from direct hardware performance measurements to data-driven metric calculations. Instead of measuring actual execution time and performance on multiple hardware platforms (which is time-consuming), the system transforms the problem into calculating metrics from input-output data, which can be done rapidly and then mapped to hardware recommendations
3Productivity
If application code is analyzed in detail to evaluate parallel execution possibilities, then accurate parallelization assessment is achieved, but the process requires detailed knowledge of the application structure and target architecture
Solution Approach 1:
The patent enables the application data itself to reveal parallelization characteristics without external expert analysis. By processing input-output data through metric calculations, the system allows the data to self-reveal computational patterns and parallel execution potential, eliminating the need for experts to manually examine code structure and identify parallelization opportunities
Data Source
AI summary
A method for determining a target hardware architecture adapted for a software application includes: defining a first set of input data of the application; executing the application by a processor from the first input set to obtain a first set of output data; executing several iterations each including: selecting an input data; generating a second input set from the first input set, by modifying the selected input data; executing the application from the second input set to obtain a second output set; and calculating a metric relating to the first and second input and output sets of the iteration; calculating a parallelization score from the metrics calculated at each iteration; and determining the target architecture according to the parallelization score.

