Speedup Estimation for Heterogeneous Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current tools lack the ability to accurately estimate speedup potential for applications in heterogeneous systems, particularly in transforming sequential code to GPU-ready versions, due to limitations in data availability, inaccuracy in static analysis, and the absence of holistic analysis approaches, leading to inefficient exploitation of data-parallel infrastructure.

Innovation Solution

A method and system that perform both static and dynamic analysis to identify key parameters such as execution times and memory usage, satisfying invariants to predict the feasibility of achieving a desired speedup, including initialization, data-parallel, and data-transfer invariants, and provide a bandwidth utilization ratio for data transfer buses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If static analysis alone is used to estimate speedup potential, then the analysis can be performed without runtime data, but the accuracy of speedup estimation is insufficient

Engineering Contradiction:
Improvespeedup estimation accuracyVSAvoidanalysis time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The analysis is divided into two independent segments: static analysis (which can be done without runtime data) and dynamic analysis (which uses runtime profile data). Each segment contributes different aspects of the speedup estimation, and their results are combined to achieve high accuracy without requiring complete runtime data availability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Static analysis is performed as a preliminary step before dynamic analysis. The static analysis identifies candidate parallelizable regions and computes upper bounds on speedup, which then guides the dynamic analysis to focus on specific code regions, reducing the overall analysis time while maintaining accuracy.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If dynamic analysis is performed on complete application, then accurate speedup estimation is achieved, but clients can only make available partial version of the implementation

Engineering Contradiction:
Improvespeedup estimation accuracyVSAvoiddata availability requirement
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system accepts partial application code from clients and performs analysis on this partial version. Rather than requiring the complete application, the tool analyzes the available portions and extrapolates speedup potential, providing sufficiently accurate estimates without needing full code availability.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The static analysis component acts as an intermediary that bridges the gap between partial code availability and complete speedup estimation. It fills in missing information by analyzing control flow and data dependencies in the partial code, enabling dynamic analysis to proceed with incomplete information while maintaining accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If elaborate analysis of runtime code is performed, then accurate speedup estimation is achieved, but the effort and complexity of the analysis process increases significantly

Engineering Contradiction:
Improvespeedup estimation accuracyVSAvoidanalysis process complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The elaborate runtime analysis is segmented into automated profile collection (dynamic analysis) and systematic evaluation against invariants. This segmentation automates what would otherwise be manual, complex analysis, reducing the perceived complexity while maintaining thoroughness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses feedback from runtime profiling to iteratively refine speedup estimates. Profile data from actual execution feeds back into the analysis model, allowing the system to adjust predictions based on observed behavior patterns, which simplifies the analysis process by using empirical data rather than purely theoretical modeling.

Inventive Principle:
Principle #23Feedback

4Productivity

If existing tools like Intel Parallel Studio are used, then parallel portions of code can be identified, but the overall speedup of the program cannot be estimated taking into account data communication costs

Engineering Contradiction:
Improveparallel code identification capabilityVSAvoidoverall speedup estimation
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent merges code analysis functionality with runtime performance measurement functionality into a single integrated system. By combining static analysis of code structure with dynamic measurement of actual runtime behavior including communication costs, the system provides comprehensive speedup estimation that existing separate tools cannot achieve.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The analysis tool is designed to be multi-functional: it identifies parallel code regions, measures runtime performance, evaluates communication overhead, and predicts overall speedup. This universal tool replaces multiple specialized tools while providing a unified view of performance potential.

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

Data Source

PatentUS9223571B2Method and system for analyzing an extent of speedup achievable for an application in a heterogeneous system
Publication Date: 2015.12.29 INFOSYS LTD
  • US9223571B2 patent drawing
  • US9223571B2 patent drawing
  • US9223571B2 patent drawing

AI summary

The present disclosure includes, in a heterogeneous system, receiving a desired speedup of an application as input and performing a static analysis and a dynamic analysis of the application. The dynamic analysis of the application comprises, identifying a set of parameters including, an end-to-end execution time of the application, an execution time of data parallel loops in the application, an execution time of non-data parallel loops in the application, and an amount of physical memory used by each data structure in each data parallel loop. Dynamic analysis also includes calculating and providing the feasibility of achieving the desired speedup of the application based on the identified set of parameters, and satisfaction of each of, an initialization invariant, a data-parallel invariant and a data transfer invariant.