Parallel Program Synthesis via ML Execution Time Prediction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Program synthesis systems face inefficiencies due to the overhead of creating new threads for sub-goals, which can overwhelm computing resources, especially when the computational effort is small compared to thread creation overhead.
Innovation Solution
A machine learning model is trained to predict the execution times of sub-goals, allowing for efficient scheduling across processing cores and CPUs, reducing wall-clock time and conserving memory by optimizing the parallel execution of sub-goals.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a new thread of execution is spawned for each sub-goal, then parallel execution capability is improved, but computing resources are overwhelmed due to thread creation overhead
Solution Approach 1:
The system performs preliminary actions by predicting execution times of sub-goals before actual execution, and pre-scheduling them based on these predictions. This allows the system to prepare execution schedules in advance, reducing the need for dynamic thread creation and management during runtime, thereby decreasing overhead while maintaining parallel execution capability.
Solution Approach 2:
The patent introduces a predictor as an intermediary component that estimates execution times of sub-goals. This mediator enables informed scheduling decisions without requiring immediate thread creation, allowing the system to batch and optimize thread creation operations, thus reducing overall thread creation overhead while preserving parallelism.
2Loss of time
If sub-goals are executed in parallel across available cores, then synthesis time is reduced, but memory consumption increases
Solution Approach 1:
The system dynamically adjusts the degree of parallelization by scheduling sub-goals based on predicted execution times and available resources. Rather than maintaining fixed parallel execution, the scheduler adaptively controls which sub-goals run concurrently, optimizing the balance between synthesis time and memory consumption based on current system state.
Solution Approach 2:
The patent changes the parameter of parallel execution degree by using execution time predictions to control scheduling decisions. Sub-goals with shorter predicted execution times may be batched together, while longer-running sub-goals are spaced out, effectively adjusting the level of parallelism to manage memory consumption while still reducing overall synthesis time.
3Productivity
If more sub-goals are scheduled in parallel, then productivity increases, but processor load becomes excessive
Solution Approach 1:
The system uses execution time predictions as feedback to make informed scheduling decisions. By estimating how long each sub-goal will take, the scheduler can distribute workload more evenly across processors, avoiding excessive concentration of tasks on certain cores. This feedback mechanism enables maintaining high throughput while preventing processor overload.
Data Source
AI summary
Systems, methods, and computer-executable instructions for parallel searching in program synthesis. A task to synthesize in a domain specific language (DSL) is received. The task is synthesized. Synthesizing the task includes generating sub-goals based on the task. The synthesized task includes a subset of the sub-goals. An estimated completion time for each of the sub-goals is expressed using the DSL is determined. The sub-goals are scheduled based on the estimated completion time. Some of the sub-goals are scheduled to be executed in parallel. The sub-goals are solved based on the scheduling to synthesize the task in the DSL. An elapsed real time to complete the synthesizing the task is reduced compared to scheduling the sub-goals in an order based on sub-goal generation.


