Dynamic Graph Partition Scheduling for GPU Memory Limits
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing GPU-based systems face challenges in efficiently processing large-scale dynamic graphs due to memory limitations and the need for real-time updates, which traditional CPUs and GPUs struggle to manage effectively.
Innovation Solution
A GPU-accelerated scheduling system that includes a CPU-based preprocessing module to partition dynamic graphs into manageable partitions, a scheduling module to determine loading order based on priority criteria, and a computation reduction module to eliminate unnecessary computations, optimizing memory use and computation efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the entire input graph is stored in GPU memory, then processing speed is improved, but memory capacity is exceeded for large-scale graphs
Solution Approach 1:
The input graph is divided into multiple partitions that can be processed separately. Each partition is loaded into GPU memory individually, allowing the system to handle graphs larger than the available memory capacity while maintaining efficient processing speeds through parallel processing of multiple partitions.
2Loss of time
If dynamic graphs are processed in real-time, then responsiveness is improved, but computation complexity increases
Solution Approach 1:
The system performs preliminary actions by pre-processing and partitioning the graph before dynamic updates occur. This preparation allows the system to quickly handle real-time updates by simply loading pre-prepared partitions into memory and processing them, rather than performing complex computations from scratch during real-time operations.
Solution Approach 2:
The system dynamically adapts its processing strategy based on the nature of updates. For vertex/edge insertions, it loads relevant partitions; for deletions, it updates existing partitions. This dynamic approach simplifies real-time processing by matching the computation complexity to the actual update requirements rather than always performing full graph processing.
3Productivity
If all partitions are loaded into GPU memory simultaneously, then processing efficiency is improved, but memory usage exceeds available capacity
Solution Approach 1:
The graph is segmented into multiple partitions that are loaded into GPU memory in batches rather than all at once. This allows the system to maintain high processing efficiency by keeping active partitions in memory while storing less frequently accessed partitions on CPU memory or disk, thus balancing processing efficiency with memory constraints.
Solution Approach 2:
The system employs periodic loading and unloading of partitions based on their access patterns and update frequencies. Frequently accessed or updated partitions are kept in GPU memory, while others are periodically swapped in and out, maintaining processing efficiency for critical data while managing overall memory usage within available capacity.
4Adaptability or versatility
If CPU-based processing is used for dynamic graphs, then versatility is maintained, but processing speed decreases
Solution Approach 1:
The system introduces a hybrid architecture where the CPU acts as an intermediary that manages graph partitioning, memory allocation, and coordination between CPU and GPU resources. The CPU handles versatile preprocessing and control tasks, while the GPU accelerates computationally intensive graph processing operations, combining the versatility of CPU with the speed of GPU.
Solution Approach 2:
The system replaces pure CPU-based mechanical processing with GPU-based parallel processing for computationally intensive graph operations. The CPU retains control and coordination functions, while GPU hardware acceleration substitutes for CPU computation in graph algorithms, dramatically improving processing speed while maintaining overall system versatility through CPU-GPU collaboration.
Data Source
AI summary
Provided are a GPU-accelerated scheduling system and a scheduling method of the GPU-accelerated scheduling system. The GPU-accelerated scheduling system that determines a loading order of each partition included in a dynamic graph transferred to a GPU includes a CPU including a graph preprocessing module partitioning an input dynamic graph into a plurality of partitions and a scheduling module providing a loading order for the partitioned partitions based on a priority of a predetermined criterion, wherein the CPU determines the priority based on at least one of whether the partitions are updated, whether the partitions are common, active vertices, and potential active vertices.


