GPU Memory Object Sharing for Parallel Process Instances
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computing systems with SIMD architectures, memory inefficiencies arise due to multiple instances of applications requiring separate data storage, leading to performance bottlenecks as the number of users increases, limiting the number of instances or reducing performance from excessive memory access requests.
Innovation Solution
A method where a general-purpose processor identifies shareable data objects across multiple instances and allocates memory efficiently by freeing storage for non-writeable, frequently reused data objects greater than a size threshold, maintaining storage for non-shareable objects, thereby reducing memory usage and improving system performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple instances of an application are created to increase parallel processing throughput, then computing performance is improved, but memory usage increases due to each instance having its own copy of data
Solution Approach 1:
The patent merges data storage resources by allowing multiple process instances to share common data objects in memory. Instead of each instance having separate copies, the system enables reference sharing where multiple processes can access the same data objects, thereby reducing total memory consumption while maintaining parallel processing capabilities.
Solution Approach 2:
The patent implements universal data objects that can be accessed by multiple process instances simultaneously. These shared data objects serve multiple functions and multiple processes at once, eliminating the need for redundant copies and optimizing memory utilization across the system.
2Reliability
If each instance has its own copy of data to ensure data independence, then process isolation is improved, but memory allocation efficiency deteriorates
Solution Approach 1:
The patent applies local quality by differentiating between mutable and immutable data objects. Immutable data objects are shared across multiple processes to save memory, while mutable data objects maintain process-specific copies to ensure isolation. This selective approach allows the system to optimize memory usage for read-only data while preserving data independence where needed.
3Adaptability or versatility
If memory size is increased to store data for multiple instances, then the number of supported instances is improved, but system cost and complexity increase
Solution Approach 1:
The patent uses intelligent copying strategies where data objects are copied only when necessary (e.g., when mutability is required). For read-only data, reference sharing is used instead of copying. This selective copying approach enables the system to support more instances with the same memory resources while avoiding the complexity of managing full copies for all data.
Data Source
AI summary
An apparatus and method for efficiently executing multiple processes by reducing an amount of memory usage of the processes. In various implementations, a computing system includes a first processor and a second processor that support parallel data applications stored on a remote server that provides cloud computing services to multiple users. The first processor creates multiple processes, referred to as “instances” in parallel computing platforms, for a particular application as users request to execute the application. When the first processor detects a function call of the application within a particular instance, the first processor searches for shareable data objects to be used by the second processor when executing the first instance of the function call, and frees data storage allocated to data objects that are already shared by one or more instances. Therefore, an amount of memory allocated for the multiple instances of the application is reduced.


