Compiler Cycle Count Generation for Parallel Task Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In software development, it is challenging for compilers to accurately determine the number of cycles required for each task, especially when function definitions are split across multiple source files, leading to inefficiencies in parallel task execution due to unequal execution times.
Innovation Solution
A computer system and method that compiles source programs to generate information on the number of cycles for each function and task, including call relationships, allowing for accurate calculation of task cycles and optimal thread assignment during link processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If compiling is performed for each source file separately, then the compiling process is simple and modular, but it becomes difficult to determine the number of cycles of tasks that span multiple source files
Solution Approach 1:
The patent introduces an intermediary mechanism (linker or integrated compilation system) that bridges separate compilation processes. This intermediary collects cycle count information from individual source file compilations and aggregates it to determine the total cycle counts for tasks spanning multiple files, thus preserving task-level cycle information without requiring a complete rewrite of the modular compilation process
Solution Approach 2:
The patent applies preliminary action by having the compiler generate and store cycle count information for each function during the compilation of individual source files. This pre-computed information is then reused during link processing to determine the total cycle counts for tasks, avoiding the need for re-compilation and enabling accurate parallel execution scheduling
2Productivity
If parallel execution is implemented without accurate cycle information, then task execution can start immediately, but execution efficiency decreases due to unequal task completion times
Solution Approach 1:
The patent changes the parameter of task assignment by using calculated cycle counts to dynamically determine the number of threads assigned to each task. Tasks with longer cycle counts are assigned more threads to balance the execution time across all parallel tasks, thereby reducing the overall completion time and eliminating idle waiting time
Solution Approach 2:
The patent implements feedback by using the calculated cycle count information to adjust thread assignment decisions. The system feeds back the cycle count data from the compilation phase to the execution phase, enabling intelligent resource allocation that optimizes parallel execution efficiency based on actual task requirements
Data Source
AI summary
A computer configured to perform compiling, including a memory configured to store a source program and a processor, the processor is configured to execute a method which includes; compiling the source program, wherein a number of cycles desired for executing each function included in the source program and information indicating a call relationship between a task and a function called by the task are generated, and performing link processing, wherein a number of cycles desired for executing each task based on the number of cycles desired for executing each function and the call relationship.


