Compiler Task Mapping for Multi-Core Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprogramming productivityVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice 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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If individual communication schemes are designated for each task, then communication between processing elements can be established, but programming complexity increases significantly

Engineering Contradiction:
Improvecommunication reliabilityVSAvoidprogramming complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #25Self-service

3Productivity

If automated mapping and communication scheme selection are performed, then programming productivity improves, but optimization complexity increases

Engineering Contradiction:
Improveprogramming productivityVSAvoidoptimization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2720147B1Apparatus and method for compiling program to be executed on multi-core processor, and task mapping method and task scheduling method of reconfigurable processor
Publication Date: 2020.06.17 SAMSUNG ELECTRONICS CO LTD
  • EP2720147B1 patent drawingFigure 1A
  • EP2720147B1 patent drawingFigure 1B
  • EP2720147B1 patent drawingFigure 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.