multi level graph layout on the gpu frishman et al 2007
play

Multi-Level Graph Layout on the GPU Frishman et al 2007 - PowerPoint PPT Presentation

Graph Drawing In General Graph Drawing In General Graph Drawing Using Physical Models Graph Drawing Using Physical Models Four Papers Drawing on Physical Analogies Brandes 2001 Drawing large graphs with a potential-field-based multilevel


  1. Graph Drawing In General Graph Drawing In General Graph Drawing Using Physical Models Graph Drawing Using Physical Models Four Papers Drawing on Physical Analogies Brandes 2001 Drawing large graphs with a potential-field-based multilevel algorithm Hachul et al 2004 Ø Multi-Level Graph Layout on the GPU Frishman et al 2007 Interactive Visualization of Small World Graphs Ham et al 2005 Frishman Basics of Physical Graph Layout GPU Adaptation Brandes Hachul Multi-Level Clustering Ham A Cody Robson Presentation Interactivity Drawing on Physical Analogies Analogy Time! Charged Particles and Springs Why a Physical Model? Trees can have distortion! Hooke's law tells us springs scale linearly General Idea: REPEL REPEL Avoid Clutter REPEL REPEL “Charged Particles” Vertices should spread out (Vertices) Avoid Distortion ATTRACT ATTRACT ATTRACT ATTRACT “Springs” Adjacent vertices should be close Maybe it's what we want? (Edges) Physical based models try to strike a balance of minimizing both – making no assumptions about the data. Charged Particles and Springs Charged Particles and Springs Whats the problem so far? More Improvements! Basic Algorithm Spring force scales logarithmically! FORCE = Σ (attraction of neighbors) + Σ (repel of others) Vertices shouldn't fly off the monitor. while(δ (FORCE) > 0): (my edges) (other vertices) Length of For each Vertex: Spring FORCE = Σ (attraction) + Σ (repulsion) For each Vertex: Move δ (FORCE) also repel! { Dampen δ Springs More Improvements! Use The Force DELTA FORCE Force-Directed Graph Drawing Momentum δ+ Disconnected graphs shouldn't drift off into space. For reducing vertex clutter. Rotation For keeping neighbors close. δ- Gravitational force pulls vertices δ- towards barycenter of all vertices. For preventing disconnected graphs from drifting apart. # Vertices (?) For good measure. δ- Oscillation

  2. Energy Based Placement Fast Multipole Multilevel Method (FM 3 ) Fast Multipole Multilevel Method (FM 3 ) Multiple Levels G : Our Huge Graph Use similar force model, build an energy equation. O(BAD) O(V log V) Coarsening: Lets us compute smaller set. L : Layout of our huge graph Solve with typical optimization methods. Partitioning: Lets us approximate forces. simplify simplify simplify simplify simplify G0 G1 G2 ... Gk ● Better overall placement with small graphs Force ● Scales worse than force-directed placement Directed Layout From initial guess Scratch initial guess initial guess initial guess initial guess L0 ... Lk-2 Lk-1 Lk Coarsening Analogy Time! Multiple Levels (Coarsening) Multiple Levels (Coarsening) Edge Collapse Group vertices into “solar systems” Sun: Central vertex in a solar system. Planet: Vertex neighbors of a sun. Layout the Expand the Run force Moon: Vertex neighbors of a planet. simple graph solar systems directed layout with traditional roughly how now that we're G1 is the graph of solar systems in G0 close to a force directed we collapsed Gi Gi+1 layout. them. solution. G2 is the graph of solar systems in G1 And so on... Image Courtesy of Prof Sheffer! Multipoles (Partitioning) Multipoles (Parititioning) Multi-Level Graph Layout on the GPU GPU 101 Repulsion force calculation is sped up with partitioning. Partitions created with “Reduced Quadtrees” A modern graphics card gives us two things: FM 3 X 128 Shader Processors Memory from the future! Approximate all force of particles in C1 acting on particles in C0 GPU 101 Multi-Level Graph Layout on the GPU Spectral Graph Partitioning Spectral Graph Partitioning Writing a shader program... FM 3 constructs simplified levels iteratively. Idea: Partition the original graph into two equal sized Problem: Normalized Cut partitioning takes way too long. pieces as many times as necessary. G0 G1 G2 G3 Input Arrays (Texture) Computation (Rendering) Output Array (Texture) Use a “Normalized Cut” to find the Use standard edge collapsing to Errors propagate from stage to stage. weakest link that can cut the graph into coarsen the graph. Do normalize cut Same Normalized two equal sized pieces. Cut from Image on coarse graph and use as initial Seeing a pattern? This approach uses the most detailed graph for Processing! guess for each finer iteration of the each simplification. graph. Each texture element can hold four elements (Red, Green, Blue, Alpha). This technique is G1 We can use multiple textures as input, called “Spectral G0 G2 Big Graph Coarsen Coarsen Layout but only one as output (four output Graph Partitioning” G3 Edge Collapse Partitioning values per computation).

  3. Coarsening and Partitioning Multi-Level Graph Layout on the GPU Multi-Level Graph Layout on the GPU Multi-Level Graph Layout on the GPU Vertex = Location Texture Two Partition Textures: Force Calculation Output: FM 3 Partition Information Texture: Attractive Force Texture Edge = Neighbors + - Index of the location texture of the start of the partition Adjacency Textures For Each LOD: - Width and Height of partition block in location texture Repulsive Force Texture Partition: - Number of nodes in the last row of the partition Calculate forces, layout Both hold 2D force for each vertex in the location texture. Partition Center of Gravity Texture: GPU - Holds current (x,y) location of center of gravity of partition. For Each LOD: Calculate Multi Level Partitions For Each Partition: Calculate forces, layout Putting It All Together... Results Interactive Visualization Small World Forces of Small World Graphs GPU sans GPU = 2-4 times faster than FM 3 Problem: Springs do not discriminate. “Small World” GPU with CoreDuo = 3-6 times faster than FM 3 GPU with GPU = ~22 times faster than FM 3 ● Small Average Edge Length Ideally, we'd like springs in our cluster to mean Textures ● High Degree of Clustering more than springs linking us to other clusters. FM^3 Strangely, using constant force for springs seems to + Use a better force model for small world graphs. work pretty well! Shaders + Use clustering for layout as well as visualization! Allows Intra-Cluster edges to shrink = 1 while inter-cluster GPU edges grow. Small World Forces Small World Visualization Degree of Abstraction Degree of Abstraction Too good to be true? Clustering done by same edge-collapse process. Clusters drawn as constant-sizes This force model is highly susceptible to bad spheres. looking local minima. Use another approach first, use results as initial guess! Clustering can be dynamically updated by a Degree of Abstraction variable. Linear versus Exponential Interpolation Focus + Context Returns! Formal Conclusion Informal Conclusion Focus + Context Example In the absence of high-level information of our If what you want is too slow... data... ...use something that works as an initial guess! Physical-based graph layout models = 1 produce good results and scale well with recent methods!

Recommend


More recommend