Namespaces | |
detail | |
Classes | |
class | bfs_priority_queue |
class | bfs_queue |
class | bfs_visitor |
class | delegate_partitioned_graph |
class | dest_pair_partitioner |
class | edge_source_partitioner |
class | edge_target_partitioner |
class | el_partitioned_t |
class | get_local_id |
class | get_owner_id |
class | high_edge_partitioner |
class | local_dest_id |
class | local_source_id |
class | LogStep |
class | mailbox_routed |
class | mpi_communicator |
class | oned_blocked_partitioned_t |
struct | OverflowSendInfo |
class | owner_dest_id |
class | owner_sort |
class | owner_source_id |
class | pr_queue |
class | pr_visitor |
class | source_partitioner |
class | sssp_queue |
class | sssp_visitor |
class | termination_detection |
class | triangle_count_visitor |
class | triangle_priority_queue |
class | visitor_queue |
Typedefs | |
typedef struct havoqgt::mpi::OverflowSendInfo | OverflowSendInfo |
Functions | |
template<typename TGraph , typename LevelData , typename ParentData > | |
void | breadth_first_search (TGraph *g, LevelData &level_data, ParentData &parent_data, typename TGraph::vertex_locator s) |
template<typename EdgeType > | |
void | gen_preferential_attachment_edge_list (std::vector< EdgeType > &local_edges, uint64_t in_base_seed, uint64_t in_node_scale, uint64_t in_edge_scale, double in_beta, double in_prob_rewire, MPI_Comm in_comm) |
template<typename SegmentManager > | |
bool | operator== (const typename delegate_partitioned_graph< SegmentManager >::edge_iterator &x, const typename delegate_partitioned_graph< SegmentManager >::edge_iterator &y) |
template<typename SegmentManager > | |
bool | operator!= (const typename delegate_partitioned_graph< SegmentManager >::edge_iterator &x, const typename delegate_partitioned_graph< SegmentManager >::edge_iterator &y) |
template<typename SegmentManager > | |
bool | operator== (const typename delegate_partitioned_graph< SegmentManager >::vertex_iterator &x, const typename delegate_partitioned_graph< SegmentManager >::vertex_iterator &y) |
template<typename SegmentManager > | |
bool | operator!= (const typename delegate_partitioned_graph< SegmentManager >::vertex_iterator &x, const typename delegate_partitioned_graph< SegmentManager >::vertex_iterator &y) |
MPI_Datatype | mpi_typeof (char) |
MPI_Datatype | mpi_typeof (signed short) |
MPI_Datatype | mpi_typeof (unsigned char) |
MPI_Datatype | mpi_typeof (unsigned long long) |
MPI_Datatype | mpi_typeof (signed long long) |
MPI_Datatype | mpi_typeof (double) |
MPI_Datatype | mpi_typeof (long double) |
MPI_Datatype | mpi_typeof (std::pair< int, int >) |
MPI_Datatype | mpi_typeof (std::pair< float, int >) |
MPI_Datatype | mpi_typeof (std::pair< double, int >) |
MPI_Datatype | mpi_typeof (std::pair< long double, int >) |
MPI_Datatype | mpi_typeof (std::pair< short, int >) |
template<typename T > | |
MPI_Op | mpi_typeof (std::greater< T >) |
template<typename T > | |
MPI_Op | mpi_typeof (std::less< T >) |
template<typename T > | |
MPI_Op | mpi_typeof (std::plus< T >) |
template<typename T > | |
MPI_Op | mpi_typeof (std::multiplies< T >) |
template<typename T > | |
MPI_Op | mpi_typeof (std::logical_and< T >) |
template<typename T > | |
MPI_Op | mpi_typeof (std::logical_or< T >) |
void | mpi_yield_barrier (MPI_Comm mpi_comm) |
template<typename T , typename Op > | |
T | mpi_all_reduce (T in_d, Op in_op, MPI_Comm mpi_comm) |
template<typename Vec , typename Op > | |
void | mpi_all_reduce_inplace (Vec &vec, Op in_op, MPI_Comm mpi_comm) |
template<typename T , typename Op > | |
void | mpi_all_reduce (std::vector< T > &in_vec, std::vector< T > &out_vec, Op in_op, MPI_Comm mpi_comm) |
template<typename T > | |
void | mpi_all_to_all (std::vector< T > &in_vec, std::vector< int > &in_sendcnts, std::vector< T > &out_vec, std::vector< int > &out_recvcnts, MPI_Comm mpi_comm) |
template<typename T , typename Partitioner > | |
void | mpi_all_to_all (std::vector< T > &inout_vec, std::vector< T > &temp_vec, Partitioner &owner, MPI_Comm mpi_comm) |
template<typename T , typename Partitioner > | |
void | mpi_all_to_all_better (std::vector< T > &in_vec, std::vector< T > &out_vec, Partitioner &owner, MPI_Comm mpi_comm) |
template<typename T > | |
void | mpi_all_to_all_in_place (std::vector< T > &in_out_vec, size_t count, MPI_Comm mpi_comm) |
template<typename T > | |
void | mpi_all_gather (T _t, std::vector< T > &out_p_vec, MPI_Comm mpi_comm) |
TODO: Add tests. More... | |
template<typename T > | |
void | mpi_all_gather (std::vector< T > &in_send, std::vector< T > &out_recv_gather, MPI_Comm mpi_comm) |
TODO: Add tests, especially with non mpi types, POD. More... | |
template<typename T > | |
void | mpi_all_to_all (std::vector< std::vector< T > > &in_p_vec, std::vector< std::vector< T > > &out_p_vec, MPI_Comm mpi_comm) |
template<typename T > | |
void | mpi_bcast (T &data, int root, MPI_Comm comm) |
std::ostream & | cout_rank0 () |
std::ostream & | cout_rank0_barrier () |
int | mpi_comm_rank () |
int | mpi_comm_size () |
template<typename TGraph , typename PRData > | |
void | page_rank (TGraph &g, PRData &pr_data) |
template<typename TGraph , typename PathData , typename EdgeWeight > | |
void | single_source_shortest_path (TGraph &g, PathData &path_data, EdgeWeight &edge_data, typename TGraph::vertex_locator s) |
template<typename TGraph > | |
uint64_t | triangle_count (TGraph &g, typename TGraph::vertex_locator s) |
template<typename Container > | |
void | free_edge_container (Container &edges) |
Frees the container of edges. More... | |
template<> | |
void | free_edge_container< std::vector< std::pair< uint64_t, uint64_t > > > (std::vector< std::pair< uint64_t, uint64_t > > &edges) |
typedef struct havoqgt::mpi::OverflowSendInfo havoqgt::mpi::OverflowSendInfo |
This class is used to determine where to send a high edge. If the edge's destination is owned by another node, then the edge is sent to that node. Otherwise, it is sent to a node based on the transfer_info.
Transfer_info is a map of delgate ids (not vertex ids) to a dequeue. i.e. delgate_id = m_map_delegate_locator(vertex_id) Each dequeue contains one or more OverflowSendInfo object which contains to_send_id, to_send_count, temp_to_send_count. which determines who will recieve the extra edges.
void havoqgt::mpi::breadth_first_search | ( | TGraph * | g, |
LevelData & | level_data, | ||
ParentData & | parent_data, | ||
typename TGraph::vertex_locator | s | ||
) |
Definition at line 251 of file breadth_first_search.hpp.
|
inline |
|
inline |
void havoqgt::mpi::free_edge_container | ( | Container & | edges | ) |
void havoqgt::mpi::free_edge_container< std::vector< std::pair< uint64_t, uint64_t > > > | ( | std::vector< std::pair< uint64_t, uint64_t > > & | edges | ) |
Definition at line 63 of file utilities.hpp.
void havoqgt::mpi::gen_preferential_attachment_edge_list | ( | std::vector< EdgeType > & | local_edges, |
uint64_t | in_base_seed, | ||
uint64_t | in_node_scale, | ||
uint64_t | in_edge_scale, | ||
double | in_beta, | ||
double | in_prob_rewire, | ||
MPI_Comm | in_comm | ||
) |
Definition at line 65 of file gen_preferential_attachment_edge_list.hpp.
void havoqgt::mpi::mpi_all_gather | ( | T | _t, |
std::vector< T > & | out_p_vec, | ||
MPI_Comm | mpi_comm | ||
) |
void havoqgt::mpi::mpi_all_gather | ( | std::vector< T > & | in_send, |
std::vector< T > & | out_recv_gather, | ||
MPI_Comm | mpi_comm | ||
) |
TODO: Add tests, especially with non mpi types, POD.
Definition at line 443 of file mpi.hpp.
T havoqgt::mpi::mpi_all_reduce | ( | T | in_d, |
Op | in_op, | ||
MPI_Comm | mpi_comm | ||
) |
void havoqgt::mpi::mpi_all_reduce | ( | std::vector< T > & | in_vec, |
std::vector< T > & | out_vec, | ||
Op | in_op, | ||
MPI_Comm | mpi_comm | ||
) |
void havoqgt::mpi::mpi_all_reduce_inplace | ( | Vec & | vec, |
Op | in_op, | ||
MPI_Comm | mpi_comm | ||
) |
void havoqgt::mpi::mpi_all_to_all | ( | std::vector< T > & | in_vec, |
std::vector< int > & | in_sendcnts, | ||
std::vector< T > & | out_vec, | ||
std::vector< int > & | out_recvcnts, | ||
MPI_Comm | mpi_comm | ||
) |
void havoqgt::mpi::mpi_all_to_all | ( | std::vector< T > & | inout_vec, |
std::vector< T > & | temp_vec, | ||
Partitioner & | owner, | ||
MPI_Comm | mpi_comm | ||
) |
void havoqgt::mpi::mpi_all_to_all | ( | std::vector< std::vector< T > > & | in_p_vec, |
std::vector< std::vector< T > > & | out_p_vec, | ||
MPI_Comm | mpi_comm | ||
) |
All to All exchange of std::vector<T>
[in] | in_p_vec | input vector |
[out] | out_p_vec | output vector |
[in] | mpi_comm | MPI communicator |
Definition at line 487 of file mpi.hpp.
void havoqgt::mpi::mpi_all_to_all_better | ( | std::vector< T > & | in_vec, |
std::vector< T > & | out_vec, | ||
Partitioner & | owner, | ||
MPI_Comm | mpi_comm | ||
) |
void havoqgt::mpi::mpi_all_to_all_in_place | ( | std::vector< T > & | in_out_vec, |
size_t | count, | ||
MPI_Comm | mpi_comm | ||
) |
void havoqgt::mpi::mpi_bcast | ( | T & | data, |
int | root, | ||
MPI_Comm | comm | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
MPI_Op havoqgt::mpi::mpi_typeof | ( | std::greater< T > | ) |
MPI_Op havoqgt::mpi::mpi_typeof | ( | std::less< T > | ) |
MPI_Op havoqgt::mpi::mpi_typeof | ( | std::plus< T > | ) |
MPI_Op havoqgt::mpi::mpi_typeof | ( | std::multiplies< T > | ) |
MPI_Op havoqgt::mpi::mpi_typeof | ( | std::logical_and< T > | ) |
MPI_Op havoqgt::mpi::mpi_typeof | ( | std::logical_or< T > | ) |
void havoqgt::mpi::mpi_yield_barrier | ( | MPI_Comm | mpi_comm | ) |
|
inline |
|
inline |
|
inline |
|
inline |
void havoqgt::mpi::page_rank | ( | TGraph & | g, |
PRData & | pr_data | ||
) |
Definition at line 166 of file page_rank.hpp.
void havoqgt::mpi::single_source_shortest_path | ( | TGraph & | g, |
PathData & | path_data, | ||
EdgeWeight & | edge_data, | ||
typename TGraph::vertex_locator | s | ||
) |
Definition at line 172 of file single_source_shortest_path.hpp.
uint64_t havoqgt::mpi::triangle_count | ( | TGraph & | g, |
typename TGraph::vertex_locator | s | ||
) |
Definition at line 209 of file triangle_count.hpp.