Compiler Task Mapping for Multi-Core Processors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The complexity of programming for multicore processors leads to low productivity and quality due to the difficulty in manually designing communication schemes between processing elements, making it challenging to optimize task mapping and scheduling.
Innovation Solution
A method and apparatus for compiling programs on multicore processors that involve generating an initial solution by mapping tasks and selecting a communication scheme, followed by optimization and scheduling, where the communication scheme is designated during the compiling process, using techniques like simulated annealing and probabilistic algorithms to improve task distribution and execution timing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If manual programming is used for multicore processors, then program execution can be performed, but programming productivity and program quality deteriorate due to high complexity
Solution Approach 1:
The system enables self-service by allowing the compiler to automatically perform task mapping and communication scheme selection without requiring manual programming intervention. The mapping unit automatically maps tasks to processing elements, and the communication scheme selection unit automatically selects appropriate communication schemes, making the system serve itself rather than requiring external manual configuration.
Solution Approach 2:
The patent replaces the mechanical manual programming process with an automated compilation process. Instead of manually designing task mappings and communication schemes, the system uses a compiler with automated mapping and selection mechanisms that substitute the manual mechanical process with an automated computational process.
2Reliability
If individual communication schemes are designated for each task, then communication between processing elements can be established, but programming complexity increases significantly
Solution Approach 1:
The communication scheme selection unit implements universality by selecting from a set of standardized communication schemes that can be applied to multiple different tasks and processing element pairs. Instead of requiring unique custom communication designs for each task, the system uses a universal set of communication schemes that can be automatically selected and applied across different scenarios.
Solution Approach 2:
The communication scheme selection unit enables self-service by automatically selecting appropriate communication schemes based on the task requirements and processing element configurations, eliminating the need for manual designation of communication schemes for each task.
3Productivity
If automated mapping and communication scheme selection are performed, then programming productivity improves, but optimization complexity increases
Solution Approach 1:
The compilation process is segmented into distinct functional units: a mapping unit that handles task-to-processing element mapping, a communication scheme selection unit that handles communication scheme selection, and a scheduling unit that handles execution scheduling. This segmentation allows each unit to focus on a specific aspect of optimization, managing complexity through functional decomposition.
Solution Approach 2:
The compiler acts as an intermediary between the programmer and the multicore processor execution. It mediates the complex optimization processes by automatically performing mapping, communication scheme selection, and scheduling, shielding the programmer from complexity while achieving optimized execution.
Data Source
Figure 1A
Figure 1B
Figure 2A
AI summary
A method of compiling a program to be executed on a multicore processor is provided. The method may include generating an initial solution by mapping a task to a source processing element (PE) and a destination PE, and selecting a communication scheme for transmission of the task from the source PE to the destination PE, approximately optimizing the mapping and communication scheme included in the initial solution, and scheduling the task, wherein the communication scheme is designated in a compiling process.