-
Notifications
You must be signed in to change notification settings - Fork 99
Graph Coloring
brian-kelley edited this page Jan 17, 2024
·
2 revisions
The graph_color_symbolic
function resides in the KokkosGraph::Experimental
namespace. A kernel handle is used to set options such as execution space, memory space, team size, and which algorithm implementation is used.
Header File: KokkosGraph_graph_color.hpp
Usage:
KokkosGraph::Experimental::graph_color (
KernelHandle *handle,
typename KernelHandle::nnz_lno_t num_rows,
typename KernelHandle::nnz_lno_t num_cols,
lno_row_view_t_ row_map,
lno_nnz_view_t_ entries,
bool is_symmetric = true)
-
row_map
andentries
represent the graph in compressed sparse row format num_rows == num_cols
- The input graph must be structurally symmetric, meaning that if
(i,j)
is an entry, then so is(j,i)
.- Except: any entry
(i,j)
wherej >= num_rows
is ignored. This is useful for coloring the local subgraph of a distributed matrix.
- Except: any entry
- Diagonal entries (self-loops) are ignored.
- Get the view of colors:
handle->get_graph_coloring_handle()->get_vertex_colors();
- Note: color values use 1-based numbering, i.e. 1 is the first color and so on.
- Get the number of colors used:
handle->get_graph_coloring_handle()->get_num_colors()
- COLORING_DEFAULT
- COLORING_SERIAL
- COLORING_VB
- COLORING_VBBIT
- COLORING_VBCS
- COLORING_EB
https://github.com/kokkos/kokkos-kernels/blob/master/unit_test/graph/Test_Graph_graph_color.hpp