a high quality and fast maximal independent set algorithm
play

A High-Quality and Fast Maximal Independent Set Algorithm for GPUs - PowerPoint PPT Presentation

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


  1. A High-Quality and Fast Maximal Independent Set Algorithm for GPUs Martin Burtscher and Sindhu Devale Department of Computer Science

  2. Overview � Introduction � Serial and parallel algorithms � Our parallel algorithm � Optimizations � Results � Summary A High-Quality and Fast MIS Algorithm 2

  3. 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

  4. 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

  5. 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

  6. 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

  7. Serial Algorithm A High-Quality and Fast MIS Algorithm 7

  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 � Start with empty set h i � Set = {} A High-Quality and Fast MIS Algorithm 8

  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 � a has no neighbor in set � Add vertex a h i � Set = {a} A High-Quality and Fast MIS Algorithm 9

  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 � b has neighbor in set � Discard vertex b h i � Set = {a} A High-Quality and Fast MIS Algorithm 10

  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 � c has neighbor in set � Discard vertex c h i � Set = {a} A High-Quality and Fast MIS Algorithm 11

  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 � d has neighbor in set � Discard vertex d h i � Set = {a} A High-Quality and Fast MIS Algorithm 12

  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 � e has no neighbor in set � Add vertex e h i � Set = {a, e} A High-Quality and Fast MIS Algorithm 13

  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 � f has neighbor in set � Discard vertex f h i � Set = {a, e} A High-Quality and Fast MIS Algorithm 14

  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 � g has neighbor in set � Discard vertex g h i � Set = {a, e} A High-Quality and Fast MIS Algorithm 15

  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 � h has no neighbor in set � Add vertex h h i � Set = {a, e, h} A High-Quality and Fast MIS Algorithm 16

  17. 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

  18. Luby’s Random-Priority Parallel MIS Algorithm A High-Quality and Fast MIS Algorithm 18

  19. 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

  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 = {} h 3 i 2 A High-Quality and Fast MIS Algorithm 20

  21. 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

  22. 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

  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, e} h 5 i 6 A High-Quality and Fast MIS Algorithm 23

  24. 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

  25. 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

  26. Random-Permutation Parallel MIS Algorithm A High-Quality and Fast MIS Algorithm 26

  27. 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

  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 = {} A High-Quality and Fast MIS Algorithm 28

  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 29

  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, e} A High-Quality and Fast MIS Algorithm 30

  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 � Set = {b, c, e, h} A High-Quality and Fast MIS Algorithm 31

  32. 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

  33. Luby’s Random-Selection Parallel MIS Algorithm A High-Quality and Fast MIS Algorithm 33

  34. 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

  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 = {} A High-Quality and Fast MIS Algorithm 35

  36. 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

  37. 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