Cross-Language Process Mediator for Machine Learning Training
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional machine learning model training is constrained by the programming language in which the system is implemented, limiting access to popular frameworks and libraries designed for other languages.
Innovation Solution
A computer-program product that includes a non-transitory machine-readable storage medium storing computer instructions to manage a parent computer process and child computer processes across different programming languages, enabling the execution of analytical operations on datasets by accessing and processing data through cross-process queues.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the system is programmed in a particular programming language, then the system can execute instructions in that language, but the system cannot utilize popular frameworks and libraries designed for other programming languages
Solution Approach 1:
The patent introduces a parent-child process architecture where the parent process (in the target programming language) acts as an intermediary that manages and coordinates child processes (in different programming languages). This mediator enables the system to access frameworks and libraries from multiple languages without requiring the entire system to be multi-language, thus resolving the contradiction between adaptability and complexity.
Solution Approach 2:
The system divides the analytical operation into separate segments: the parent process handles data access and coordination in the target programming language, while child processes handle specific analytical tasks in their native programming languages. This segmentation allows each process to utilize appropriate frameworks and libraries for its specific function while maintaining overall system coherence.
2Adaptability or versatility
If the system uses a parent-child process architecture to access multiple programming languages, then the system can utilize diverse frameworks and libraries, but the system complexity increases
Solution Approach 1:
The parent process serves as a central intermediary that manages all child processes, handling data retrieval, configuration management, and result aggregation. This centralized mediation simplifies process management by providing a single point of control, reducing the complexity that would otherwise arise from direct peer-to-peer coordination between multiple language processes.
Solution Approach 2:
The parent process is designed with universal functionality to handle multiple tasks: accessing data from data lakes, managing configuration files, coordinating child processes, and aggregating results. This multi-functionality reduces the need for separate specialized components, thereby managing system complexity while supporting multi-language operations.
3Productivity
If the system launches child processes for each analytical operation, then the system can execute operations in optimal programming languages, but the overhead of process management increases
Solution Approach 1:
The parent process performs preliminary actions by pre-fetching data from data lakes and preparing configuration files before child processes are launched. This preliminary preparation reduces the workload and execution time for child processes, thereby improving overall productivity while minimizing the time loss associated with process management overhead.
Solution Approach 2:
The system maintains continuity of useful action by having the parent process continuously manage and coordinate child processes throughout the analytical operation. Data is passed efficiently from the parent to child processes and results are continuously aggregated, ensuring that useful computational action continues without interruption while minimizing idle time during process transitions.
Data Source
AI summary
A system, method, and computer-program product includes receiving, by a worker process, a plurality of chunks of data from a client process; deriving, by the worker process, an input pattern for feeding the plurality of chunks of data to a machine learning model; caching, by the worker process, a subset of data elements of the plurality of chunks of data specified by the input pattern based on a data caching policy; and training the machine learning model by feeding the subset of data elements cached by the worker process and a remainder of data elements in the plurality of chunks of data when requested by the input pattern.


