Large Scale Parallel Graph Coloring 1 Presentation Overview

  • Slides: 20
Download presentation
Large Scale Parallel Graph Coloring 1

Large Scale Parallel Graph Coloring 1

Presentation Overview • Problem Description • Basic Algorithm • Parallel Strategy – Work Spawning

Presentation Overview • Problem Description • Basic Algorithm • Parallel Strategy – Work Spawning – Graph Partition • Results 2

Problem Description • A "graph" is a collection of vertices or 'nodes' and a

Problem Description • A "graph" is a collection of vertices or 'nodes' and a collection of edges that connect pairs of vertices. 3

Sequential Algorithm The idea is to color the vertices of a graph such that

Sequential Algorithm The idea is to color the vertices of a graph such that no two adjacent vertices share the same color 4

Sequential Algorithm -Step 1 5

Sequential Algorithm -Step 1 5

Sequential Algorithm -Step 2 6

Sequential Algorithm -Step 2 6

Sequential Algorithm -Step 3 7

Sequential Algorithm -Step 3 7

Sequential Algorithm -Step 4 8

Sequential Algorithm -Step 4 8

Sequential Algorithm -Step 5 9

Sequential Algorithm -Step 5 9

Sequential Algorithm -Step 6 10

Sequential Algorithm -Step 6 10

Back to step 3 11

Back to step 3 11

Parallel Algorithm 12

Parallel Algorithm 12

Parallel Strategy • This work follows in the footsteps of a 1995 paper by

Parallel Strategy • This work follows in the footsteps of a 1995 paper by Kale et al. on small-scale parallel graph coloring. As it notes, exploring the search space consistently with a good sequential heuristic is important to achieving parallel speedup. • With priorities placed on the various possibilities to explore, we then expose the possibilities in priority order to the numerous processing elements available in the system. • Sub graph coloring problems resulting from partitioning will each be considered at a priority consistent with their likelihood of contributing to a solution to the overall coloring problem. . 13

Charm++ Implementation • • Start with 1 chare with an uncolored graph Spawn new

Charm++ Implementation • • Start with 1 chare with an uncolored graph Spawn new chares to explore parts of search space Chares report success or failure to 'parent' If the root node succeeds, or any of its children succeed, then we're done

Graph Partition • Boost Graph Library (BGL) – Boost Graph Library is a generic

Graph Partition • Boost Graph Library (BGL) – Boost Graph Library is a generic interface that allows access to a graph's structure – BGL provides some general purpose graph classes • METIS: A Library for Multilevel Partitioning Algorithms – Provides high quality partitions – It is extremely fast – Produces low fill orderings • Charm++: Spawn a chare for each part, have them report up to a parent, which merges successful results 15

Results • Sequential heuristic is effective – Solves small problems quickly – Solves larger

Results • Sequential heuristic is effective – Solves small problems quickly – Solves larger problems in reasonable time, once sufficient # of colors is reached • Parallel spawning not quite there yet. . . – Successfully exhausts memory – Need to limit, prioritize better

Questions? 17

Questions? 17

Sequential Algorithm 18

Sequential Algorithm 18

Parallel Algorithm 19

Parallel Algorithm 19

Back to Step 3 20

Back to Step 3 20