Dynamic Code Replication for Parallel Single-Threaded Programs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems with multiple processing elements, single-threaded applications often waste processing power due to inefficient parallelization, leading to suboptimal performance and increased energy consumption, as existing methods fail to effectively optimize code execution across multiple cores.

Innovation Solution

The method involves optimizing parallelized code by identifying and removing duplicated instructions and replacing them with communication operations, using a minimum-cut algorithm to balance workload and communication costs, ensuring efficient execution and reduced power consumption across processing elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If code is replicated for parallel execution on multiple processing elements, then processing throughput is improved, but power consumption increases due to duplicated instructions being executed on multiple cores

Engineering Contradiction:
Improveprocessing throughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent extracts duplicated instructions from multiple replicated code segments and removes them, keeping only essential instructions that must be executed on each processing element. This extraction principle reduces redundant instruction execution while maintaining necessary parallel computation, thereby improving throughput without proportionally increasing power consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent discards duplicated instructions that are unnecessary for correct parallel execution and recovers performance by optimizing the remaining essential instructions. The minimum-cut algorithm identifies which duplicated instructions can be safely discarded (removed) versus which must be retained (recovered) for correct data flow and computation on each processing element.

Inventive Principle:
Principle #34Discarding and recovering

2Use of energy by moving object

If duplicated instructions are removed from parallelized code, then power consumption is reduced, but data consistency may be compromised

Engineering Contradiction:
Improvepower consumptionVSAvoiddata consistency
Core Design Contradiction:
Use of energy by moving objectVSReliability

Solution Approach 1:

The patent introduces communication operations as intermediaries between processing elements to replace removed duplicated instructions. These communication operations (synchronization barriers, data exchanges) ensure that data consistency and program correctness are maintained even when instructions are removed from replicated code segments, allowing power consumption to be reduced without compromising reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent dynamically determines which instructions to remove and which communication operations to insert based on the specific dependence graph structure and data flow requirements of the parallelized code. This dynamic approach ensures that data consistency is maintained adaptively for each unique code pattern rather than applying fixed removal rules.

Inventive Principle:
Principle #15Dynamics

3Productivity

If minimum-cut algorithm is used to optimize parallelized code, then performance and energy efficiency are improved, but code complexity increases

Engineering Contradiction:
Improveperformance efficiencyVSAvoidcode complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the parallelized code into distinct dependence chains and represents them as a dependence graph with nodes and edges. This segmentation allows the minimum-cut algorithm to systematically analyze and optimize instruction distribution across processing elements, improving performance efficiency while managing complexity through structured decomposition of the code.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9715376B2Energy/performance with optimal communication in dynamic parallelization of single threaded programs
Publication Date: 2017.07.25 INTEL CORP
  • US9715376B2 patent drawing
  • US9715376B2 patent drawing
  • US9715376B2 patent drawing

AI summary

A method and apparatus for optimizing parallelized single threaded programs is herein described. Code regions, such as dependency chains, are replicated utilizing any known method, such as dynamic code replication. A flow network associated with a replicated code region is built and a minimum cut algorithm is applied to determine duplicated nodes, which may include a single instruction or a group of instructions, to be removed. The dependency of removed nodes is fulfilled with inserted communication to ensure proper data consistency of the original single-threaded program. As a result, both performance and power consumption is optimized for parallel code sections through removal of expensive workload nodes and replacement with communication between other replicated code regions to be executed in parallel.