Software Execution Parallelization Across Distributed Processor Nodes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software applications struggle to efficiently execute on multiprocessor or distributed systems, particularly digital twins, requiring specialized coding and expert skills, and often result in suboptimal performance due to a lack of automated parallelization and distribution methods.
Innovation Solution
The method involves intercepting instructions executed by a processor core, using a machine learning model to generate commands for further execution on multiple processor cores, allowing automated parallel or serial execution without specialized coding, and utilizing a communication protocol for distributed processing across a digital system.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If software applications are manually parallelized for multiprocessor systems, then execution efficiency is improved, but the complexity of software development increases and requires expert skills
Solution Approach 1:
The system employs AI agents that automatically analyze software applications and generate parallelization strategies without human intervention. The AI engine executes the application, intercepts instructions, and autonomously determines optimal parallelization approaches, eliminating the need for expert developers to manually rewrite code for multiprocessor systems.
Solution Approach 2:
An AI engine acts as an intermediary between the software application and the multiprocessor system. It intercepts instructions from the application, analyzes them, and translates them into parallelized execution commands distributed across multiple processor cores, bridging the gap between sequential software design and parallel hardware execution.
2Power
If software applications are executed on distributed systems, then processing capacity is improved, but coordination and synchronization become more difficult
Solution Approach 1:
The AI engine continuously monitors the execution state of the application across distributed processor cores, collecting feedback on performance metrics and synchronization status. It uses this feedback to dynamically adjust parallelization strategies, optimize task distribution, and resolve coordination issues in real-time, improving both processing capacity and coordination efficiency.
3Ease of operation
If automated parallelization is implemented, then the need for expert skills is reduced, but the complexity of the execution system increases
Solution Approach 1:
The system extracts the complex parallelization logic from the software application itself and places it in a separate AI engine. The application code remains unchanged and simple to write, while the AI engine handles all the complexity of analyzing, parallelizing, and coordinating execution across multiple processors, making software development easier without permanently increasing application complexity.
Data Source
AI summary
A method for sharing application parameters (including current and future resource requirements) across a multiple node computing system to enable nodes and aggregates of nodes to further parallelize and further optimize parallel application execution. A method according to the invention includes executing the following steps on multiple processing elements: (i) beginning execution of a given software application, (ii) determining resources to be used for further execution of that application, taking into account availability of resources on that and at least another processing element, (iii) determining an availability of resources on that processing element for execution of other software applications, taking into account the determination of step (ii), (iv) executing the given software application on multiple processing elements of the digital system, and (v) making the determination of step (iii) available to processing elements for their resource determinations.


