ML-Guided Software Distribution for Multi-Node Parallel Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software applications struggle to efficiently execute on multiprocessor or distributed systems, particularly digital twins, due to the complexity of parallelizing tasks across heterogeneous and dynamically changing environments, requiring specialized coding and expert skills, and existing tools like OpenMP and CUDA are burdensome and often suboptimal.

Innovation Solution

The method employs an AI engine with a machine learning model to intercept instructions, generate action outputs, and automate the distribution and execution of software across multiple processor cores or elements, facilitating parallel or serial execution without specialized coding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If software applications are parallelized across multiple processor cores or distributed systems, then execution speed and productivity are improved, but the complexity of coding and system configuration increases significantly

Engineering Contradiction:
Improveexecution speedVSAvoidcoding complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs self-parallelization by automatically analyzing the software application and generating parallel execution plans without requiring manual intervention from developers. The parallelization engine autonomously identifies parallelizable tasks, determines optimal distribution across processing elements, and manages synchronization, allowing the system to serve itself rather than requiring expert programmer intervention.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

A parallelization engine acts as an intermediary layer between the software application and the multi-core/distributed system. This intermediary automatically translates sequential code into parallel execution plans, managing the complexity of task distribution, synchronization, and resource allocation, thereby shielding developers from the inherent complexity of parallel programming.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If existing parallelization tools like OpenMP and CUDA are used, then parallel execution capability is improved, but the burden on developers and the suboptimality of results increase

Engineering Contradiction:
Improveparallel execution capabilityVSAvoiddeveloper burden
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system eliminates the need for developers to manually use parallelization tools by implementing automatic parallelization. The parallelization engine autonomously analyzes the application code, identifies parallelizable sections, and generates optimized parallel execution plans without requiring developers to learn or apply tools like OpenMP or CUDA, thereby removing the developer burden entirely.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system dynamically adjusts parallelization parameters such as grain size, distribution strategy, and synchronization points based on the specific characteristics of the application and the target hardware architecture. This automated parameter optimization eliminates the need for developers to manually tune these complex parameters, reducing burden while achieving superior performance compared to manual parallelization approaches.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If software applications are distributed across heterogeneous processing elements, then adaptability and resource utilization are improved, but the difficulty of managing and coordinating execution increases

Engineering Contradiction:
Improveresource utilizationVSAvoidcoordination complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The parallelization engine serves as an intelligent intermediary that automatically manages the distribution of tasks across heterogeneous processing elements. It analyzes the capabilities of different processing elements, optimally allocates tasks to match resources, and handles all coordination and synchronization requirements, thereby simplifying the management of heterogeneous systems while maximizing resource utilization.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically adapts its parallelization strategy based on the specific characteristics of the target heterogeneous system. It automatically detects the capabilities and states of different processing elements and adjusts task distribution, load balancing, and synchronization mechanisms in real-time, enabling effective management of diverse hardware configurations without increasing coordination complexity for developers.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20260073277A1Automated software application distribution and execution on multi-nodal digital systems
Publication Date: 2026.03.12 SOPHIC COMPUTE INC
  • US20260073277A1 patent drawing
  • US20260073277A1 patent drawing
  • US20260073277A1 patent drawing

AI summary

The invention provides for utilization of a machine learning (ML) subsystem on each node of a multi-node system to effect parallel execution of software applications across multiple nodes through interaction of the ML subsystems and through the exchange of objects (instruction, data, task and thread) that define the parallel execution. A method according to the invention includes executing software on a first processing element, intercepting instructions executed during execution of the software, applying a representation of the intercepted instructions to the ML subsystem to generate action outputs to effect further execution of the software on multiple processing elements, generating objects associated with the software and/or with data to be processed thereby, and making the action outputs and/or object(s) available to multiple processing elements to effect such further execution.