Table of Contents
Fetching ...

Efficient Dynamic MaxFlow Computation on GPUs

Shruthi Kannappan, Ashwina Kumar, Rupesh Nasre

TL;DR

This paper addresses maintaining the maximum s-t flow in large, dynamic graphs under batches of edge-capacity changes. It presents two dynamic GPU algorithms—Dynamic Push Relabel and Dynamic Push Pull—building on a static GPU max-flow pass and reusing the residual graph to avoid full recomputation. The dynamic methods are implemented in CUDA with topology-driven and data-driven variants (and a push-pull stream) and are supported by a formal correctness proof. Experiments on real-world networks show substantial speedups over static recomputation and prior dynamic approaches for small updates, with performance depending on batch size and graph structure, demonstrating practical impact for evolving datasets.

Abstract

Maxflow is a fundamental problem in graph theory and combinatorial optimisation, used to determine the maximum flow from a source node to a sink node in a flow network. It finds applications in diverse domains, including computer networks, transportation, and image segmentation. The core idea is to maximise the total flow across the network without violating capacity constraints on edges and ensuring flow conservation at intermediate nodes. The rapid growth of unstructured and semi-structured data has motivated the development of parallel solutions to compute MaxFlow. However, due to the higher computational complexity, computing Maxflow for real-world graphs is time-consuming in practice. In addition, these graphs are dynamic and constantly evolve over time. In this work, we propose two Push-Relabel based algorithms for processing dynamic graphs on GPUs. The key novelty of our algorithms is their ability to efficiently handle both increments and decrements in edge capacities together when they appear in a batch. We illustrate the efficacy of our algorithms with a suite of real-world graphs. Overall, we find that for small updates, dynamic recomputation is significantly faster than a static GPU-based Maxflow.

Efficient Dynamic MaxFlow Computation on GPUs

TL;DR

This paper addresses maintaining the maximum s-t flow in large, dynamic graphs under batches of edge-capacity changes. It presents two dynamic GPU algorithms—Dynamic Push Relabel and Dynamic Push Pull—building on a static GPU max-flow pass and reusing the residual graph to avoid full recomputation. The dynamic methods are implemented in CUDA with topology-driven and data-driven variants (and a push-pull stream) and are supported by a formal correctness proof. Experiments on real-world networks show substantial speedups over static recomputation and prior dynamic approaches for small updates, with performance depending on batch size and graph structure, demonstrating practical impact for evolving datasets.

Abstract

Maxflow is a fundamental problem in graph theory and combinatorial optimisation, used to determine the maximum flow from a source node to a sink node in a flow network. It finds applications in diverse domains, including computer networks, transportation, and image segmentation. The core idea is to maximise the total flow across the network without violating capacity constraints on edges and ensuring flow conservation at intermediate nodes. The rapid growth of unstructured and semi-structured data has motivated the development of parallel solutions to compute MaxFlow. However, due to the higher computational complexity, computing Maxflow for real-world graphs is time-consuming in practice. In addition, these graphs are dynamic and constantly evolve over time. In this work, we propose two Push-Relabel based algorithms for processing dynamic graphs on GPUs. The key novelty of our algorithms is their ability to efficiently handle both increments and decrements in edge capacities together when they appear in a batch. We illustrate the efficacy of our algorithms with a suite of real-world graphs. Overall, we find that for small updates, dynamic recomputation is significantly faster than a static GPU-based Maxflow.

Paper Structure

This paper contains 7 sections, 1 equation, 3 algorithms.