Abstract

Synthetically generated, large graph networks serve as useful proxies to real-world networks for many graph-based applications. The ability to generate such networks helps overcome several limitations of real-world networks regarding their number, availability, and access. Here, we present the design, implementation, and performance study of a novel network generator that can produce very large graph networks conforming to any desired degree distribution. The generator is designed and implemented for efficient execution on modern graphics processing units (GPUs). Given an array of desired vertex degrees and number of vertices for each desired degree, our algorithm generates the edges of a random graph that satisfies the input degree distribution. Multiple runtime variants are implemented and tested: 1) a uniform static work assignment using a fixed thread launch scheme, 2) a load-balanced static work assignment also with fixed thread launch but with cost-aware task-to-thread mapping, and 3) a dynamic scheme with multiple GPU kernels asynchronously launched from the CPU. The generation is tested on a range of popular networks such as Twitter and Facebook, representing different scales and skews in degree distributions. Results show that, using our algorithm on a single modern GPU (NVIDIA Volta V100), it is possible to generate large-scale graph networks at rates exceeding 50 billion edges per second for a 69 billion-edge network. GPU profiling confirms high utilization and low branching divergence of our implementation from small to large network sizes. For networks with scattered distributions, we provide a coarsening method that further increases the GPU-based generation speed by up to a factor of 4 on tested input networks with over 45 billion edges.

Highlights

  • 1.1 MotivationRandom graph networks sometimes serve as useful proxies in modeling complex systems

  • 3.3.3 Graphics Processing Units Static LB: Static Kernel Launch With Load Balancing To address the problem of skewed distribution of computational costs among the edge generation tasks, we designed another algorithmic variant that starts with the static launch scheme and adds the Uniform Cost Partitioning (UCP) approach presented in our previous CPU-based generator (Alam et al, 2016)

  • We presented a novel graphics processing units (GPUs)-based algorithm for generating large random networks that conform to desired degree distributions provided as input

Read more

Summary

Motivation

Random graph networks sometimes serve as useful proxies in modeling complex systems. To aid in such use, network generation algorithms are employed to create random network instances on demand (Penschuck et al, 2020). A few well-understood graph models have been developed to capture the diversity of the degree distributions in the generated network These include Erdős–Rényi (Erdős and Rényi, 1960), stochastic block models (Holland et al, 1983), small-world (Watts and Strogatz, 1998), Barabási–Albert (Barabási and Albert, 1999; Albert et al, 2000), exponential random graph (Frank and Strauss, 1986; Robins et al, 2007), recursive matrix (Chakrabarti et al, 2004), stochastic Kronecker graph (Leskovec and Faloutsos, 2007; Leskovec, 2010), and HOT (Carlson and Doyle, 1999) models. We focus on general degree distributions in which any desired set of degrees can be specified as input

Efficient Algorithms for Graph Generation
Graphics Processing Units-Based Network Generation
Contributions and Organization
Problem and Solution Approach
Vertex Labels
Intra Edge Generation
Inter Edge Generation
Task Definition and Identification
Graphics Processing Units
Graphics Processing Units Dynamic
Graphics Processing Units Static
Graphics Processing Units Static LB
PERFORMANCE STUDY
Hardware and Software
Input Degree Distribution
Generating Networks With Original Input
Degree Distribution Coarsening
Generating Networks With Coarsened Input Degree Distribution
Graphics Processing Units Performance Metrics
SUMMARY AND FUTURE WORK
Findings
DATA AVAILABILITY STATEMENT
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call