Profile-Based Function Allocation for Data Processing Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data processing systems face inefficiencies when executing programs that process large amounts of data, due to high latency and limited bandwidth when accessing remote memory compared to main memory.
Innovation Solution
A data processing system that includes a host with a profile control circuit, profile database, and policy execution circuit, which generates profiles for functions called during program execution and allocates these functions between the host and a remote processing device based on execution location optimization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If distributed processing with remote memory is used, then data processing capacity is improved, but access latency increases and bandwidth is limited
Solution Approach 1:
The patent segments the data processing workload by dividing functions into those that execute on the host and those that execute on the remote processing device. The profile control circuit generates execution profiles for each function, and the policy execution circuit allocates functions to appropriate locations based on data access patterns and processing requirements, thereby segmenting the processing task to optimize the balance between productivity and latency.
Solution Approach 2:
The patent performs preliminary profile generation before actual data processing. The profile control circuit executes the program with a synthesized data set to generate execution profiles that predict function execution characteristics. These pre-generated profiles are stored in the profile database and used during actual processing to make optimization decisions, allowing the system to prepare execution strategies in advance without affecting real-time processing performance.
2Productivity
If distributed processing with remote memory is used, then data processing capacity is improved, but interface bandwidth is limited
Solution Approach 1:
The patent segments data processing operations into host-side functions and remote device functions based on data access patterns. By analyzing execution profiles, the system identifies which functions benefit most from remote processing and allocates them accordingly, segmenting the workload to maximize the utilization of available interface bandwidth and reduce unnecessary data transfers.
Solution Approach 2:
The patent changes the execution location parameter of functions dynamically based on profile analysis. The policy execution circuit modifies which functions execute on the host versus the remote device by adjusting execution location assignments, thereby optimizing data transfer patterns and maximizing effective bandwidth utilization across the interface.
3Productivity
If main memory capacity is increased to process large data sets, then processing capability is improved, but communication costs between CPU and memory increase
Solution Approach 1:
The patent extracts processing functions from the host and relocates them to the remote processing device based on execution profiles. By taking out functions that are better suited for remote execution and moving them there, the system reduces unnecessary communication between the host CPU and memory, thereby reducing communication costs while maintaining processing capability.
Solution Approach 2:
The system performs preliminary profile generation to identify which functions should execute on the host versus the remote device before actual processing begins. This preliminary analysis allows the system to pre-optimize function allocation and minimize communication overhead during actual data processing, reducing overall communication costs.
Data Source
AI summary
A data processing system includes a host configured to execute a program for processing a given data set; and a remote processing device coupled to the host via an interface, wherein the host includes a profile control circuit configured to generate a profile corresponding to a function that is called during execution of the program; a profile database storing execution location of the function corresponding to the profile; and a policy execution circuit configured to allocate the function called during the execution of the program to the host or the remote processing device based on the execution location the profile database.


