Bounded Hash Table Sorting for Dynamic Profiling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for dynamic whole program profiling are inefficient due to high memory usage and execution time, and existing hash table implementations suffer from pointer chasing overhead, especially when dealing with large numbers of accesses to deep hash table buckets.

Innovation Solution

A dynamic binary instrumentation tool coupled with a virtual machine translates and executes binary code, augmenting it with instrumentation and analysis code to identify hierarchical layers of cycles, which are stored in a hash table. The hash table is periodically sorted to position highly accessed entries for easier access and reduce pointer chasing, with sorting triggered by depth and access frequency thresholds.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a large hash table is used to store program behavior data, then more program regions can be tracked, but the hash table becomes deep and pointer chasing overhead increases

Engineering Contradiction:
Improvenumber of program regions trackedVSAvoidpointer chasing overhead
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The hash table is divided into multiple smaller sub-hash tables or buckets, each managing a portion of the program regions. This segmentation reduces the depth of individual hash table structures while maintaining the ability to track a large number of program regions across the distributed structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an additional indexing dimension by organizing hash table entries into multiple levels or dimensions. Instead of a single deep hash table, the system uses a multi-dimensional structure where program regions are accessed through combined indexing keys, effectively reducing the path length and pointer chasing required.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Measurement precision

If a simulator is used to execute applications and collect information, then instruction traces can be obtained, but a large amount of memory and time is required

Engineering Contradiction:
Improveinstruction trace accuracyVSAvoidmemory storage required
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential profiling information directly from the executing application using binary instrumentation, rather than capturing complete instruction traces through simulation. This extraction approach focuses on collecting specific metrics such as program region execution counts and memory access patterns, significantly reducing memory requirements while maintaining profiling accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of maintaining large persistent simulation states, the system uses lightweight, temporary data structures that are created and discarded as needed during application execution. The binary instrumentation code collects profiling data in compact formats that are processed and discarded in real-time, avoiding the need for large memory allocations associated with full simulation.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Quantity of substance

If profiling is performed on a small subset of the application, then memory and time are reduced, but whole program profiling is not achieved

Engineering Contradiction:
Improvememory and time consumptionVSAvoidwhole program profiling capability
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The binary instrumentation framework is designed to be universally applicable to any program region within the application. The same instrumentation mechanism and data collection approach work consistently across different modules, procedures, and control flow structures, enabling the system to profile entire programs rather than requiring separate approaches for different program portions.

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

4Measurement precision

If hot path profiling is used to measure frequency and cost, then control flow understanding is improved, but acyclic paths only are captured

Engineering Contradiction:
Improvecontrol flow measurement accuracyVSAvoidloop iteration and procedure boundary coverage
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic tracking of program execution that adapts to various control flow structures including loops and procedure boundaries. The binary instrumentation system dynamically identifies and tracks cyclic paths by monitoring program counter patterns and call stack states, allowing it to capture loop iterations and inter-procedural paths in addition to acyclic paths.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8024719B2Bounded hash table sorting in a dynamic program profiling system
Publication Date: 2011.09.20 ADVANCED MICRO DEVICES INC
  • US8024719B2 patent drawing
  • US8024719B2 patent drawing
  • US8024719B2 patent drawing

AI summary

A system and method for efficient bounded hash table sorting during dynamic whole program profiling of software applications. A computing system comprises a dynamic binary instrumentation (DBI) tool coupled to a virtual machine configured to translate and execute binary code of a software application. The binary code is augmented with instrumentation and analysis code during translation and execution. A dynamic binary analysis (DBA) tool identifies hierarchical layers of cycles within the application that describe the dynamic behavior of the application. Corresponding characterization information is stored in a hash table. Periodic sorting of entries of the hash table occur for highly accessed entries in deep buckets within the hash table. Repositioning the entries within the hash table may reduce pointer chasing problems and identify program phase changes within the dynamic behavior of the application.