GraphLab: Distributed Graph-Parallel API  2.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
graphlab::distributed_oblivious_ingress< VertexData, EdgeData > Class Template Reference

Ingress object assigning edges using randoming hash function. More...

#include <graphlab/graph/ingress/distributed_oblivious_ingress.hpp>

List of all members.

Public Types

typedef distributed_graph
< VertexData, EdgeData > 
graph_type
typedef VertexData vertex_data_type
 The type of the vertex data stored in the graph.
typedef EdgeData edge_data_type
 The type of the edge data stored in the graph.
typedef graph_type::vertex_record vertex_record
typedef graph_type::mirror_type mirror_type
typedef
distributed_ingress_base
< VertexData, EdgeData > 
base_type
typedef fixed_dense_bitset
< RPC_MAX_N_PROCS
bin_counts_type
typedef cuckoo_map_pow2
< vertex_id_type,
bin_counts_type, 3, uint32_t > 
degree_hash_table_type

Public Member Functions

 distributed_oblivious_ingress (distributed_control &dc, graph_type &graph, bool usehash=false, bool userecent=false)
void add_edge (vertex_id_type source, vertex_id_type target, const EdgeData &edata)
virtual void finalize ()
virtual void add_vertex (vertex_id_type vid, const VertexData &vdata)
 Add an vertex to the ingress object.
void exchange_global_info ()

Public Attributes

degree_hash_table_type dht
std::vector< size_t > proc_num_edges
bool usehash
bool userecent
dc_dist_object
< distributed_ingress_base > 
rpc
 The rpc interface for this object.
graph_typegraph
 The underlying distributed graph object that is being loaded.
buffered_exchange
< vertex_buffer_record
vertex_exchange
buffered_exchange
< edge_buffer_record
edge_exchange
ingress_edge_decision
< VertexData, EdgeData > 
edge_decision
 Ingress decision object for computing the edge destination.

Protected Member Functions

procid_t vertex_to_proc (const vertex_id_type vid) const
 Returns the random hashed pid of a vertex.

Detailed Description

template<typename VertexData, typename EdgeData>
class graphlab::distributed_oblivious_ingress< VertexData, EdgeData >

Ingress object assigning edges using randoming hash function.

Definition at line 45 of file distributed_oblivious_ingress.hpp.


Member Typedef Documentation

template<typename VertexData , typename EdgeData >
typedef cuckoo_map_pow2<vertex_id_type, bin_counts_type,3,uint32_t> graphlab::distributed_oblivious_ingress< VertexData, EdgeData >::degree_hash_table_type

Type of the degree hash table: a map from vertex id to a bitset of length num_procs.

Definition at line 63 of file distributed_oblivious_ingress.hpp.


Member Function Documentation

template<typename VertexData , typename EdgeData >
void graphlab::distributed_oblivious_ingress< VertexData, EdgeData >::add_edge ( vertex_id_type  source,
vertex_id_type  target,
const EdgeData &  edata 
)
inlinevirtual

Add an edge to the ingress object using oblivious greedy assignment.

Implements graphlab::idistributed_ingress< VertexData, EdgeData >.

Definition at line 84 of file distributed_oblivious_ingress.hpp.

template<typename VertexData , typename EdgeData >
virtual void graphlab::distributed_oblivious_ingress< VertexData, EdgeData >::finalize ( )
inlinevirtual

Finalize completes local graph data structure, and vertex record information by coordinating vertex information among the machines.

Implements graphlab::idistributed_ingress< VertexData, EdgeData >.

Definition at line 94 of file distributed_oblivious_ingress.hpp.


Member Data Documentation

template<typename VertexData , typename EdgeData >
std::vector<size_t> graphlab::distributed_oblivious_ingress< VertexData, EdgeData >::proc_num_edges

Array of number of edges on each proc.

Definition at line 67 of file distributed_oblivious_ingress.hpp.

template<typename VertexData , typename EdgeData >
bool graphlab::distributed_oblivious_ingress< VertexData, EdgeData >::usehash

Ingress tratis.

Definition at line 70 of file distributed_oblivious_ingress.hpp.


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