Machine Learning Execution Graph for Heterogeneous Cloud Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for parallel execution of complex machine learning tasks in heterogeneous cloud environments face challenges due to assumptions and constraints that are difficult to combine, particularly in configuring systems across multi-threaded, multi-core, GPU, and embedded systems, leading to inefficient data processing and execution optimization.
Innovation Solution
A system that maps data flow elements to underlying hardware, optimizing execution by analyzing complex data flows and considering hardware constraints, allowing for visualization of execution flow and server configuration, and enabling user input for additional considerations to achieve optimal processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If traditional compiler-level parallelization is used in heterogeneous cloud environments, then programming can be implemented at the programming language level, but assumptions and constraints become difficult to parallelize across multi-threaded, multi-core, GPU, and embedded systems
Solution Approach 1:
The patent introduces an execution graph as an intermediary representation between the program and heterogeneous execution environments. This execution graph serves as a mediator that captures data dependencies and enables platform-specific optimizations without requiring changes to the original program code, thus resolving the contradiction between ease of programming and adaptability to different parallelization environments
Solution Approach 2:
The patent segments the program into isolated modules with identifiable data flow operations. Each module is represented as a node in the execution graph, allowing independent analysis and optimization. This segmentation enables the system to handle different heterogeneous environments (multi-threaded, multi-core, GPU, embedded) by applying appropriate optimizations to each segment without affecting the entire program
2Ease of manufacture
If multiple assumptions are made independently for parallel execution, then each constraint can be implemented separately, but mixing them into a unit does not translate into the sum of individual implementations
Solution Approach 1:
The patent merges multiple independent assumptions and constraints into a unified execution graph representation. The execution graph combines data flow analysis, dependency tracking, and hardware constraint modeling into a single coherent structure, enabling the system to achieve execution optimization that is greater than the sum of individual implementations by capturing interactions between different constraints
3Adaptability or versatility
If modules are isolated and categorized with restrained inputs and outputs, then module interface can be normalized, but the architecture becomes less aware of particular internals of each module
Solution Approach 1:
The patent applies local quality by maintaining normalized module interfaces while preserving internal architecture awareness through the execution graph. Each node in the execution graph represents a module with standardized inputs and outputs, but the graph structure itself captures detailed information about data dependencies and internal operations, allowing the system to have both interface standardization and architectural awareness simultaneously
4Extent of automation
If an underlying program controls movement of modules across heterogeneous environment, then module placement can be automated, but the program becomes coupled into the execution control logic
Solution Approach 1:
The patent extracts execution control logic from the underlying program by introducing a separate execution graph that captures all placement and scheduling decisions. This extraction allows the program to remain decoupled from execution control details while still enabling automated module placement across heterogeneous environments, as the execution graph contains all necessary information for optimization without being part of the program itself
Data Source
AI summary
A distributed machine learning engine is proposed that allows for optimization and parallel execution of the machine learning tasks. The system allows for a graphical representation of the underlying parallel execution and allows the user the ability to select additional execution configurations that will allow the system to either take advantage of processing capability or to limit the available computing power. The engine is able to run from a single machine to a heterogeneous cloud of computing devices. The engine is capable of being aware of the machine learning task, its parallel execution constraints and the underlying heterogeneous infrastructure to allow for optimal execution based on speed or reduced execution to comply with other constraints such as allowable time, costs, or other miscellaneous parameters.


