GEOS
Public Member Functions | List of all members
geos::graph::RLFGraphColoringMPI Class Reference

Distributed graph coloring using the Recursive Largest First (RLF) algorithm. More...

#include <RLFGraphColoringMPI.hpp>

Inheritance diagram for geos::graph::RLFGraphColoringMPI:
Inheritance graph
[legend]

Public Member Functions

 RLFGraphColoringMPI (MPI_Comm comm=MPI_COMM_GEOS)
 Constructor. More...
 
 ~RLFGraphColoringMPI ()
 Destructor.
 
size_t getNumberOfColors (const std::vector< int > &colors) const
 Returns the number of distinct colors used. More...
 
size_t getNumberOfColors (const int color) const
 Returns the number of distinct colors used, assuming one node per rank. More...
 
bool isColoringValid (const std::vector< camp::idx_t > &localAdjncy, const int localColor) const
 Validates the coloring of a graph partition. More...
 
std::vector< int > colorGraph (const std::vector< camp::idx_t > &localXadj, const std::vector< camp::idx_t > &localAdjncy) override
 Colors a distributed graph. More...
 
int colorGraph (const std::vector< camp::idx_t > &localAdjncy) override
 Simplified coloring assuming one node per rank. More...
 
- Public Member Functions inherited from geos::graph::GraphColoringBase
 GraphColoringBase (MPI_Comm comm=MPI_COMM_GEOS)
 Constructor. More...
 
virtual ~GraphColoringBase ()
 Virtual destructor.
 

Additional Inherited Members

- Static Public Member Functions inherited from geos::graph::GraphColoringBase
static bool isColoringValid (const std::vector< camp::idx_t > &xadj, const std::vector< camp::idx_t > &adjncy, const std::vector< int > &coloring)
 Checks the validity of the graph coloring. More...
 
static bool isColoringValid (const std::vector< camp::idx_t > &adjncy, const int color, MPI_Comm comm)
 Checks the validity of the graph coloring assuming one node per rank. More...
 
static size_t getNumberOfColors (const std::vector< int > &colors)
 Counts the number of distinct colors. More...
 
static size_t getNumberOfColors (const std::vector< int > &colors, MPI_Comm comm)
 Counts the number of distinct colors (parallel version). More...
 
static size_t getNumberOfColors (const int color, MPI_Comm comm)
 Counts the number of distinct colors assuming one node per rank (parallel version). More...
 
- Protected Attributes inherited from geos::graph::GraphColoringBase
MPI_Comm m_comm
 

Detailed Description

Distributed graph coloring using the Recursive Largest First (RLF) algorithm.

This class implements a parallel version of the RLF algorithm for graph coloring using MPI.

Definition at line 43 of file RLFGraphColoringMPI.hpp.

Constructor & Destructor Documentation

◆ RLFGraphColoringMPI()

geos::graph::RLFGraphColoringMPI::RLFGraphColoringMPI ( MPI_Comm  comm = MPI_COMM_GEOS)

Constructor.

Parameters
commMPI communicator (default: MPI_COMM_GEOS).

Member Function Documentation

◆ colorGraph() [1/2]

int geos::graph::RLFGraphColoringMPI::colorGraph ( const std::vector< camp::idx_t > &  localAdjncy)
overridevirtual

Simplified coloring assuming one node per rank.

Parameters
localAdjncyLocal adjacency list.
Returns
Color of the node.

Implements geos::graph::GraphColoringBase.

◆ colorGraph() [2/2]

std::vector< int > geos::graph::RLFGraphColoringMPI::colorGraph ( const std::vector< camp::idx_t > &  localXadj,
const std::vector< camp::idx_t > &  localAdjncy 
)
overridevirtual

Colors a distributed graph.

Parameters
localXadjLocal adjacency list offsets.
localAdjncyLocal adjacency list.
Returns
A vector of assigned colors.

Implements geos::graph::GraphColoringBase.

◆ getNumberOfColors() [1/2]

size_t geos::graph::RLFGraphColoringMPI::getNumberOfColors ( const int  color) const

Returns the number of distinct colors used, assuming one node per rank.

Parameters
colorColor value.
Returns
Number of unique colors.

◆ getNumberOfColors() [2/2]

size_t geos::graph::RLFGraphColoringMPI::getNumberOfColors ( const std::vector< int > &  colors) const

Returns the number of distinct colors used.

Parameters
colorsVector of color assignments.
Returns
Number of unique colors.

◆ isColoringValid()

bool geos::graph::RLFGraphColoringMPI::isColoringValid ( const std::vector< camp::idx_t > &  localAdjncy,
const int  localColor 
) const

Validates the coloring of a graph partition.

Parameters
localAdjncyadjacency list.
localColorColor assigned to the local node.
Returns
True if the coloring is valid, false otherwise.

The documentation for this class was generated from the following file: