A High-Quality and Fast Maximal Independent Set Algorithm for GPUs Martin Burtscher and Sindhu Devale Department of Computer Science
Overview � Introduction � Serial and parallel algorithms � Our parallel algorithm � Optimizations � Results � Summary A High-Quality and Fast MIS Algorithm 2
Maximal Independent Set � Maximal independent set (MIS) � Subset of vertices of undirected graph � Vertices in subset are independent (not adjacent) � Subset is maximal (all other vertices are adjacent) a � Not unique b c d e f � Largest possible MIS � Maximum independent set g � NP-hard to compute h i A High-Quality and Fast MIS Algorithm 3
Importance of MIS � Building block of many parallel graph algorithms � Graph coloring a � Maximal matching � 2-satisfiability b c d e f � Maximal set packing g � Odd set cover problem � etc. h i A High-Quality and Fast MIS Algorithm 4
Importance of MIS (cont.) � Parallelization of complex computations � Supports arbitrary and dynamically changing conflicts 1. Build graph (vertices = computations, edges = conflicts) 2. Compute MIS 3. Run computations in MIS in parallel (w/o locks or atomics) 4. Repeat if necessary � E.g., Delaunay mesh refinement � Approach is only useful if MIS can be computed quickly in parallel and benefits from large sets A High-Quality and Fast MIS Algorithm 5
Highlights � ECL-MIS algorithm for massively-parallel devices � Fastest MIS runtimes on modern GPUs � Randomized permutation selection function � Largest set sizes among many MIS algorithms � New optimizations � Enhance performance and reduce memory footprint A High-Quality and Fast MIS Algorithm 6
Serial Algorithm A High-Quality and Fast MIS Algorithm 7
Serial Algorithm � Repeating steps � Visit unvisited vertex a � Add vertex to set if no graph neighbors in set b c d e f � Example g � Start with empty set h i � Set = {} A High-Quality and Fast MIS Algorithm 8
Serial Algorithm � Repeating steps � Visit unvisited vertex a � Add vertex to set if no graph neighbors in set b c d e f � Example g � a has no neighbor in set � Add vertex a h i � Set = {a} A High-Quality and Fast MIS Algorithm 9
Serial Algorithm � Repeating steps � Visit unvisited vertex a � Add vertex to set if no graph neighbors in set b c d e f � Example g � b has neighbor in set � Discard vertex b h i � Set = {a} A High-Quality and Fast MIS Algorithm 10
Serial Algorithm � Repeating steps � Visit unvisited vertex a � Add vertex to set if no graph neighbors in set b c d e f � Example g � c has neighbor in set � Discard vertex c h i � Set = {a} A High-Quality and Fast MIS Algorithm 11
Serial Algorithm � Repeating steps � Visit unvisited vertex a � Add vertex to set if no graph neighbors in set b c d e f � Example g � d has neighbor in set � Discard vertex d h i � Set = {a} A High-Quality and Fast MIS Algorithm 12
Serial Algorithm � Repeating steps � Visit unvisited vertex a � Add vertex to set if no graph neighbors in set b c d e f � Example g � e has no neighbor in set � Add vertex e h i � Set = {a, e} A High-Quality and Fast MIS Algorithm 13
Serial Algorithm � Repeating steps � Visit unvisited vertex a � Add vertex to set if no graph neighbors in set b c d e f � Example g � f has neighbor in set � Discard vertex f h i � Set = {a, e} A High-Quality and Fast MIS Algorithm 14
Serial Algorithm � Repeating steps � Visit unvisited vertex a � Add vertex to set if no graph neighbors in set b c d e f � Example g � g has neighbor in set � Discard vertex g h i � Set = {a, e} A High-Quality and Fast MIS Algorithm 15
Serial Algorithm � Repeating steps � Visit unvisited vertex a � Add vertex to set if no graph neighbors in set b c d e f � Example g � h has no neighbor in set � Add vertex h h i � Set = {a, e, h} A High-Quality and Fast MIS Algorithm 16
Serial Algorithm � Repeating steps � Visit unvisited vertex a � Add vertex to set if no graph neighbors in set b c d e f � Example g � i has neighbor in set � Discard vertex i h i � MIS = {a, e, h} A High-Quality and Fast MIS Algorithm 17
Luby’s Random-Priority Parallel MIS Algorithm A High-Quality and Fast MIS Algorithm 18
Random-Priority Algorithm (Luby) � Repeating steps � Assign random priorities a � Add vertices with highest local priority to set b c d e f � Remove their neighbors from graph g � Set = {} h i A High-Quality and Fast MIS Algorithm 19
Random-Priority Algorithm (Luby) � Repeating steps � Assign random priorities a 5 � Add vertices with highest local priority to set b 7 c 1 d 4 e 6 f 3 � Remove their neighbors from graph g 4 � Set = {} h 3 i 2 A High-Quality and Fast MIS Algorithm 20
Random-Priority Algorithm (Luby) � Repeating steps � Assign random priorities a 5 � Add vertices with highest local priority to set b 7 c 1 d 4 e 6 f 3 � Remove their neighbors from graph g 4 � Set = {b, e} h 3 i 2 A High-Quality and Fast MIS Algorithm 21
Random-Priority Algorithm (Luby) � Repeating steps � Assign random priorities a � Add vertices with highest local priority to set b c d e f � Remove their neighbors from graph g � Set = {b, e} h i A High-Quality and Fast MIS Algorithm 22
Random-Priority Algorithm (Luby) � Repeating steps � Assign random priorities a � Add vertices with highest local priority to set b c 9 d e f � Remove their neighbors from graph g � Set = {b, e} h 5 i 6 A High-Quality and Fast MIS Algorithm 23
Random-Priority Algorithm (Luby) � Repeating steps � Assign random priorities a � Add vertices with highest local priority to set b c 9 d e f � Remove their neighbors from graph g � Set = {b, c, e, i} h 5 i 6 A High-Quality and Fast MIS Algorithm 24
Random-Priority Algorithm (Luby) � Repeating steps � Assign random priorities a � Add vertices with highest local priority to set b c d e f � Remove their neighbors from graph g � MIS = {b, c, e, i} h i A High-Quality and Fast MIS Algorithm 25
Random-Permutation Parallel MIS Algorithm A High-Quality and Fast MIS Algorithm 26
Random-Permutation Algorithm � Initialization � Assign random priorities a � Repeating steps � Add vertices with highest b c d e f local priority to set � Remove neighbors and g their edges from graph h i � Set = {} A High-Quality and Fast MIS Algorithm 27
Random-Permutation Algorithm � Initialization � Assign random priorities a 5 � Repeating steps � Add vertices with highest b 7 c 1 d 4 e 6 f 3 local priority to set � Remove neighbors and g 4 their edges from graph h 3 i 2 � Set = {} A High-Quality and Fast MIS Algorithm 28
Random-Permutation Algorithm � Initialization � Assign random priorities a 5 � Repeating steps � Add vertices with highest b 7 c 1 d 4 e 6 f 3 local priority to set � Remove neighbors and g 4 their edges from graph h 3 i 2 � Set = {b, e} A High-Quality and Fast MIS Algorithm 29
Random-Permutation Algorithm � Initialization � Assign random priorities a 5 � Repeating steps � Add vertices with highest b 7 c 1 d 4 e 6 f 3 local priority to set � Remove neighbors and g 4 their edges from graph h 3 i 2 � Set = {b, e} A High-Quality and Fast MIS Algorithm 30
Random-Permutation Algorithm � Initialization � Assign random priorities a 5 � Repeating steps � Add vertices with highest b 7 c 1 d 4 e 6 f 3 local priority to set � Remove neighbors and g 4 their edges from graph h 3 i 2 � Set = {b, c, e, h} A High-Quality and Fast MIS Algorithm 31
Random-Permutation Algorithm � Initialization � Assign random priorities a 5 � Repeating steps � Add vertices with highest b 7 c 1 d 4 e 6 f 3 local priority to set � Remove neighbors and g 4 their edges from graph h 3 i 2 � MIS = {b, c, e, h} A High-Quality and Fast MIS Algorithm 32
Luby’s Random-Selection Parallel MIS Algorithm A High-Quality and Fast MIS Algorithm 33
Random-Selection Algorithm (Luby) � Repeating steps � Mark vertices with a probability 0.5/degree � Add marked vertices to set b c d e f if no marked neighbors � Remove their neighbors g from graph h i � Set = {} A High-Quality and Fast MIS Algorithm 34
Random-Selection Algorithm (Luby) � Repeating steps � Mark vertices with a o probability 0.5/degree � Add marked vertices to set b i c o d i e o f o if no marked neighbors � Remove their neighbors g o from graph h i i i � Set = {} A High-Quality and Fast MIS Algorithm 35
Random-Selection Algorithm (Luby) � Repeating steps � Mark vertices with a o probability 0.5/degree � Add marked vertices to set b i c o d i e o f o if no marked neighbors � Remove their neighbors g o from graph h i i i � Set = {b, d} A High-Quality and Fast MIS Algorithm 36
Random-Selection Algorithm (Luby) � Repeating steps � Mark vertices with a probability 0.5/degree(v) � Add marked vertices to set b c d e f if no marked neighbors � Remove their neighbors g from graph h i � Set = {b, d} A High-Quality and Fast MIS Algorithm 37
Recommend
More recommend