|
Galois
|
#include <NewGeneric.h>
Public Types | |
| using | base_DistGraph = DistGraph< NodeTy, EdgeTy > |
| typedef for base DistGraph class More... | |
Public Types inherited from galois::graphs::DistGraph< NodeTy, EdgeTy > | |
| using | GraphNode = typename GraphTy::GraphNode |
| Type representing a node in this graph. More... | |
| using | EdgeType = EdgeTy |
| Expose EdgeTy to other classes. More... | |
| using | iterator = typename GraphTy::iterator |
| iterator type over nodes More... | |
| using | const_iterator = typename GraphTy::const_iterator |
| constant iterator type over nodes More... | |
| using | edge_iterator = typename GraphTy::edge_iterator |
| iterator type over edges More... | |
Public Member Functions | |
| virtual unsigned | getHostID (uint64_t gid) const |
| Determines which host has the master for a particular node. More... | |
| virtual bool | isOwned (uint64_t gid) const |
| Determine if a node has a master on this host. More... | |
| virtual bool | isLocal (uint64_t gid) const |
| Determine if a node has a proxy on this host. More... | |
| virtual bool | is_vertex_cut () const |
| Returns true if current partition is a vertex cut. More... | |
| virtual std::pair< unsigned, unsigned > | cartesianGrid () const |
| Returns Cartesian split (if it exists, else returns pair of 0s. More... | |
| void | resetEdgeLoad () |
| Reset load balance on host reducibles. More... | |
| void | syncEdgeLoad () |
| Sync load balance on hosts using reducibles. More... | |
| void | printEdgeLoad () |
| Debug function: prints host loads. More... | |
| NewDistGraphGeneric (const std::string &filename, unsigned host, unsigned _numHosts, bool cuspAsync=true, uint32_t stateRounds=100, bool transpose=false, galois::graphs::MASTERS_DISTRIBUTION md=BALANCED_EDGES_OF_MASTERS, uint32_t nodeWeight=0, uint32_t edgeWeight=0, std::string masterBlockFile="", bool readFromFile=false, std::string localGraphFileName="local_graph", uint32_t edgeStateRounds=1) | |
| Constructor. More... | |
| ~NewDistGraphGeneric () | |
| Free the graph partitioner. More... | |
Public Member Functions inherited from galois::graphs::DistGraph< NodeTy, EdgeTy > | |
| DistGraph (unsigned host, unsigned numHosts) | |
| Constructor for DistGraph. More... | |
| std::vector< std::pair < uint32_t, uint32_t > > | getMirrorRanges () const |
| Return a vector of pairs denoting mirror node ranges. More... | |
| std::vector< std::vector < size_t > > & | getMirrorNodes () |
| bool | isTransposed () |
| uint64_t | getGID (const uint32_t nodeID) const |
| Converts a local node id into a global node id. More... | |
| uint32_t | getLID (const uint64_t nodeID) const |
| Converts a global node id into a local node id. More... | |
| NodeTy & | getData (GraphNode N, galois::MethodFlag mflag=galois::MethodFlag::UNPROTECTED) |
| Get data of a node. More... | |
| GraphTy::edge_data_reference | getEdgeData (edge_iterator ni, galois::MethodFlag mflag=galois::MethodFlag::UNPROTECTED) |
| Get the edge data for a particular edge in the graph. More... | |
| GraphNode | getEdgeDst (edge_iterator ni) |
| Gets edge destination of edge ni. More... | |
| edge_iterator | edge_begin (GraphNode N) |
| Gets the first edge of some node. More... | |
| edge_iterator | edge_end (GraphNode N) |
| Gets the end edge boundary of some node. More... | |
| galois::runtime::iterable < galois::NoDerefIterator < edge_iterator > > | edges (GraphNode N) |
| Returns an iterable object over the edges of a particular node in the graph. More... | |
| size_t | size () const |
| Gets number of nodes on this (local) graph. More... | |
| size_t | sizeEdges () const |
| Gets number of edges on this (local) graph. More... | |
| size_t | numMasters () const |
| Gets number of nodes on this (local) graph. More... | |
| size_t | getNumNodesWithEdges () const |
| Gets number of nodes with edges (may include nodes without edges) on this (local) graph. More... | |
| size_t | globalSize () const |
| Gets number of nodes on the global unpartitioned graph. More... | |
| size_t | globalSizeEdges () const |
| Gets number of edges on the global unpartitioned graph. More... | |
| const NodeRangeType & | allNodesRange () const |
| Returns a range object that encapsulates all nodes of the graph. More... | |
| const NodeRangeType & | masterNodesRange () const |
| Returns a range object that encapsulates only master nodes in this graph. More... | |
| const NodeRangeType & | allNodesWithEdgesRange () const |
| Returns a range object that encapsulates master nodes and nodes with edges in this graph. More... | |
| void | save_local_graph_to_file (std::string) |
| Write the local LC_CSR graph to the file on a disk. More... | |
| void | read_local_graph_from_file (std::string) |
| Read the local LC_CSR graph from the file on a disk. More... | |
| void | deallocate () |
| Deallocates underlying LC CSR Graph. More... | |
| void | sortEdgesByDestination () |
| Sort the underlying LC_CSR_Graph by ID (destinations) It sorts edges of the nodes by destination. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from galois::graphs::DistGraph< NodeTy, EdgeTy > | |
| void | increment_evilPhase () |
| Increments evilPhase, a phase counter used by communication. More... | |
| unsigned | evilPhasePlus1 () |
| Returns evilPhase + 1, handling loop around as necessary. More... | |
| uint64_t | computeMasters (MASTERS_DISTRIBUTION masters_distribution, galois::graphs::OfflineGraph &g, const std::vector< unsigned > &scalefactor, uint32_t nodeWeight=0, uint32_t edgeWeight=0, unsigned DecomposeFactor=1) |
| Wrapper call that will call into more specific compute masters functions that compute masters based on nodes, edges, or both. More... | |
| void | readersFromFile (galois::graphs::OfflineGraph &g, std::string filename) |
| reader assignment from a file corresponds to master assignment if using an edge cut More... | |
| uint32_t | G2L (uint64_t gid) const |
| uint64_t | L2G (uint32_t lid) const |
| void | determineThreadRanges () |
| Uses a pre-computed prefix sum to determine division of nodes among threads. More... | |
| void | determineThreadRangesMaster () |
| Determines the thread ranges for master nodes only and saves them to the object. More... | |
| void | determineThreadRangesWithEdges () |
| Determines the thread ranges for nodes with edges only and saves them to the object. More... | |
| void | initializeSpecificRanges () |
| Initializes the 3 range objects that a user can access to iterate over the graph in different ways. More... | |
| void | edgesEqualMasters () |
| Specific range editor: makes the range for edges equivalent to the range for masters. More... | |
Protected Attributes inherited from galois::graphs::DistGraph< NodeTy, EdgeTy > | |
| GraphTy | graph |
| The internal graph used by DistGraph to represent the graph. More... | |
| bool | transposed |
| Marks if the graph is transposed or not. More... | |
| uint64_t | numGlobalNodes |
| Total nodes in the global unpartitioned graph. More... | |
| uint64_t | numGlobalEdges |
| Total edges in the global unpartitioned graph. More... | |
| uint32_t | numNodes |
| Num nodes in this graph in total. More... | |
| uint64_t | numEdges |
| Num edges in this graph in total. More... | |
| const unsigned | id |
| ID of the machine. More... | |
| const uint32_t | numHosts |
| Total number of machines. More... | |
| uint32_t | numOwned |
| Number of nodes owned (masters) by this host. More... | |
| uint32_t | beginMaster |
| Local id of the beginning of master nodes. More... | |
| uint32_t | numNodesWithEdges |
| Number of nodes (masters + mirrors) that have outgoing edges. More... | |
| std::vector< std::pair < uint64_t, uint64_t > > | gid2host |
| Information that converts host to range of nodes that host reads. More... | |
| std::vector< std::vector < size_t > > | mirrorNodes |
| Mirror nodes from different hosts. For reduce. More... | |
| std::vector< uint64_t > | localToGlobalVector |
| GID = localToGlobalVector[LID]. More... | |
| std::unordered_map< uint64_t, uint32_t > | globalToLocalMap |
| LID = globalToLocalMap[GID]. More... | |
| NodeTy | type of node data for the graph |
| EdgeTy | type of edge data for the graph |
| using galois::graphs::NewDistGraphGeneric< NodeTy, EdgeTy, Partitioner >::base_DistGraph = DistGraph<NodeTy, EdgeTy> |
typedef for base DistGraph class
|
inline |
Constructor.
|
inline |
Free the graph partitioner.
|
inlinevirtual |
Returns Cartesian split (if it exists, else returns pair of 0s.
Reimplemented from galois::graphs::DistGraph< NodeTy, EdgeTy >.
|
inlinevirtual |
Determines which host has the master for a particular node.
Implements galois::graphs::DistGraph< NodeTy, EdgeTy >.
|
inlinevirtual |
Returns true if current partition is a vertex cut.
Implements galois::graphs::DistGraph< NodeTy, EdgeTy >.
|
inlinevirtual |
Determine if a node has a proxy on this host.
Implements galois::graphs::DistGraph< NodeTy, EdgeTy >.
|
inlinevirtual |
Determine if a node has a master on this host.
Implements galois::graphs::DistGraph< NodeTy, EdgeTy >.
|
inline |
Debug function: prints host loads.
|
inline |
Reset load balance on host reducibles.
|
inline |
Sync load balance on hosts using reducibles.