Parallel Computing Fast Access Common Data Values

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional techniques for passing global information in parallel computing environments result in redundant and high latency operations, leading to performance bottlenecks due to inefficient retrieval of common data values from memory, even when cached.

Innovation Solution

A novel fast access technique that allows programs to retrieve common data values directly from registers or optimized compiled code, eliminating the need for conventional slow and latency-prone memory access methods, and enabling additional compile-time optimizations for reduced execution time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If conventional memory access methods are used to retrieve common data values, then data can be obtained, but high latency and redundant operations occur resulting in performance bottlenecks

Engineering Contradiction:
Improvedata retrieval speedVSAvoidlatency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent applies preliminary action by passing common data values as parameters at program invocation time and storing them in intermediate cache or registers before execution. This pre-positioning of data eliminates the need for high-latency memory reads during parallel thread execution, directly resolving the speed-latency contradiction.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism (intermediate cache or register storage) between main memory and the parallel threads. This intermediary holds common data values that multiple threads need, allowing fast retrieval without repeated memory access and solving the performance bottleneck caused by high latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If values are stored in intermediate cache using conventional techniques, then data availability improves, but system resource efficiency deteriorates due to frequent performance bottlenecks

Engineering Contradiction:
Improvedata accessibilityVSAvoidsystem resource efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent merges the common data values into the program execution flow by passing them as parameters at invocation time. This combining approach ensures that all parallel threads access the same data copy simultaneously, improving both data accessibility and system resource efficiency by eliminating redundant memory operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent enables self-service by automatically passing common data values to parallel threads through the intermediate cache or register mechanism. The system autonomously manages the data distribution without requiring frequent intervention or re-access to main memory, thereby improving productivity while maintaining ease of operation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9971580B2Fast access and use of common data values relating to applications in parallel computing environments
Publication Date: 2018.05.15 INTEL CORP
  • US9971580B2 patent drawing
  • US9971580B2 patent drawing
  • US9971580B2 patent drawing

AI summary

A mechanism is described for facilitating fast access and use of common data values relating to applications in parallel computing environments. A method of embodiments, as described herein, includes detecting a software application being hosted by a computing device, where the software application is further detected as accessing common data values. The method may further include determining whether access to the common data values is slow, and accessing an existing compiled program specific to the common data values at a database, if the access to the common data values is slow. The method may further include loading the existing compiled program to be executed by a processor at the computing device, where the existing compiled program to replace an originally compiled program.