diff --git a/annotated.html b/annotated.html new file mode 100644 index 00000000..f3860946 --- /dev/null +++ b/annotated.html @@ -0,0 +1,323 @@ + + +
+ + + + +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
►Ncub | |
►Ngrape | |
►Nstd | |
CThreadPool |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
#include <stdint.h>
+Namespaces | |
grape | |
+Functions | |
template<typename T > | |
bool | grape::atomic_compare_and_swap (T &val, T old_val, T new_val) |
Atomic compare and swap operation. Equavalent to: More... | |
+template<> | |
bool | grape::atomic_compare_and_swap (float &val, float old_val, float new_val) |
+template<> | |
bool | grape::atomic_compare_and_swap (double &val, double old_val, double new_val) |
template<typename T > | |
bool | grape::atomic_min (T &a, T b) |
Atomic compare and store the minimum value. Equavalent to: More... | |
template<typename T > | |
void | grape::atomic_add (T &a, T b) |
Atomic add a value. Equavalent to: More... | |
+template<> | |
void | grape::atomic_add (float &a, float b) |
+template<> | |
void | grape::atomic_add (double &a, double b) |
template<typename T > | |
void | grape::atomic_sub (T &a, T b) |
Atomic sub a value. Equavalent to: More... | |
+template<> | |
void | grape::atomic_sub (float &a, float b) |
+template<> | |
void | grape::atomic_sub (double &a, double b) |
Copyright 2020 Alibaba Group Holding Limited.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 +
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
+Some atomic instructions.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for ThreadPool, including all inherited members.
+condition (defined in ThreadPool) | ThreadPool | private |
enqueue(F &&f, Args &&... args) -> std::future< grape::result_of_t< F, Args... >> (defined in ThreadPool) | ThreadPool | |
GetThreadNum() (defined in ThreadPool) | ThreadPool | inline |
InitThreadPool(const grape::ParallelEngineSpec &) (defined in ThreadPool) | ThreadPool | inline |
operator=(ThreadPool const &)=delete (defined in ThreadPool) | ThreadPool | |
queue_mutex (defined in ThreadPool) | ThreadPool | private |
stop (defined in ThreadPool) | ThreadPool | private |
tasks (defined in ThreadPool) | ThreadPool | private |
thread_num_ (defined in ThreadPool) | ThreadPool | private |
ThreadPool(ThreadPool const &)=delete (defined in ThreadPool) | ThreadPool | |
ThreadPool() (defined in ThreadPool) | ThreadPool | inline |
WaitEnd(std::vector< std::future< void >> &results) (defined in ThreadPool) | ThreadPool | inline |
workers (defined in ThreadPool) | ThreadPool | private |
~ThreadPool() (defined in ThreadPool) | ThreadPool | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
#include <thread_pool.h>
+Public Member Functions | |
+ | ThreadPool (ThreadPool const &)=delete |
+ThreadPool & | operator= (ThreadPool const &)=delete |
+void | InitThreadPool (const grape::ParallelEngineSpec &) |
+template<class F , class... Args> | |
auto | enqueue (F &&f, Args &&... args) -> std::future< grape::result_of_t< F, Args... >> |
+int | GetThreadNum () |
+void | WaitEnd (std::vector< std::future< void >> &results) |
Credits to Jakob Progsch (@progschj) https://github.com/progschj/ThreadPool
+Copyright (c) 2012 Jakob Progsch, Václav Zeman
+This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
+Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
+Modified by Binrui Li at Alibaba Group, 2021.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::AdjList< VID_T, EDATA_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A iteratable adjencent list of a vertex. The list contains all neighbors in format of Nbr, which contains the other Node and the data on the Edge. + More...
+ +#include <adj_list.h>
+Classes | |
class | const_iterator |
class | iterator |
+Public Member Functions | |
+DEV_HOST | AdjList (NbrT *b, NbrT *e) |
+DEV_HOST_INLINE bool | Empty () const |
+DEV_HOST_INLINE bool | NotEmpty () const |
+DEV_HOST_INLINE size_t | Size () const |
+DEV_HOST iterator | begin () |
+DEV_HOST iterator | end () |
+DEV_HOST const_iterator | begin () const |
+DEV_HOST const_iterator | end () const |
+DEV_HOST NbrT * | begin_pointer () |
+DEV_HOST const NbrT * | begin_pointer () const |
+DEV_HOST NbrT * | end_pointer () |
+DEV_HOST const NbrT * | end_pointer () const |
+DEV_HOST bool | empty () const |
+Private Types | |
+using | NbrT = Nbr< VID_T, EDATA_T > |
+Private Attributes | |
+NbrT * | begin_ |
+NbrT * | end_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::AdjList< VID_T, EDATA_T >::const_iterator, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+DEV_HOST | const_iterator (const pointer_type &c) noexcept |
+DEV_HOST reference_type | operator* () const noexcept |
+DEV_HOST pointer_type | operator-> () const noexcept |
+DEV_HOST const_iterator & | operator++ () noexcept |
+DEV_HOST const_iterator | operator++ (int) noexcept |
+DEV_HOST const_iterator & | operator-- () noexcept |
+DEV_HOST const_iterator | operator-- (int) noexcept |
+DEV_HOST const_iterator | operator+ (size_t offset) noexcept |
+DEV_HOST bool | operator== (const const_iterator &rhs) noexcept |
+DEV_HOST bool | operator!= (const const_iterator &rhs) noexcept |
+Private Types | |
+using | pointer_type = const NbrT * |
+using | reference_type = const NbrT & |
+Private Attributes | |
+const NbrT * | current_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::AdjList< VID_T, EDATA_T >::iterator, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+DEV_HOST | iterator (const pointer_type &c) noexcept |
+DEV_HOST reference_type | operator* () const noexcept |
+DEV_HOST pointer_type | operator-> () const noexcept |
+DEV_HOST iterator & | operator++ () noexcept |
+DEV_HOST iterator | operator++ (int) noexcept |
+DEV_HOST iterator & | operator-- () noexcept |
+DEV_HOST iterator | operator-- (int) noexcept |
+DEV_HOST iterator | operator+ (size_t offset) noexcept |
+DEV_HOST bool | operator== (const iterator &rhs) noexcept |
+DEV_HOST bool | operator!= (const iterator &rhs) noexcept |
+Private Types | |
+using | pointer_type = NbrT * |
+using | reference_type = NbrT & |
+Private Attributes | |
+NbrT * | current_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::Array< _Tp, _Alloc >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
Array a std::vector-like container type without reserving memory. + More...
+ +#include <gcontainer.h>
+Classes | |
struct | __Array_base |
struct | _ConstructTransaction |
+Public Member Functions | |
+allocator_type | get_allocator () const noexcept |
+ | Array (const allocator_type &__a) noexcept |
+ | Array (size_type __n, const allocator_type &__a=allocator_type()) |
+ | Array (size_type __n, const value_type &__x, const allocator_type &__a=allocator_type()) |
+ | Array (const Array &__x) |
+ | Array (Array &&__x) noexcept |
+ | Array (const Array &__x, const allocator_type &__a) |
+ | Array (Array &&__x, const allocator_type &__a) |
+Array & | operator= (const Array &__x) |
+Array & | operator= (Array &&__x) |
+size_type | size () const noexcept |
+void | resize (size_type __new_size) |
+void | resize (size_type __new_size, const value_type &__x) |
+bool | empty () const noexcept |
+reference | operator[] (size_type __n) noexcept |
+const_reference | operator[] (size_type __n) const noexcept |
+reference | at (size_type __n) noexcept |
+const_reference | at (size_type __n) const noexcept |
+pointer | data () noexcept |
+const_pointer | data () const noexcept |
+iterator | begin () noexcept |
+const_iterator | begin () const noexcept |
+iterator | end () noexcept |
+const_iterator | end () const noexcept |
+void | swap (Array &__x) noexcept |
+void | clear () noexcept |
+Private Attributes | |
+__Array_base | __base |
Array a std::vector-like container type without reserving memory.
+Unlike std::array, Array is resizable, and unlike std::vector, Array takes exactly memory for elements without reserving spaces for further insertions.
+_Tp | Type of elements in the array. |
_Alloc | Allocator type that will be used for memory allocation. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::Array< EmptyType, _Alloc >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
Template specialization of Array for EmptyType, without consuming extra memory for EmptyType but provides same interfaces with Array of usual data types. + More...
+ +#include <gcontainer.h>
+Classes | |
struct | __Array_base |
struct | const_iterator |
struct | iterator |
+Public Types | |
+using | pointer = EmptyType * |
+using | const_pointer = const EmptyType * |
+using | reference = EmptyType & |
+using | const_reference = const EmptyType & |
+using | size_type = size_t |
+using | value_type = EmptyType |
+using | allocator_type = _Alloc |
+Public Member Functions | |
+allocator_type | get_allocator () const noexcept |
+ | Array (const allocator_type &__a) noexcept |
+ | Array (size_type __n, const allocator_type &__a=allocator_type()) |
+ | Array (size_type __n, const value_type &__value, const allocator_type &__a=allocator_type()) |
+ | Array (const Array &__x) |
+ | Array (Array &&__x) noexcept |
+ | Array (const Array &__x, const allocator_type &__a) |
+ | Array (Array &&__x, const allocator_type &__m) |
+Array & | operator= (const Array &__x) |
+Array & | operator= (Array &&__x) |
+size_type | size () const noexcept |
+void | resize (size_type __new_size) |
+void | resize (size_type __new_size, const value_type &) |
+bool | empty () const noexcept |
+reference | operator[] (size_type) noexcept |
+const_reference | operator[] (size_type) const noexcept |
+reference | at (size_type __n) noexcept |
+const_reference | at (size_type __n) const noexcept |
+pointer | data () noexcept |
+const_pointer | data () const noexcept |
+iterator | begin () noexcept |
+const_iterator | begin () const noexcept |
+iterator | end () noexcept |
+const_iterator | end () const noexcept |
+void | swap (Array &__x) noexcept |
+void | clear () noexcept |
+Private Member Functions | |
+allocator_type & | __alloc () noexcept |
+const allocator_type & | __alloc () const noexcept |
+void | __range_check (size_type __n) const noexcept |
+Private Attributes | |
+__Array_base | __base |
+EmptyType | __val |
+size_type | __size |
Template specialization of Array for EmptyType, without consuming extra memory for EmptyType but provides same interfaces with Array of usual data types.
+_Alloc | Allocator type that will be used for memory allocation. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::AutoAppBase< FRAG_T, CONTEXT_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
AutoAppBase is a base class for auto-parallel apps. It contains an AutoParallelMessageManager to process messages implicitly during the computation. + More...
+ +#include <auto_app_base.h>
+Public Types | |
+using | message_manager_t = AutoParallelMessageManager< FRAG_T > |
+Public Member Functions | |
virtual void | PEval (const FRAG_T &graph, CONTEXT_T &context)=0 |
Partial evaluation to implement. More... | |
virtual void | IncEval (const FRAG_T &graph, CONTEXT_T &context)=0 |
Incremental evaluation to implement. More... | |
+Static Public Attributes | |
+static constexpr bool | need_split_edges = false |
+static constexpr bool | need_split_edges_by_fragment = false |
static constexpr MessageStrategy | message_strategy |
+static constexpr LoadStrategy | load_strategy = LoadStrategy::kOnlyOut |
AutoAppBase is a base class for auto-parallel apps. It contains an AutoParallelMessageManager to process messages implicitly during the computation.
+FRAG_T | |
CONTEXT_T |
+
|
+ +pure virtual | +
Incremental evaluation to implement.
+graph | |
context | |
messages |
+
|
+ +pure virtual | +
Partial evaluation to implement.
+graph | |
context | |
messages |
+
|
+ +staticconstexpr | +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::AutoParallelMessageManager< FRAG_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A kind of message manager supporting auto parallelism. + More...
+ +#include <auto_parallel_message_manager.h>
+Classes | |
struct | ap_event |
+Public Member Functions | |
+void | StartARound () override |
Inherit. | |
+void | FinishARound () override |
Inherit. | |
void | RegisterSyncBuffer (const FRAG_T &frag, ISyncBuffer *buffer, MessageStrategy strategy) |
Register a buffer to be sync automatically between rounds. More... | |
+void | Init (MPI_Comm comm) override |
Inherit. | |
+void | Start () override |
Inherit. | |
+bool | ToTerminate () override |
Inherit. | |
+void | Finalize () override |
Inherit. | |
+size_t | GetMsgSize () const override |
Inherit. | |
+void | ForceContinue () override |
Inherit. | |
![]() | |
+void | Init (MPI_Comm comm) override |
Inherit. | |
+void | StartARound () override |
Inherit. | |
+void | FinishARound () override |
Inherit. | |
+size_t | GetMsgSize () const override |
Inherit. | |
+void | ForceTerminate (const std::string &terminate_info) override |
Inherit. | |
+const TerminateInfo & | GetTerminateInfo () const override |
Inherit. | |
template<typename MESSAGE_T > | |
void | SendToFragment (fid_t dst_fid, const MESSAGE_T &msg) |
Send message to a fragment. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication by synchronizing the status on outer vertices, for edge-cut fragments. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughIEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via a crossing edge a<-c. It sends message from a to c. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughOEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via a crossing edge a->b. It sends message from a to b. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via crossing edges a->b and a<-c. It sends message from a to b and c. More... | |
template<typename MESSAGE_T > | |
bool | GetMessage (MESSAGE_T &msg) |
Get a message from message buffer. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
bool | GetMessage (const GRAPH_T &frag, typename GRAPH_T::vertex_t &v, MESSAGE_T &msg) |
Get a message and its target vertex from message buffer. More... | |
+Private Types | |
+using | Base = DefaultMessageManager |
+using | vid_t = typename FRAG_T::vid_t |
+Private Member Functions | |
+void | aggregateAutoMessages () |
+void | generateAutoMessages () |
+template<typename T > | |
void | syncOnInnerVertexSend (const FRAG_T &frag, ISyncBuffer *buffer, int event_id, MessageStrategy message_strategy) |
+template<typename T > | |
void | syncOnOuterVertexSend (const FRAG_T &frag, ISyncBuffer *buffer, int event_id) |
+template<typename T > | |
void | syncOnVertexRecv (const FRAG_T &frag, ISyncBuffer *buffer) |
+Private Attributes | |
+std::vector< ap_event > | auto_parallel_events_ |
+Additional Inherited Members | |
![]() | |
+fid_t | fid () const |
+fid_t | fnum () const |
![]() | |
+std::vector< InArchive > | to_send_ |
A kind of message manager supporting auto parallelism.
+After registering the vertex array and message strategy as a sync buffer, message generation and ingestion can be applied by message manager automatically.
+
+
|
+ +inline | +
Register a buffer to be sync automatically between rounds.
+frag | |
buffer | |
strategy |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::BasicFragmentLoader< FRAG_T, IOADAPTOR_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | BasicFragmentLoader (const CommSpec &comm_spec) |
+void | SetPartitioner (const partitioner_t &partitioner) |
+void | SetPartitioner (partitioner_t &&partitioner) |
+void | Start () |
+void | Stop () |
+void | AddVertex (const oid_t &id, const vdata_t &data) |
+void | AddEdge (const oid_t &src, const oid_t &dst, const edata_t &data) |
+bool | SerializeFragment (std::shared_ptr< fragment_t > &fragment, const std::string &serialization_prefix) |
+bool | existSerializationFile (const std::string &prefix) |
+bool | DeserializeFragment (std::shared_ptr< fragment_t > &fragment, const std::string &deserialization_prefix) |
+void | ConstructFragment (std::shared_ptr< fragment_t > &fragment, bool directed) |
+void | vertexRecvRoutine () |
+void | edgeRecvRoutine () |
+void | initOuterVertexData (std::shared_ptr< fragment_t > fragment) |
+Private Types | |
+using | fragment_t = FRAG_T |
+using | oid_t = typename fragment_t::oid_t |
+using | internal_oid_t = typename InternalOID< oid_t >::type |
+using | vid_t = typename fragment_t::vid_t |
+using | vdata_t = typename fragment_t::vdata_t |
+using | edata_t = typename fragment_t::edata_t |
+using | vertex_map_t = typename fragment_t::vertex_map_t |
+using | partitioner_t = typename vertex_map_t::partitioner_t |
+Private Attributes | |
+CommSpec | comm_spec_ |
+std::shared_ptr< vertex_map_t > | vm_ptr_ |
+std::vector< ShuffleOut< internal_oid_t, vdata_t > > | vertices_to_frag_ |
+std::vector< ShuffleOut< internal_oid_t, internal_oid_t, edata_t > > | edges_to_frag_ |
+std::thread | vertex_recv_thread_ |
+std::thread | edge_recv_thread_ |
+bool | recv_thread_running_ |
+std::vector< ShuffleBufferTuple< internal_oid_t, vdata_t > > | got_vertices_ |
+std::vector< ShuffleBufferTuple< internal_oid_t, internal_oid_t, edata_t > > | got_edges_ |
+std::vector< internal::Vertex< vid_t, vdata_t > > | processed_vertices_ |
+std::vector< Edge< vid_t, edata_t > > | processed_edges_ |
+Static Private Attributes | |
+static constexpr LoadStrategy | load_strategy = fragment_t::load_strategy |
+static constexpr int | vertex_tag = 5 |
+static constexpr int | edge_tag = 6 |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::BasicFragmentMutator< FRAG_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | BasicFragmentMutator (const CommSpec &comm_spec, std::shared_ptr< fragment_t > fragment) |
+void | SetPartitioner (const partitioner_t &partitioner) |
+void | SetPartitioner (partitioner_t &&partitioner) |
+void | AddVerticesToRemove (const std::vector< vid_t > &id_vec) |
+void | AddVerticesToRemove (std::vector< vid_t > &&id_vec) |
+void | AddVerticesToUpdate (const std::vector< internal::Vertex< vid_t, vdata_t >> &v_vec) |
+void | AddVerticesToUpdate (std::vector< internal::Vertex< vid_t, vdata_t >> &&v_vec) |
+std::shared_ptr< fragment_t > | MutateFragment () |
+void | Start () |
+void | AddVertex (const internal_oid_t &id, const vdata_t &data) |
+void | AddVertices (std::vector< typename ShuffleBuffer< internal_oid_t >::type > &&id_lists, std::vector< typename ShuffleBuffer< vdata_t >::type > &&data_lists) |
+void | AddEdge (const internal_oid_t &src, const internal_oid_t &dst, const edata_t &data) |
+void | AddEdges (std::vector< typename ShuffleBuffer< internal_oid_t >::type > &&src_lists, std::vector< typename ShuffleBuffer< internal_oid_t >::type > &&dst_lists, std::vector< typename ShuffleBuffer< edata_t >::type > &&data_lists) |
+void | RemoveVertex (const oid_t &id) |
+void | RemoveVertices (std::vector< typename ShuffleBuffer< oid_t >::type > &&id_lists) |
+void | RemoveEdge (const oid_t &src, const oid_t &dst) |
+void | RemoveEdges (std::vector< typename ShuffleBuffer< oid_t >::type > &&src_lists, std::vector< typename ShuffleBuffer< oid_t >::type > &&dst_lists) |
+template<typename Q = vdata_t> | |
std::enable_if< std::is_same< Q, EmptyType >::value >::type | UpdateVertex (const oid_t &id, const vdata_t &data) |
+template<typename Q = vdata_t> | |
std::enable_if<!std::is_same< Q, EmptyType >::value >::type | UpdateVertex (const oid_t &id, const vdata_t &data) |
+template<typename Q = vdata_t> | |
std::enable_if< std::is_same< Q, EmptyType >::value >::type | UpdateVertices (std::vector< typename ShuffleBuffer< oid_t >::type > &&id_lists, std::vector< typename ShuffleBuffer< vdata_t >::type > &&data_lists) |
+template<typename Q = vdata_t> | |
std::enable_if<!std::is_same< Q, EmptyType >::value >::type | UpdateVertices (std::vector< typename ShuffleBuffer< oid_t >::type > &&id_lists, std::vector< typename ShuffleBuffer< vdata_t >::type > &&data_lists) |
+void | UpdateEdge (const oid_t &src, const oid_t &dst, const edata_t &data) |
+void | UpdateEdges (std::vector< typename ShuffleBuffer< oid_t >::type > &&src_lists, std::vector< typename ShuffleBuffer< oid_t >::type > &&dst_lists, std::vector< typename ShuffleBuffer< edata_t >::type > &&data_lists) |
+Private Types | |
+using | fragment_t = FRAG_T |
+using | vertex_map_t = typename FRAG_T::vertex_map_t |
+using | oid_t = typename FRAG_T::oid_t |
+using | internal_oid_t = typename InternalOID< oid_t >::type |
+using | vid_t = typename FRAG_T::vid_t |
+using | vdata_t = typename FRAG_T::vdata_t |
+using | edata_t = typename FRAG_T::edata_t |
+using | mutation_t = Mutation< vid_t, vdata_t, edata_t > |
+using | partitioner_t = typename vertex_map_t::partitioner_t |
+Private Member Functions | |
+void | recvThreadRoutine () |
+Private Attributes | |
+CommSpec | comm_spec_ |
+std::shared_ptr< fragment_t > | fragment_ |
+std::shared_ptr< vertex_map_t > | vm_ptr_ |
+std::thread | recv_thread_ |
+std::vector< vid_t > | parsed_vertices_to_remove_ |
+std::vector< internal::Vertex< vid_t, vdata_t > > | parsed_vertices_to_update_ |
+std::vector< internal::Vertex< vid_t, vdata_t > > | parsed_vertices_to_add_ |
+std::vector< ShuffleOut< internal_oid_t > > | vertices_to_remove_ |
+std::vector< ShuffleBufferTuple< internal_oid_t > > | got_vertices_to_remove_ |
+std::vector< ShuffleOut< internal_oid_t, vdata_t > > | vertices_to_add_ |
+std::vector< ShuffleBufferTuple< internal_oid_t, vdata_t > > | got_vertices_to_add_ |
+std::vector< ShuffleOut< internal_oid_t, vdata_t > > | vertices_to_update_ |
+std::vector< ShuffleBufferTuple< internal_oid_t, vdata_t > > | got_vertices_to_update_ |
+std::vector< ShuffleOut< internal_oid_t, internal_oid_t > > | edges_to_remove_ |
+std::vector< ShuffleBufferTuple< internal_oid_t, internal_oid_t > > | got_edges_to_remove_ |
+std::vector< ShuffleOut< internal_oid_t, internal_oid_t, edata_t > > | edges_to_update_ |
+std::vector< ShuffleBufferTuple< internal_oid_t, internal_oid_t, edata_t > > | got_edges_to_update_ |
+std::vector< ShuffleOut< internal_oid_t, internal_oid_t, edata_t > > | edges_to_add_ |
+std::vector< ShuffleBufferTuple< internal_oid_t, internal_oid_t, edata_t > > | got_edges_to_add_ |
+mutation_t | mutation_ |
+Static Private Attributes | |
+static constexpr LoadStrategy | load_strategy = FRAG_T::load_strategy |
+static constexpr int | vr_tag = 1 |
+static constexpr int | va_tag = 2 |
+static constexpr int | vu_tag = 3 |
+static constexpr int | er_tag = 4 |
+static constexpr int | ea_tag = 5 |
+static constexpr int | eu_tag = 6 |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::BatchShuffleAppBase< FRAG_T, CONTEXT_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | message_manager_t = BatchShuffleMessageManager |
+Public Member Functions | |
virtual void | PEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0 |
Partial evaluation to implement. More... | |
virtual void | IncEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0 |
Incremental evaluation to implement. More... | |
+Static Public Attributes | |
+static constexpr bool | need_split_edges = false |
+static constexpr bool | need_split_edges_by_fragment = false |
static constexpr MessageStrategy | message_strategy |
+static constexpr LoadStrategy | load_strategy = LoadStrategy::kOnlyOut |
+
|
+ +pure virtual | +
Incremental evaluation to implement.
+graph | |
context | |
messages |
+
|
+ +pure virtual | +
Partial evaluation to implement.
+graph | |
context | |
messages |
+
|
+ +staticconstexpr | +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::BatchShuffleMessageManager, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | Init (MPI_Comm comm) override |
Inherit. | |
+void | ReserveBuffer (fid_t fid, size_t send_size, size_t recv_size) |
+void | SetupBuffer (fid_t fid, std::vector< char, Allocator< char >> &&send_buffer, std::vector< char, Allocator< char >> &&recv_buffer) |
+void | Start () override |
Inherit. | |
+void | StartARound () override |
Inherit. | |
+void | FinishARound () override |
Inherit. | |
+bool | ToTerminate () override |
Inherit. | |
+size_t | GetMsgSize () const override |
Inherit. | |
+void | Finalize () override |
Inherit. | |
template<typename GRAPH_T , typename DATA_T > | |
void | SyncInnerVertices (const GRAPH_T &frag, typename GRAPH_T::template vertex_array_t< DATA_T > &data, int thread_num=std::thread::hardware_concurrency()) |
Synchronize the inner vertices' data of a vertex array to their mirrors. More... | |
+void | UpdateOuterVertices () |
This function will block until all outer vertices are updated, that is, messages from all other fragments are received. | |
fid_t | UpdatePartialOuterVertices () |
This function will block until a set of messages from one fragment are received. More... | |
+void | ForceContinue () override |
Inherit. | |
+void | ForceTerminate (const std::string &terminate_info) override |
Inherit. | |
+const TerminateInfo & | GetTerminateInfo () const override |
Inherit. | |
+Private Types | |
+template<typename FRAG_T , typename MESSAGE_T > | |
using | shuffle_inplace_t = batch_shuffle_message_manager_impl::ShuffleInplace< FRAG_T, MESSAGE_T > |
+template<typename FRAG_T , typename MESSAGE_T > | |
using | pod_shuffle_t = batch_shuffle_message_manager_impl::PodShuffle< FRAG_T, MESSAGE_T > |
+template<typename FRAG_T > | |
using | archive_shuffle_t = batch_shuffle_message_manager_impl::ArchiveShuffle< FRAG_T > |
+Private Member Functions | |
+void | recvThreadRoutine () |
+template<typename GRAPH_T , typename DATA_T > | |
std::enable_if< archive_shuffle_t< DATA_T >::value >::type | startRecv (const GRAPH_T &frag, typename GRAPH_T::template vertex_array_t< DATA_T > &data, int thread_num) |
+template<typename GRAPH_T , typename DATA_T > | |
std::enable_if< shuffle_inplace_t< GRAPH_T, DATA_T >::value >::type | startRecv (const GRAPH_T &frag, typename GRAPH_T::template vertex_array_t< DATA_T > &data, int thread_num) |
+template<typename GRAPH_T , typename DATA_T > | |
std::enable_if< pod_shuffle_t< GRAPH_T, DATA_T >::value >::type | startRecv (const GRAPH_T &frag, typename GRAPH_T::template vertex_array_t< DATA_T > &data, int thread_num) |
+template<typename GRAPH_T , typename DATA_T > | |
std::enable_if<!archive_shuffle_t< DATA_T >::value >::type | startSend (const GRAPH_T &frag, const typename GRAPH_T::template vertex_array_t< DATA_T > &data, int thread_num) |
+template<typename GRAPH_T , typename DATA_T > | |
std::enable_if< archive_shuffle_t< DATA_T >::value >::type | startSend (const GRAPH_T &frag, const typename GRAPH_T::template vertex_array_t< DATA_T > &data, int thread_num) |
+template<typename GRAPH_T , typename DATA_T > | |
std::enable_if<!shuffle_inplace_t< GRAPH_T, DATA_T >::value >::type | postProcess (const GRAPH_T &frag, fid_t i, const typename GRAPH_T::template vertex_array_t< DATA_T > &data, int thread_num) |
+template<typename GRAPH_T , typename DATA_T > | |
std::enable_if< shuffle_inplace_t< GRAPH_T, DATA_T >::value >::type | postProcess (const GRAPH_T &frag, fid_t i, const typename GRAPH_T::template vertex_array_t< DATA_T > &data, int thread_num) |
+Private Attributes | |
+fid_t | fid_ |
+fid_t | fnum_ |
+CommSpec | comm_spec_ |
+MPI_Comm | comm_ |
+std::vector< std::vector< char, Allocator< char > > > | shuffle_out_buffers_ |
+std::vector< InArchive > | shuffle_out_archives_ |
+std::vector< std::vector< char, Allocator< char > > > | shuffle_in_buffers_ |
+std::shared_ptr< batch_shuffle_message_manager_impl::PostProcessBase > | post_process_handle_ |
+std::vector< MPI_Request > | recv_reqs_ |
+std::vector< fid_t > | recv_from_ |
+std::vector< int > | remaining_reqs_ |
+fid_t | remaining_frags_ |
+std::vector< MPI_Request > | send_reqs_ |
+size_t | msg_size_ |
+std::thread | recv_thread_ |
+bool | to_terminate_ |
+bool | force_terminate_ |
+TerminateInfo | terminate_info_ |
+BlockingQueue< fid_t > | sending_queue_ |
+
|
+ +inline | +
Synchronize the inner vertices' data of a vertex array to their mirrors.
+GRAPH_T | |
DATA_T |
frag | |
data |
+
|
+ +inline | +
This function will block until a set of messages from one fragment are received.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::Bitset, including all inherited members.
+allocate(size_type __n) (defined in grape::DefaultAllocator< _Tp >) | grape::DefaultAllocator< _Tp > | inline |
Bitset() (defined in grape::Bitset) | grape::Bitset | inline |
Bitset(size_t size) (defined in grape::Bitset) | grape::Bitset | inlineexplicit |
Bitset(const Bitset &other) (defined in grape::Bitset) | grape::Bitset | inline |
Bitset(Bitset &&other) (defined in grape::Bitset) | grape::Bitset | inline |
cardinality() const (defined in grape::Bitset) | grape::Bitset | inline |
clear() (defined in grape::Bitset) | grape::Bitset | inline |
copy(const Bitset &other) (defined in grape::Bitset) | grape::Bitset | inline |
count() const (defined in grape::Bitset) | grape::Bitset | inline |
data_ (defined in grape::Bitset) | grape::Bitset | private |
deallocate(pointer __p, size_type) (defined in grape::DefaultAllocator< _Tp >) | grape::DefaultAllocator< _Tp > | inline |
DefaultAllocator() noexcept (defined in grape::DefaultAllocator< _Tp >) | grape::DefaultAllocator< _Tp > | inline |
DefaultAllocator(const DefaultAllocator &) noexcept (defined in grape::DefaultAllocator< _Tp >) | grape::DefaultAllocator< _Tp > | inline |
DefaultAllocator(DefaultAllocator &&) noexcept (defined in grape::DefaultAllocator< _Tp >) | grape::DefaultAllocator< _Tp > | inline |
empty() const (defined in grape::Bitset) | grape::Bitset | inline |
get_bit(size_t i) const (defined in grape::Bitset) | grape::Bitset | inline |
get_word(size_t i) const (defined in grape::Bitset) | grape::Bitset | inline |
get_word_ptr(size_t i) const (defined in grape::Bitset) | grape::Bitset | inline |
init(size_t size) (defined in grape::Bitset) | grape::Bitset | inline |
operator=(const Bitset &other) (defined in grape::Bitset) | grape::Bitset | inline |
operator=(Bitset &&other) (defined in grape::Bitset) | grape::Bitset | inline |
operator=(const DefaultAllocator &) noexcept (defined in grape::DefaultAllocator< _Tp >) | grape::DefaultAllocator< _Tp > | inline |
operator=(DefaultAllocator &&) noexcept (defined in grape::DefaultAllocator< _Tp >) | grape::DefaultAllocator< _Tp > | inline |
parallel_clear(ThreadPool &thread_pool) (defined in grape::Bitset) | grape::Bitset | inline |
parallel_count(ThreadPool &thread_pool) const (defined in grape::Bitset) | grape::Bitset | inline |
parallel_partial_count(ThreadPool &thread_pool, size_t begin, size_t end) const (defined in grape::Bitset) | grape::Bitset | inline |
partial_count(size_t begin, size_t end) const (defined in grape::Bitset) | grape::Bitset | inline |
partial_empty(size_t begin, size_t end) const (defined in grape::Bitset) | grape::Bitset | inline |
pointer typedef (defined in grape::DefaultAllocator< _Tp >) | grape::DefaultAllocator< _Tp > | |
reset_bit(size_t i) (defined in grape::Bitset) | grape::Bitset | inline |
reset_bit_with_ret(size_t i) (defined in grape::Bitset) | grape::Bitset | inline |
resize(size_t size) (defined in grape::Bitset) | grape::Bitset | inline |
set_bit(size_t i) (defined in grape::Bitset) | grape::Bitset | inline |
set_bit_with_ret(size_t i) (defined in grape::Bitset) | grape::Bitset | inline |
size_ (defined in grape::Bitset) | grape::Bitset | private |
size_in_words_ (defined in grape::Bitset) | grape::Bitset | private |
size_type typedef (defined in grape::DefaultAllocator< _Tp >) | grape::DefaultAllocator< _Tp > | |
swap(Bitset &other) (defined in grape::Bitset) | grape::Bitset | inline |
value_type typedef (defined in grape::DefaultAllocator< _Tp >) | grape::DefaultAllocator< _Tp > | |
~Bitset() (defined in grape::Bitset) | grape::Bitset | inline |
~DefaultAllocator() noexcept (defined in grape::DefaultAllocator< _Tp >) | grape::DefaultAllocator< _Tp > | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
Bitset is a highly-optimized bitset implementation. + More...
+ +#include <bitset.h>
+Public Member Functions | |
+ | Bitset (size_t size) |
+ | Bitset (const Bitset &other) |
+ | Bitset (Bitset &&other) |
+Bitset & | operator= (const Bitset &other) |
+Bitset & | operator= (Bitset &&other) |
+void | init (size_t size) |
+void | clear () |
+void | resize (size_t size) |
+void | copy (const Bitset &other) |
+void | parallel_clear (ThreadPool &thread_pool) |
+bool | empty () const |
+bool | partial_empty (size_t begin, size_t end) const |
+bool | get_bit (size_t i) const |
+void | set_bit (size_t i) |
+bool | set_bit_with_ret (size_t i) |
+void | reset_bit (size_t i) |
+bool | reset_bit_with_ret (size_t i) |
+void | swap (Bitset &other) |
+size_t | count () const |
+size_t | parallel_count (ThreadPool &thread_pool) const |
+size_t | partial_count (size_t begin, size_t end) const |
+size_t | parallel_partial_count (ThreadPool &thread_pool, size_t begin, size_t end) const |
+uint64_t | get_word (size_t i) const |
+const uint64_t * | get_word_ptr (size_t i) const |
+size_t | cardinality () const |
![]() | |
+ | DefaultAllocator (const DefaultAllocator &) noexcept |
+ | DefaultAllocator (DefaultAllocator &&) noexcept |
+DefaultAllocator & | operator= (const DefaultAllocator &) noexcept |
+DefaultAllocator & | operator= (DefaultAllocator &&) noexcept |
+pointer | allocate (size_type __n) |
+void | deallocate (pointer __p, size_type) |
+Private Attributes | |
+uint64_t * | data_ |
+size_t | size_ |
+size_t | size_in_words_ |
+Additional Inherited Members | |
![]() | |
+using | pointer = _Tp * |
+using | size_type = size_t |
+using | value_type = _Tp |
Bitset is a highly-optimized bitset implementation.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::BlockingQueue< T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A concurrent queue based on condition_variables and can be accessed by multi-producers and multi-consumers simultaneously. + More...
+ +#include <concurrent_queue.h>
+Public Member Functions | |
void | SetLimit (size_t limit) |
Set queue size. When queue_.size() == size_limit_, Putting entities will be blocked. More... | |
+void | DecProducerNum () |
When a producer finished producing, it will call this function. When all producers finished producing, blocked consumer will be notified to return. | |
void | SetProducerNum (int pn) |
Set the number of producers to this queue. More... | |
void | Put (const T &item) |
Put an entity into this queue. More... | |
void | Put (T &&item) |
Put an entity into this queue. More... | |
bool | Get (T &item) |
Get an entity from this queue. More... | |
+size_t | Size () const |
A concurrent queue based on condition_variables and can be accessed by multi-producers and multi-consumers simultaneously.
+T | Type of entities in the queue. |
+
|
+ +inline | +
Get an entity from this queue.
+This function will be blocked when there are alive producers and the queue is empty, and will be waken when entities are put into the queue or all producers finished putting data.
+item | Reference of an entity to hold the got data. |
+
|
+ +inline | +
Put an entity into this queue.
+This function will be blocked when the queue is full, that is, queue_.size() == size_limit_.
+item | The entity to be put. |
+
|
+ +inline | +
Put an entity into this queue.
+This function will be blocked when the queue is full, that is, queue_.size() == size_limit_.
+item | The entity to be put. |
+
|
+ +inline | +
Set queue size. When queue_.size() == size_limit_, Putting entities will be blocked.
+limit | Size limit of the queue. |
+
|
+ +inline | +
Set the number of producers to this queue.
+This function is supposed to be called before producers start to put entities into this queue.
+pn | Number of producers to this queue. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | nbr_t = Nbr< VID_T, EDATA_T > |
+using | vertex_t = Vertex< VID_T > |
+using | const_adj_list_t = ConstAdjList< VID_T, EDATA_T > |
+using | adj_list_t = AdjList< VID_T, EDATA_T > |
+using | base_t = EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T > |
![]() | |
+using | base_t = FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T > |
+using | vid_t = VID_T |
+using | vertex_t = Vertex< VID_T > |
+using | inner_vertices_t = typename TRAITS_T::inner_vertices_t |
+using | outer_vertices_t = typename TRAITS_T::outer_vertices_t |
+using | sub_vertices_t = typename TRAITS_T::sub_vertices_t |
+using | mirror_vertices_t = typename TRAITS_T::mirror_vertices_t |
![]() | |
+using | vertex_map_t = typename TRAITS_T::vertex_map_t |
+using | fragment_adj_list_t = typename TRAITS_T::fragment_adj_list_t |
+using | fragment_const_adj_list_t = typename TRAITS_T::fragment_const_adj_list_t |
+using | vertices_t = typename TRAITS_T::vertices_t |
+Public Member Functions | |
size_t | GetEdgeNum () const override |
Returns the number of edges in this fragment. More... | |
+size_t | GetOutgoingEdgeNum () const |
+size_t | GetIncomingEdgeNum () const |
bool | HasChild (const vertex_t &v) const override |
Check if vertex v has a child, that is, existing an edge v->u. More... | |
bool | HasParent (const vertex_t &v) const override |
Check if vertex v has a parent, that is, existing an edge u->v. More... | |
int | GetLocalOutDegree (const vertex_t &v) const override |
Returns the out-degree of vertex v in this fragment.<Paste> More... | |
int | GetLocalInDegree (const vertex_t &v) const override |
Returns the in-degree of vertex v in this fragment. More... | |
adj_list_t | GetIncomingAdjList (const vertex_t &v) override |
Returns the incoming adjacent vertices of v. More... | |
const_adj_list_t | GetIncomingAdjList (const vertex_t &v) const override |
Returns the incoming adjacent vertices of v. More... | |
adj_list_t | GetOutgoingAdjList (const vertex_t &v) override |
Returns the outgoing adjacent vertices of v. More... | |
const_adj_list_t | GetOutgoingAdjList (const vertex_t &v) const override |
Returns the outgoing adjacent vertices of v. More... | |
bool | IsIncomingBorderVertex (const vertex_t &v) const |
Check if inner vertex v is an incoming border vertex, that is, existing edge u->v, u is an outer vertex. More... | |
bool | IsOutgoingBorderVertex (const vertex_t &v) const |
Check if inner vertex v is an outgoing border vertex, that is, existing edge v->u, u is an outer vertex. More... | |
bool | IsBorderVertex (const vertex_t &v) const |
Check if inner vertex v is an border vertex, that is, existing edge v->u or u->v, u is an outer vertex. More... | |
DestList | IEDests (const vertex_t &v) const override |
Return the incoming edge destination fragment ID list of a inner vertex. More... | |
+size_t | IEDestsSize () const override |
DestList | OEDests (const vertex_t &v) const override |
Return the outgoing edge destination fragment ID list of a Vertex. More... | |
+size_t | OEDestsSize () const override |
DestList | IOEDests (const vertex_t &v) const override |
Return the edge destination fragment ID list of a inner vertex. More... | |
+size_t | IOEDestsSize () const override |
void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf) override |
For some kind of applications, specific data structures will be generated. More... | |
bool | IsInnerVertex (const Vertex< VID_T > &v) const |
Check if vertex v is inner vertex of this fragment. More... | |
bool | IsOuterVertex (const Vertex< VID_T > &v) const |
Check if vertex v is outer vertex of this fragment. More... | |
VID_T | GetInnerVerticesNum () const |
Returns the number of inner vertices in this fragment. More... | |
+void | initMirrorInfo (const CommSpec &comm_spec) |
![]() | |
VID_T | GetInnerVerticesNum () const |
Returns the number of inner vertices in this fragment. More... | |
VID_T | GetOuterVerticesNum () const |
Returns the number of outer vertices in this fragment. More... | |
const inner_vertices_t & | InnerVertices () const |
Returns the vertex range of inner vertices in this fragment. More... | |
const outer_vertices_t & | OuterVertices () const |
Returns the vertex range of outer vertices in this fragment. More... | |
+const sub_vertices_t & | OuterVertices (fid_t fid) const |
+const mirror_vertices_t & | MirrorVertices (fid_t fid) const |
bool | IsInnerVertex (const Vertex< VID_T > &v) const |
Check if vertex v is inner vertex of this fragment. More... | |
bool | IsOuterVertex (const Vertex< VID_T > &v) const |
Check if vertex v is outer vertex of this fragment. More... | |
bool | GetInnerVertex (const OID_T &oid, Vertex< VID_T > &v) const |
Get a inner vertex with original ID vid. More... | |
OID_T | GetInnerVertexId (vertex_t v) const |
Get the original ID of an inner vertex. More... | |
OID_T | GetOuterVertexId (vertex_t v) const |
Get the original ID of an outer vertex. More... | |
bool | InnerVertexGid2Vertex (VID_T gid, Vertex< VID_T > &v) const |
Convert from global id to an inner vertex handle. More... | |
bool | OuterVertexGid2Vertex (VID_T gid, Vertex< VID_T > &v) const |
Convert from global id to an outer vertex handle. More... | |
virtual VID_T | GetOuterVertexGid (vertex_t v) const =0 |
Convert from inner vertex handle to its global id. More... | |
VID_T | GetInnerVertexGid (vertex_t v) const |
Convert from outer vertex handle to its global id. More... | |
virtual AdjList< VID_T, EDATA_T > | GetIncomingInnerVertexAdjList (const Vertex< VID_T > &v)=0 |
Returns the incoming adjacent inner vertices of v. More... | |
virtual ConstAdjList< VID_T, EDATA_T > | GetIncomingInnerVertexAdjList (const Vertex< VID_T > &v) const =0 |
Returns the incoming adjacent inner vertices of v. More... | |
virtual AdjList< VID_T, EDATA_T > | GetIncomingOuterVertexAdjList (const Vertex< VID_T > &v)=0 |
Returns the incoming adjacent outer vertices of v. More... | |
virtual ConstAdjList< VID_T, EDATA_T > | GetIncomingOuterVertexAdjList (const Vertex< VID_T > &v) const =0 |
Returns the incoming adjacent outer vertices of v. More... | |
virtual AdjList< VID_T, EDATA_T > | GetOutgoingInnerVertexAdjList (const Vertex< VID_T > &v)=0 |
Returns the outgoing adjacent inner vertices of v. More... | |
virtual ConstAdjList< VID_T, EDATA_T > | GetOutgoingInnerVertexAdjList (const Vertex< VID_T > &v) const =0 |
Returns the outgoing adjacent inner vertices of v. More... | |
virtual AdjList< VID_T, EDATA_T > | GetOutgoingOuterVertexAdjList (const Vertex< VID_T > &v)=0 |
Returns the outgoing adjacent outer vertices of v. More... | |
virtual ConstAdjList< VID_T, EDATA_T > | GetOutgoingOuterVertexAdjList (const Vertex< VID_T > &v) const =0 |
Returns the outgoing adjacent outer vertices of v. More... | |
bool | Gid2Vertex (const vid_t &gid, vertex_t &v) const override |
Convert from global id to a vertex handle. More... | |
vid_t | Vertex2Gid (const vertex_t &v) const override |
Convert from vertex handle to its global id. More... | |
fid_t | fid () const |
Returns the ID of this fragment. More... | |
fid_t | fnum () const |
Returns the number of fragments. More... | |
![]() | |
+ | FragmentBase (std::shared_ptr< vertex_map_t > vm_ptr) |
+std::shared_ptr< vertex_map_t > | GetVertexMap () |
+const std::shared_ptr< vertex_map_t > | GetVertexMap () const |
virtual void | Init (fid_t fid, bool directed, std::vector< internal::Vertex< VID_T, VDATA_T >> &vertices, std::vector< Edge< VID_T, EDATA_T >> &edges)=0 |
Construct a fragment with a set of vertices and edges. More... | |
bool | directed () const |
Returns true if the fragment is directed, false otherwise. More... | |
fid_t | fid () const |
Returns the ID of this fragment. More... | |
fid_t | fnum () const |
Returns the number of fragments. More... | |
VID_T | GetVerticesNum () const |
Returns the number of vertices in this fragment. More... | |
size_t | GetTotalVerticesNum () const |
Returns the number of vertices in the entire graph. More... | |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
bool | GetVertex (const OID_T &oid, Vertex< VID_T > &v) const |
Get a vertex with original ID vid. More... | |
OID_T | GetId (const Vertex< VID_T > &v) const |
Get the original ID of a vertex. More... | |
+OID_T | Gid2Oid (VID_T gid) const |
fid_t | GetFragId (const Vertex< VID_T > &u) const |
Get the ID of fragment the input vertex belongs to. More... | |
virtual const VDATA_T & | GetData (const Vertex< VID_T > &v) const =0 |
Get the data of a vertex. More... | |
virtual void | SetData (const Vertex< VID_T > &v, const VDATA_T &val)=0 |
Set the data of a vertex. More... | |
+virtual fragment_adj_list_t | GetIncomingAdjList (const Vertex< VID_T > &v, fid_t fid)=0 |
+virtual fragment_const_adj_list_t | GetIncomingAdjList (const Vertex< VID_T > &v, fid_t fid) const =0 |
+virtual fragment_adj_list_t | GetOutgoingAdjList (const Vertex< VID_T > &v, fid_t fid)=0 |
+virtual fragment_const_adj_list_t | GetOutgoingAdjList (const Vertex< VID_T > &v, fid_t fid) const =0 |
+Protected Member Functions | |
+void | buildCSR (const typename csr_builder_t::vertex_range_t &vertex_range, std::vector< Edge< VID_T, EDATA_T >> &edges, LoadStrategy load_strategy) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+nbr_t * | get_ie_begin (const vertex_t &v) |
+nbr_t * | get_ie_end (const vertex_t &v) |
+const nbr_t * | get_ie_begin (const vertex_t &v) const |
+const nbr_t * | get_ie_end (const vertex_t &v) const |
+nbr_t * | get_oe_begin (const vertex_t &v) |
+nbr_t * | get_oe_end (const vertex_t &v) |
+const nbr_t * | get_oe_begin (const vertex_t &v) const |
+const nbr_t * | get_oe_end (const vertex_t &v) const |
+bool | Gid2Lid (VID_T gid, VID_T &lid) const |
+bool | InnerVertexGid2Lid (VID_T gid, VID_T &lid) const |
+bool | IsInnerVertexGid (VID_T gid) const |
+bool | IsInnerVertexLid (VID_T lid) const |
+virtual bool | OuterVertexGid2Lid (VID_T gid, VID_T &lid) const=0 |
![]() | |
+bool | IsInnerVertexGid (VID_T gid) const |
+bool | IsInnerVertexLid (VID_T lid) const |
+bool | Gid2Lid (VID_T gid, VID_T &lid) const |
+bool | InnerVertexGid2Lid (VID_T gid, VID_T &lid) const |
+virtual bool | OuterVertexGid2Lid (VID_T gid, VID_T &lid) const =0 |
+void | initMirrorInfo (const CommSpec &comm_spec) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
![]() | |
+void | init (fid_t fid, bool directed) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Protected Attributes | |
+csr_t | ie_ |
+csr_t | oe_ |
+ImmutableCSR< VID_T, fid_t > | idst_ |
+ImmutableCSR< VID_T, fid_t > | odst_ |
+ImmutableCSR< VID_T, fid_t > | iodst_ |
+bool | idst_built_ = false |
+bool | odst_built_ = false |
+bool | iodst_built_ = false |
+bool | mirror_info_initialized_ = false |
![]() | |
+inner_vertices_t | inner_vertices_ |
+outer_vertices_t | outer_vertices_ |
+std::vector< sub_vertices_t > | outer_vertices_of_frag_ |
+std::vector< mirror_vertices_t > | mirrors_of_frag_ |
+IdParser< VID_T > | id_parser_ |
+std::shared_ptr< vertex_map_t > | vm_ptr_ |
![]() | |
+fid_t | fid_ |
+fid_t | fnum_ |
+bool | directed_ |
+VID_T | ivnum_ |
+vertices_t | vertices_ |
+std::shared_ptr< vertex_map_t > | vm_ptr_ |
+IdParser< VID_T > | id_parser_ |
+Private Types | |
+using | csr_t = typename TRAITS_T::csr_t |
+using | csr_builder_t = typename TRAITS_T::csr_builder_t |
+Private Member Functions | |
+void | initDestFidList (bool in_edge, bool out_edge, ImmutableCSR< VID_T, fid_t > &csr) |
+void | buildMessageDestination (const MessageStrategy &msg_strategy) |
+
|
+ +inlineoverridevirtual | +
Returns the number of edges in this fragment.
+Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the incoming adjacent vertices of v.
+v | Input vertex. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the incoming adjacent vertices of v.
+v | Input vertex. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inline | +
Returns the number of inner vertices in this fragment.
+
+
|
+ +inlineoverridevirtual | +
Returns the in-degree of vertex v in this fragment.
+v | Input vertex. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the out-degree of vertex v in this fragment.<Paste>
+v | Input vertex. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the outgoing adjacent vertices of v.
+v | Input vertex. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the outgoing adjacent vertices of v.
+v | Input vertex. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Check if vertex v has a child, that is, existing an edge v->u.
+v | Input vertex. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Check if vertex v has a parent, that is, existing an edge u->v.
+v | Input vertex. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Return the incoming edge destination fragment ID list of a inner vertex.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Return the edge destination fragment ID list of a inner vertex.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inline | +
Check if inner vertex v is an border vertex, that is, existing edge v->u or u->v, u is an outer vertex.
+v | Input vertex. |
+
|
+ +inline | +
Check if inner vertex v is an incoming border vertex, that is, existing edge u->v, u is an outer vertex.
+v | Input vertex. |
+
|
+ +inline | +
Check if vertex v is inner vertex of this fragment.
+v | Input vertex. |
+
|
+ +inline | +
Check if vertex v is outer vertex of this fragment.
+v | Input vertex. |
+
|
+ +inline | +
Check if inner vertex v is an outgoing border vertex, that is, existing edge v->u, u is an outer vertex.
+v | Input vertex. |
+
|
+ +inlineoverridevirtual | +
Return the outgoing edge destination fragment ID list of a Vertex.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
For some kind of applications, specific data structures will be generated.
+strategy | |
need_split_edge |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +Reimplemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::CommSpec, including all inherited members.
+__attribute__((no_sanitize_address)) CommSpec() (defined in grape::CommSpec) | grape::CommSpec | inline |
__attribute__((no_sanitize_address)) CommSpec(const CommSpec &comm_spec) (defined in grape::CommSpec) | grape::CommSpec | inline |
__attribute__((no_sanitize_address)) ~CommSpec() (defined in grape::CommSpec) | grape::CommSpec | inline |
__attribute__((no_sanitize_address)) CommSpec &operator (defined in grape::CommSpec) | grape::CommSpec | |
comm_ (defined in grape::CommSpec) | grape::CommSpec | |
fid_ (defined in grape::CommSpec) | grape::CommSpec | |
fnum_ (defined in grape::CommSpec) | grape::CommSpec | |
host_worker_list_ (defined in grape::CommSpec) | grape::CommSpec | |
local_comm_ (defined in grape::CommSpec) | grape::CommSpec | |
local_id_ (defined in grape::CommSpec) | grape::CommSpec | |
local_num_ (defined in grape::CommSpec) | grape::CommSpec | |
local_owner_ (defined in grape::CommSpec) | grape::CommSpec | |
owner_ (defined in grape::CommSpec) | grape::CommSpec | |
worker_host_id_ (defined in grape::CommSpec) | grape::CommSpec | |
worker_id_ (defined in grape::CommSpec) | grape::CommSpec |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
CommSpec records the mappings of fragments, workers, and the threads(tasks) in each worker. + More...
+ +#include <comm_spec.h>
+Public Member Functions | |
+ | __attribute__ ((no_sanitize_address)) CommSpec() |
+ | __attribute__ ((no_sanitize_address)) CommSpec(const CommSpec &comm_spec) |
+ | __attribute__ ((no_sanitize_address)) ~CommSpec() |
+ | __attribute__ ((no_sanitize_address)) CommSpec &operator |
CommSpec records the mappings of fragments, workers, and the threads(tasks) in each worker.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::Communicator, including all inherited members.
+AllGather(const T &msg_in, std::vector< T > &msg_out) (defined in grape::Communicator) | grape::Communicator | inline |
AllGather(T &&msg_in, std::vector< T > &msg_out) (defined in grape::Communicator) | grape::Communicator | inline |
AllReduce(const T &msg_in, T &msg_out, const FUNC_T &func) (defined in grape::Communicator) | grape::Communicator | inline |
comm_ (defined in grape::Communicator) | grape::Communicator | private |
Communicator() (defined in grape::Communicator) | grape::Communicator | inline |
InitCommunicator(MPI_Comm comm) (defined in grape::Communicator) | grape::Communicator | inline |
Max(const T &msg_in, T &msg_out) (defined in grape::Communicator) | grape::Communicator | inline |
Min(const T &msg_in, T &msg_out) (defined in grape::Communicator) | grape::Communicator | inline |
RecvFrom(fid_t fid, T &msg) (defined in grape::Communicator) | grape::Communicator | inline |
SendTo(fid_t fid, const T &msg) (defined in grape::Communicator) | grape::Communicator | inline |
Sum(const T &msg_in, T &msg_out) (defined in grape::Communicator) | grape::Communicator | inline |
~Communicator() (defined in grape::Communicator) | grape::Communicator | inlinevirtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
Communicator provides methods to implement distributed aggregation, such as Min/Max/Sum. + More...
+ +#include <communicator.h>
+Private Attributes | |
+MPI_Comm | comm_ |
Communicator provides methods to implement distributed aggregation, such as Min/Max/Sum.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ConstAdjList< VID_T, EDATA_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A immutable iteratable adjencent list of a vertex. The list contains all neighbors in format of Nbr, which contains the other Node and the data on the Edge. + More...
+ +#include <adj_list.h>
+Classes | |
class | const_iterator |
+Public Member Functions | |
+DEV_HOST | ConstAdjList (const NbrT *b, const NbrT *e) |
+DEV_HOST_INLINE bool | Empty () const |
+DEV_HOST_INLINE bool | NotEmpty () const |
+DEV_HOST_INLINE size_t | Size () const |
+DEV_HOST const_iterator | begin () const |
+DEV_HOST const_iterator | end () const |
+DEV_HOST const NbrT * | begin_pointer () const |
+DEV_HOST const NbrT * | end_pointer () const |
+DEV_HOST bool | empty () const |
+Private Types | |
+using | NbrT = Nbr< VID_T, EDATA_T > |
+Private Attributes | |
+const NbrT * | begin_ |
+const NbrT * | end_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ConstAdjList< VID_T, EDATA_T >::const_iterator, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+DEV_HOST | const_iterator (const pointer_type &c) noexcept |
+DEV_HOST reference_type | operator* () const noexcept |
+DEV_HOST pointer_type | operator-> () const noexcept |
+DEV_HOST const_iterator & | operator++ () noexcept |
+DEV_HOST const_iterator | operator++ (int) noexcept |
+DEV_HOST const_iterator & | operator-- () noexcept |
+DEV_HOST const_iterator | operator-- (int) noexcept |
+DEV_HOST const_iterator | operator+ (size_t offset) noexcept |
+DEV_HOST bool | operator== (const const_iterator &rhs) noexcept |
+DEV_HOST bool | operator!= (const const_iterator &rhs) noexcept |
+Private Types | |
+using | pointer_type = const NbrT * |
+using | reference_type = const NbrT & |
+Private Attributes | |
+const NbrT * | current_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ContextBase, including all inherited members.
+ContextBase()=default (defined in grape::ContextBase) | grape::ContextBase | |
Output(std::ostream &os) | grape::ContextBase | inlinevirtual |
~ContextBase()=default (defined in grape::ContextBase) | grape::ContextBase | virtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
ContextBase is the base class for all user-defined contexts. A context manages data through the whole computation. The data won't be cleared during supersteps. + More...
+ +#include <context_base.h>
+Public Member Functions | |
virtual void | Output (std::ostream &os) |
Output function to implement for result output. More... | |
ContextBase is the base class for all user-defined contexts. A context manages data through the whole computation. The data won't be cleared during supersteps.
+
+
|
+ +inlinevirtual | +
Output function to implement for result output.
+frag | |
os |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::DeMutableCSRBuilder< VID_T, Nbr< VID_T, EDATA_T > >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | vertex_range_t = DualVertexRange< VID_T > |
+Public Member Functions | |
+void | init (VID_T min_id, VID_T max_head, VID_T min_tail, VID_T max_id, bool dedup=false) |
+void | init (const vertex_range_t &range, bool dedup=false) |
+void | inc_degree (VID_T i) |
+void | build_offsets () |
+void | add_edge (VID_T src, const Nbr< VID_T, EDATA_T > &nbr) |
+void | finish (DeMutableCSR< VID_T, Nbr< VID_T, EDATA_T >> &ret) |
+Private Types | |
+using | vid_t = VID_T |
+Private Member Functions | |
+bool | in_head (vid_t i) const |
+vid_t | head_index (vid_t i) const |
+vid_t | tail_index (vid_t i) const |
+Private Attributes | |
+VID_T | min_id_ |
+VID_T | max_id_ |
+VID_T | max_head_id_ |
+VID_T | min_tail_id_ |
+bool | dedup_ |
+MutableCSRBuilder< VID_T, Nbr< VID_T, EDATA_T > > | head_builder_ |
+MutableCSRBuilder< VID_T, Nbr< VID_T, EDATA_T > > | tail_builder_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::DeMutableCSR< VID_T, Nbr< VID_T, EDATA_T > >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | vid_t = VID_T |
+using | nbr_t = Nbr< vid_t, EDATA_T > |
+using | edge_t = Edge< vid_t, EDATA_T > |
+using | adj_list_t = AdjList< vid_t, EDATA_T > |
+Public Member Functions | |
+ | DeMutableCSR (vid_t from, vid_t to, bool dedup=false) |
+VID_T | vertex_num () const |
+bool | empty () const |
+size_t | edge_num () const |
+size_t | head_edge_num () const |
+size_t | tail_edge_num () const |
+int | degree (VID_T i) const |
+void | remove_vertex (VID_T i) |
+bool | is_empty (VID_T i) const |
+bool | in_head (vid_t i) const |
+vid_t | head_index (vid_t i) const |
+vid_t | tail_index (vid_t i) const |
+vid_t | get_index (vid_t i) const |
+nbr_t * | get_begin (vid_t i) |
+const nbr_t * | get_begin (vid_t i) const |
+nbr_t * | get_end (vid_t i) |
+const nbr_t * | get_end (vid_t i) const |
+nbr_t * | find (VID_T i, VID_T nbr) |
+const nbr_t * | find (VID_T i, VID_T nbr) const |
+nbr_t * | binary_find (VID_T i, VID_T nbr) |
+const nbr_t * | binary_find (VID_T i, VID_T nbr) const |
+void | add_vertices (vid_t to_head, vid_t to_tail) |
+void | add_edges (const std::vector< edge_t > &edges) |
+void | add_forward_edges (const std::vector< edge_t > &edges) |
+void | add_reversed_edges (const std::vector< edge_t > &edges) |
+void | init_head_and_tail (vid_t min, vid_t max, bool dedup=false) |
+void | reserve_edges_dense (const std::vector< int > &head_degree_to_add, const std::vector< int > &tail_degree_to_add) |
+void | reserve_edges_sparse (const std::map< vid_t, int > °ree_to_add) |
+nbr_t * | put_edge (vid_t src, const nbr_t &value) |
+nbr_t * | put_edge (vid_t src, nbr_t &&value) |
+void | sort_neighbors_dense (const std::vector< int > &head_degree_to_add, const std::vector< int > &tail_degree_to_add) |
+void | sort_neighbors_sparse (const std::map< vid_t, int > °ree_to_add) |
+void | remove_edges (const std::vector< edge_t > &edges) |
+void | remove_edges (const std::vector< std::pair< vid_t, vid_t >> &edges) |
+void | remove_reversed_edges (const std::vector< std::pair< vid_t, vid_t >> &edges) |
+template<typename FUNC_T > | |
void | remove_if (const FUNC_T &func) |
+void | update_edges (const std::vector< edge_t > &edges) |
+void | update_reversed_edges (const std::vector< edge_t > &edges) |
+void | clear_edges () |
+template<typename IOADAPTOR_T > | |
void | Serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Static Public Attributes | |
+static constexpr double | dense_threshold = 0.003 |
+Private Member Functions | |
+void | add_reversed_edges_dense (const std::vector< edge_t > &edges) |
+void | add_forward_edges_dense (const std::vector< edge_t > &edges) |
+void | add_edges_dense (const std::vector< edge_t > &edges) |
+void | add_edges_sparse (const std::vector< edge_t > &edges) |
+void | add_forward_edges_sparse (const std::vector< edge_t > &edges) |
+void | add_reversed_edges_sparse (const std::vector< edge_t > &edges) |
+Private Attributes | |
+vid_t | min_id_ |
+vid_t | max_id_ |
+vid_t | max_head_id_ |
+vid_t | min_tail_id_ |
+bool | dedup_ |
+MutableCSR< VID_T, Nbr< VID_T, EDATA_T > > | head_ |
+MutableCSR< VID_T, Nbr< VID_T, EDATA_T > > | tail_ |
+Friends | |
+template<typename _VID_T , typename _NBR_T > | |
class | DeMutableCSRBuilder |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::DefaultAllocator< _Tp >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
Allocator used for grape containers, i.e., <Array>. + More...
+ +#include <default_allocator.h>
+Public Types | |
+using | pointer = _Tp * |
+using | size_type = size_t |
+using | value_type = _Tp |
+Public Member Functions | |
+ | DefaultAllocator (const DefaultAllocator &) noexcept |
+ | DefaultAllocator (DefaultAllocator &&) noexcept |
+DefaultAllocator & | operator= (const DefaultAllocator &) noexcept |
+DefaultAllocator & | operator= (DefaultAllocator &&) noexcept |
+pointer | allocate (size_type __n) |
+void | deallocate (pointer __p, size_type) |
Allocator used for grape containers, i.e., <Array>.
+_Tp |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::DefaultMessageManager, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
Default message manager. + More...
+ +#include <default_message_manager.h>
+Public Member Functions | |
+void | Init (MPI_Comm comm) override |
Inherit. | |
+void | Start () override |
Inherit. | |
+void | StartARound () override |
Inherit. | |
+void | FinishARound () override |
Inherit. | |
+bool | ToTerminate () override |
Inherit. | |
+void | Finalize () override |
Inherit. | |
+size_t | GetMsgSize () const override |
Inherit. | |
+void | ForceContinue () override |
Inherit. | |
+void | ForceTerminate (const std::string &terminate_info) override |
Inherit. | |
+const TerminateInfo & | GetTerminateInfo () const override |
Inherit. | |
template<typename MESSAGE_T > | |
void | SendToFragment (fid_t dst_fid, const MESSAGE_T &msg) |
Send message to a fragment. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication by synchronizing the status on outer vertices, for edge-cut fragments. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughIEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via a crossing edge a<-c. It sends message from a to c. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughOEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via a crossing edge a->b. It sends message from a to b. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via crossing edges a->b and a<-c. It sends message from a to b and c. More... | |
template<typename MESSAGE_T > | |
bool | GetMessage (MESSAGE_T &msg) |
Get a message from message buffer. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
bool | GetMessage (const GRAPH_T &frag, typename GRAPH_T::vertex_t &v, MESSAGE_T &msg) |
Get a message and its target vertex from message buffer. More... | |
+Protected Member Functions | |
+fid_t | fid () const |
+fid_t | fnum () const |
+Protected Attributes | |
+std::vector< InArchive > | to_send_ |
+Private Member Functions | |
+bool | syncLengths () |
+Private Attributes | |
+std::vector< OutArchive > | to_recv_ |
+fid_t | cur_ |
+std::vector< size_t > | lengths_out_ |
+std::vector< size_t > | lengths_in_ |
+std::vector< MPI_Request > | reqs_ |
+MPI_Comm | comm_ |
+fid_t | fid_ |
+fid_t | fnum_ |
+CommSpec | comm_spec_ |
+size_t | sent_size_ |
+bool | to_terminate_ |
+bool | force_continue_ |
+bool | force_terminate_ |
+TerminateInfo | terminate_info_ |
Default message manager.
+The send and recv methods are not thread-safe.
+
+
|
+ +inline | +
Get a message and its target vertex from message buffer.
+GRAPH_T | |
MESSAGE_T |
frag | |
v | |
msg |
+
|
+ +inline | +
Get a message from message buffer.
+MESSAGE_T |
msg |
+
|
+ +inline | +
Communication via crossing edges a->b and a<-c. It sends message from a to b and c.
+GRAPH_T | |
MESSAGE_T |
frag | |
v | a |
msg |
+
|
+ +inline | +
Communication via a crossing edge a<-c. It sends message from a to c.
+GRAPH_T | |
MESSAGE_T |
frag | |
v | a |
msg |
+
|
+ +inline | +
Communication via a crossing edge a->b. It sends message from a to b.
+GRAPH_T | |
MESSAGE_T |
frag | |
v | a |
msg |
+
|
+ +inline | +
Send message to a fragment.
+MESSAGE_T | Message type. |
dst_fid | Destination fragment id. |
msg |
+
|
+ +inline | +
Communication by synchronizing the status on outer vertices, for edge-cut fragments.
+Assume a fragment F_1, a crossing edge a->b' in F_1 and a is an inner vertex in F_1. This function invoked on F_1 send status on b' to b on F_2, where b is an inner vertex.
+GRAPH_T | |
MESSAGE_T |
frag | |
v | a |
msg |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::DeltaVarintDecoder< T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | DeltaVarintDecoder (const char *p, size_t size) |
+void | reset (const char *p, size_t size) |
+bool | pop (T &v) |
+size_t | size () const |
+VarintDecoder & | decoder () |
+void | reset_last () |
+Private Attributes | |
+VarintDecoder | decoder_ |
+T | last_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::DeltaVarintEncoder< T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | push_back (T v) |
+void | reserve (size_t size) |
+bool | empty () const |
+void | clear () |
+size_t | size () const |
+const char * | data () const |
+const VarintEncoder & | encoder () const |
+Private Attributes | |
+VarintEncoder | encoder_ |
+T | last_ = 0 |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A vertex set with dense vertices. + More...
+ +#include <vertex_set.h>
A vertex set with dense vertices.
+VERTEX_SET_T | Vertex set type. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::DenseVertexSet< DualVertexRange< VID_T > >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | DenseVertexSet (const DualVertexRange< VID_T > &range) |
+void | Init (const VertexRange< VID_T > &range, ThreadPool &thread_pool) |
+void | Init (const VertexVector< VID_T > &vertices, ThreadPool &thread_pool) |
+void | Init (const DualVertexRange< VID_T > &range) |
+void | Init (const VertexVector< VID_T > &vertices) |
+void | Insert (Vertex< VID_T > u) |
+bool | InsertWithRet (Vertex< VID_T > u) |
+void | Erase (Vertex< VID_T > u) |
+bool | EraseWithRet (Vertex< VID_T > u) |
+bool | Exist (Vertex< VID_T > u) const |
+DualVertexRange< VID_T > | Range () const |
+size_t | Count () const |
+size_t | ParallelCount (ThreadPool &thread_pool) const |
+size_t | PartialCount (VID_T beg, VID_T end) const |
+size_t | ParallelPartialCount (ThreadPool &thread_pool, VID_T beg, VID_T end) const |
+void | Clear () |
+void | ParallelClear (ThreadPool &thread_pool) |
+void | Swap (DenseVertexSet &rhs) |
+Bitset & | GetHeadBitset () |
+const Bitset & | GetHeadBitset () const |
+Bitset & | GetTailBitset () |
+const Bitset & | GetTailBitset () const |
+bool | Empty () const |
+bool | PartialEmpty (VID_T beg, VID_T end) const |
+Private Attributes | |
+VID_T | head_beg_ |
+VID_T | head_end_ |
+VID_T | tail_beg_ |
+VID_T | tail_end_ |
+Bitset | head_bs_ |
+Bitset | tail_bs_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::DenseVertexSet< VertexRange< VID_T > >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | DenseVertexSet (const VertexRange< VID_T > &range) |
+void | Init (const VertexRange< VID_T > &range, ThreadPool &thread_pool) |
+void | Init (const VertexVector< VID_T > &vertices, ThreadPool &thread_pool) |
+void | Init (const VertexRange< VID_T > &range) |
+void | Init (const VertexVector< VID_T > &vertices) |
+void | Insert (Vertex< VID_T > u) |
+bool | InsertWithRet (Vertex< VID_T > u) |
+void | Erase (Vertex< VID_T > u) |
+bool | EraseWithRet (Vertex< VID_T > u) |
+bool | Exist (Vertex< VID_T > u) const |
+VertexRange< VID_T > | Range () const |
+size_t | Count () const |
+size_t | ParallelCount (ThreadPool &thread_pool) const |
+size_t | PartialCount (VID_T beg, VID_T end) const |
+size_t | ParallelPartialCount (ThreadPool &thread_pool, VID_T beg, VID_T end) const |
+void | Clear () |
+void | ParallelClear (ThreadPool &thread_pool) |
+void | Swap (DenseVertexSet &rhs) |
+Bitset & | GetBitset () |
+const Bitset & | GetBitset () const |
+bool | Empty () const |
+bool | PartialEmpty (VID_T beg, VID_T end) const |
+Private Attributes | |
+VID_T | beg_ |
+VID_T | end_ |
+Bitset | bs_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::DenseVertexSet< VertexVector< VID_T > >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | DenseVertexSet (const VertexRange< VID_T > &range) |
+ | DenseVertexSet (const VertexVector< VID_T > &vertices) |
+void | Init (const VertexRange< VID_T > &range, ThreadPool &thread_pool) |
+void | Init (const VertexVector< VID_T > &vertices, ThreadPool &thread_pool) |
+void | Init (const VertexRange< VID_T > &range) |
+void | Init (const VertexVector< VID_T > &vertices) |
+void | Insert (Vertex< VID_T > u) |
+bool | InsertWithRet (Vertex< VID_T > u) |
+void | Erase (Vertex< VID_T > u) |
+bool | EraseWithRet (Vertex< VID_T > u) |
+bool | Exist (Vertex< VID_T > u) const |
+VertexRange< VID_T > | Range () const |
+size_t | Count () const |
+size_t | ParallelCount (ThreadPool &thread_pool) const |
+size_t | PartialCount (VID_T beg, VID_T end) const |
+size_t | ParallelPartialCount (ThreadPool &thread_pool, VID_T beg, VID_T end) const |
+void | Clear () |
+void | ParallelClear (ThreadPool &thread_pool) |
+void | Swap (DenseVertexSet &rhs) |
+Bitset & | GetBitset () |
+const Bitset & | GetBitset () const |
+bool | Empty () const |
+bool | PartialEmpty (VID_T beg, VID_T end) const |
+Private Attributes | |
+VID_T | beg_ |
+VID_T | end_ |
+Bitset | bs_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::DualVertexRange< VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Classes | |
class | iterator |
+Public Types | |
+using | vertex_t = Vertex< VID_T > |
+Public Member Functions | |
+ | DualVertexRange (const VID_T &head_begin, const VID_T &head_end, const VID_T &tail_begin, const VID_T &tail_end) |
+void | SetRange (const VID_T &head_begin, const VID_T &head_end, const VID_T &tail_begin, const VID_T &tail_end) |
+iterator | begin () const |
+iterator | end () const |
+VertexRange< VID_T > | head () const |
+VertexRange< VID_T > | tail () const |
+const VID_T | begin_value () const |
+const VID_T | end_value () const |
+bool | Contain (const Vertex< VID_T > &v) const |
+VID_T | size () const |
+Private Attributes | |
+VID_T | head_begin_ |
+VID_T | head_end_ |
+VID_T | tail_begin_ |
+VID_T | tail_end_ |
+Friends | |
+InArchive & | operator<< (InArchive &in_archive, const DualVertexRange< VID_T > &range) |
+OutArchive & | operator>> (OutArchive &out_archive, DualVertexRange< VID_T > &range) |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::DualVertexRange< VID_T >::iterator, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | iterator (const VID_T &v) noexcept |
+ | iterator (const VID_T &v, const VID_T &x, const VID_T &y) noexcept |
+reference_type | operator* () noexcept |
+iterator & | operator++ () noexcept |
+iterator | operator++ (int) noexcept |
+iterator & | operator-- () noexcept |
+iterator | operator-- (int) noexcept |
+iterator | operator+ (size_t offset) noexcept |
+bool | operator== (const iterator &rhs) noexcept |
+bool | operator!= (const iterator &rhs) noexcept |
+Private Types | |
+using | reference_type = const Vertex< VID_T > & |
+Private Attributes | |
+Vertex< VID_T > | cur_ |
+VID_T | head_end_ |
+VID_T | tail_begin_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::EVFragmentLoader< FRAG_T, IOADAPTOR_T, LINE_PARSER_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
EVFragmentLoader is a loader to load fragments from separated efile and vfile. + More...
+ +#include <ev_fragment_loader.h>
+Public Member Functions | |
+ | EVFragmentLoader (const CommSpec &comm_spec) |
+std::shared_ptr< fragment_t > | LoadFragment (const std::string &efile, const std::string &vfile, const LoadGraphSpec &spec) |
+Private Attributes | |
+CommSpec | comm_spec_ |
+BasicFragmentLoader< fragment_t, io_adaptor_t > | basic_fragment_loader_ |
+line_parser_t | line_parser_ |
+Static Private Attributes | |
+static constexpr LoadStrategy | load_strategy = fragment_t::load_strategy |
EVFragmentLoader is a loader to load fragments from separated efile and vfile.
+FRAG_T | Fragment type. |
IOADAPTOR_T | IOAdaptor type. |
LINE_PARSER_T | LineParser type. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::EVFragmentMutator< FRAG_T, IOADAPTOR_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | EVFragmentMutator (const CommSpec &comm_spec) |
+std::shared_ptr< fragment_t > | MutateFragment (const std::string &efile, const std::string &vfile, std::shared_ptr< fragment_t > frag, bool directed) |
+Private Attributes | |
+CommSpec | comm_spec_ |
+double | t0_ |
+double | t1_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::EVFragmentRebalanceLoader< FRAG_T, IOADAPTOR_T, LINE_PARSER_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
EVFragmentLoader is a loader to load fragments from separated efile and vfile. + More...
+ +#include <ev_fragment_rebalance_loader.h>
+Public Member Functions | |
+ | EVFragmentRebalanceLoader (const CommSpec &comm_spec) |
+std::shared_ptr< fragment_t > | LoadFragment (const std::string &efile, const std::string &vfile, const LoadGraphSpec &spec) |
+Private Member Functions | |
+bool | existSerializationFile (const std::string &prefix) |
+bool | deserializeFragment (std::shared_ptr< fragment_t > &fragment, const LoadGraphSpec &spec) |
+bool | serializeFragment (std::shared_ptr< fragment_t > fragment, std::shared_ptr< vertex_map_t > vm_ptr, const LoadGraphSpec &spec) |
+Private Attributes | |
+CommSpec | comm_spec_ |
+line_parser_t | line_parser_ |
+Static Private Attributes | |
+static constexpr LoadStrategy | load_strategy = fragment_t::load_strategy |
+static constexpr int | edge_tag = 6 |
EVFragmentLoader is a loader to load fragments from separated efile and vfile.
+FRAG_T | Fragment type. |
IOADAPTOR_T | IOAdaptor type. |
LINE_PARSER_T | LineParser type. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
IEdgecutFragment defines the interfaces of fragments with edgecut. To learn more about edge-cut and vertex-cut, please refers to https://spark.apache.org/docs/1.6.2/graphx-programming-guide.html#optimized-representation. + More...
+ +#include <edgecut_fragment_base.h>
+Public Types | |
+using | base_t = FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T > |
+using | vid_t = VID_T |
+using | vertex_t = Vertex< VID_T > |
+using | inner_vertices_t = typename TRAITS_T::inner_vertices_t |
+using | outer_vertices_t = typename TRAITS_T::outer_vertices_t |
+using | sub_vertices_t = typename TRAITS_T::sub_vertices_t |
+using | mirror_vertices_t = typename TRAITS_T::mirror_vertices_t |
![]() | |
+using | vertex_map_t = typename TRAITS_T::vertex_map_t |
+using | fragment_adj_list_t = typename TRAITS_T::fragment_adj_list_t |
+using | fragment_const_adj_list_t = typename TRAITS_T::fragment_const_adj_list_t |
+using | vertices_t = typename TRAITS_T::vertices_t |
+Public Member Functions | |
VID_T | GetInnerVerticesNum () const |
Returns the number of inner vertices in this fragment. More... | |
VID_T | GetOuterVerticesNum () const |
Returns the number of outer vertices in this fragment. More... | |
const inner_vertices_t & | InnerVertices () const |
Returns the vertex range of inner vertices in this fragment. More... | |
const outer_vertices_t & | OuterVertices () const |
Returns the vertex range of outer vertices in this fragment. More... | |
+const sub_vertices_t & | OuterVertices (fid_t fid) const |
+const mirror_vertices_t & | MirrorVertices (fid_t fid) const |
bool | IsInnerVertex (const Vertex< VID_T > &v) const |
Check if vertex v is inner vertex of this fragment. More... | |
bool | IsOuterVertex (const Vertex< VID_T > &v) const |
Check if vertex v is outer vertex of this fragment. More... | |
bool | GetInnerVertex (const OID_T &oid, Vertex< VID_T > &v) const |
Get a inner vertex with original ID vid. More... | |
OID_T | GetInnerVertexId (vertex_t v) const |
Get the original ID of an inner vertex. More... | |
OID_T | GetOuterVertexId (vertex_t v) const |
Get the original ID of an outer vertex. More... | |
bool | InnerVertexGid2Vertex (VID_T gid, Vertex< VID_T > &v) const |
Convert from global id to an inner vertex handle. More... | |
bool | OuterVertexGid2Vertex (VID_T gid, Vertex< VID_T > &v) const |
Convert from global id to an outer vertex handle. More... | |
virtual VID_T | GetOuterVertexGid (vertex_t v) const =0 |
Convert from inner vertex handle to its global id. More... | |
VID_T | GetInnerVertexGid (vertex_t v) const |
Convert from outer vertex handle to its global id. More... | |
virtual DestList | IEDests (const Vertex< VID_T > &v) const =0 |
Return the incoming edge destination fragment ID list of a inner vertex. More... | |
+virtual size_t | IEDestsSize () const =0 |
virtual DestList | OEDests (const Vertex< VID_T > &v) const =0 |
Return the outgoing edge destination fragment ID list of a inner vertex. More... | |
+virtual size_t | OEDestsSize () const =0 |
virtual DestList | IOEDests (const Vertex< VID_T > &v) const =0 |
Return the edge destination fragment ID list of a inner vertex. More... | |
+virtual size_t | IOEDestsSize () const =0 |
virtual AdjList< VID_T, EDATA_T > | GetIncomingInnerVertexAdjList (const Vertex< VID_T > &v)=0 |
Returns the incoming adjacent inner vertices of v. More... | |
virtual ConstAdjList< VID_T, EDATA_T > | GetIncomingInnerVertexAdjList (const Vertex< VID_T > &v) const =0 |
Returns the incoming adjacent inner vertices of v. More... | |
virtual AdjList< VID_T, EDATA_T > | GetIncomingOuterVertexAdjList (const Vertex< VID_T > &v)=0 |
Returns the incoming adjacent outer vertices of v. More... | |
virtual ConstAdjList< VID_T, EDATA_T > | GetIncomingOuterVertexAdjList (const Vertex< VID_T > &v) const =0 |
Returns the incoming adjacent outer vertices of v. More... | |
virtual AdjList< VID_T, EDATA_T > | GetOutgoingInnerVertexAdjList (const Vertex< VID_T > &v)=0 |
Returns the outgoing adjacent inner vertices of v. More... | |
virtual ConstAdjList< VID_T, EDATA_T > | GetOutgoingInnerVertexAdjList (const Vertex< VID_T > &v) const =0 |
Returns the outgoing adjacent inner vertices of v. More... | |
virtual AdjList< VID_T, EDATA_T > | GetOutgoingOuterVertexAdjList (const Vertex< VID_T > &v)=0 |
Returns the outgoing adjacent outer vertices of v. More... | |
virtual ConstAdjList< VID_T, EDATA_T > | GetOutgoingOuterVertexAdjList (const Vertex< VID_T > &v) const =0 |
Returns the outgoing adjacent outer vertices of v. More... | |
bool | Gid2Vertex (const vid_t &gid, vertex_t &v) const override |
Convert from global id to a vertex handle. More... | |
vid_t | Vertex2Gid (const vertex_t &v) const override |
Convert from vertex handle to its global id. More... | |
fid_t | fid () const |
Returns the ID of this fragment. More... | |
fid_t | fnum () const |
Returns the number of fragments. More... | |
![]() | |
+ | FragmentBase (std::shared_ptr< vertex_map_t > vm_ptr) |
+std::shared_ptr< vertex_map_t > | GetVertexMap () |
+const std::shared_ptr< vertex_map_t > | GetVertexMap () const |
virtual void | Init (fid_t fid, bool directed, std::vector< internal::Vertex< VID_T, VDATA_T >> &vertices, std::vector< Edge< VID_T, EDATA_T >> &edges)=0 |
Construct a fragment with a set of vertices and edges. More... | |
virtual void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf)=0 |
For some kind of applications, specific data structures will be generated. More... | |
bool | directed () const |
Returns true if the fragment is directed, false otherwise. More... | |
fid_t | fid () const |
Returns the ID of this fragment. More... | |
fid_t | fnum () const |
Returns the number of fragments. More... | |
virtual size_t | GetEdgeNum () const =0 |
Returns the number of edges in this fragment. More... | |
VID_T | GetVerticesNum () const |
Returns the number of vertices in this fragment. More... | |
size_t | GetTotalVerticesNum () const |
Returns the number of vertices in the entire graph. More... | |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
bool | GetVertex (const OID_T &oid, Vertex< VID_T > &v) const |
Get a vertex with original ID vid. More... | |
OID_T | GetId (const Vertex< VID_T > &v) const |
Get the original ID of a vertex. More... | |
+OID_T | Gid2Oid (VID_T gid) const |
fid_t | GetFragId (const Vertex< VID_T > &u) const |
Get the ID of fragment the input vertex belongs to. More... | |
virtual const VDATA_T & | GetData (const Vertex< VID_T > &v) const =0 |
Get the data of a vertex. More... | |
virtual void | SetData (const Vertex< VID_T > &v, const VDATA_T &val)=0 |
Set the data of a vertex. More... | |
virtual bool | HasChild (const Vertex< VID_T > &v) const =0 |
Check if vertex v has a child, that is, existing an edge v->u. More... | |
virtual bool | HasParent (const Vertex< VID_T > &v) const =0 |
Check if vertex v has a parent, that is, existing an edge u->v. More... | |
virtual int | GetLocalInDegree (const Vertex< VID_T > &v) const =0 |
Returns the in-degree of vertex v in this fragment. More... | |
virtual int | GetLocalOutDegree (const Vertex< VID_T > &v) const =0 |
Returns the out-degree of vertex v in this fragment.<Paste> More... | |
virtual AdjList< VID_T, EDATA_T > | GetIncomingAdjList (const Vertex< VID_T > &v)=0 |
Returns the incoming adjacent vertices of v. More... | |
+virtual ConstAdjList< VID_T, EDATA_T > | GetIncomingAdjList (const Vertex< VID_T > &v) const =0 |
+virtual fragment_adj_list_t | GetIncomingAdjList (const Vertex< VID_T > &v, fid_t fid)=0 |
+virtual fragment_const_adj_list_t | GetIncomingAdjList (const Vertex< VID_T > &v, fid_t fid) const =0 |
virtual AdjList< VID_T, EDATA_T > | GetOutgoingAdjList (const Vertex< VID_T > &v)=0 |
Returns the outgoing adjacent vertices of v. More... | |
+virtual ConstAdjList< VID_T, EDATA_T > | GetOutgoingAdjList (const Vertex< VID_T > &v) const =0 |
+virtual fragment_adj_list_t | GetOutgoingAdjList (const Vertex< VID_T > &v, fid_t fid)=0 |
+virtual fragment_const_adj_list_t | GetOutgoingAdjList (const Vertex< VID_T > &v, fid_t fid) const =0 |
+Protected Member Functions | |
+bool | IsInnerVertexGid (VID_T gid) const |
+bool | IsInnerVertexLid (VID_T lid) const |
+bool | Gid2Lid (VID_T gid, VID_T &lid) const |
+bool | InnerVertexGid2Lid (VID_T gid, VID_T &lid) const |
+virtual bool | OuterVertexGid2Lid (VID_T gid, VID_T &lid) const =0 |
+void | initMirrorInfo (const CommSpec &comm_spec) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
![]() | |
+void | init (fid_t fid, bool directed) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Protected Attributes | |
+inner_vertices_t | inner_vertices_ |
+outer_vertices_t | outer_vertices_ |
+std::vector< sub_vertices_t > | outer_vertices_of_frag_ |
+std::vector< mirror_vertices_t > | mirrors_of_frag_ |
+IdParser< VID_T > | id_parser_ |
+std::shared_ptr< vertex_map_t > | vm_ptr_ |
![]() | |
+fid_t | fid_ |
+fid_t | fnum_ |
+bool | directed_ |
+VID_T | ivnum_ |
+vertices_t | vertices_ |
+std::shared_ptr< vertex_map_t > | vm_ptr_ |
+IdParser< VID_T > | id_parser_ |
IEdgecutFragment defines the interfaces of fragments with edgecut. To learn more about edge-cut and vertex-cut, please refers to https://spark.apache.org/docs/1.6.2/graphx-programming-guide.html#optimized-representation.
+If we have an edge a->b cutted by the partitioner, and a is in frag_0, and b in frag_1. Then: a->b is a crossing edge, a is an inner_vertex in frag_0, b is an outer_vertex in frag_0.
+OID_T | |
VID_T | |
VDATA_T | |
EDATA_T | |
TRAITS_T |
+
|
+ +inline | +
Returns the ID of this fragment.
+
+
|
+ +inline | +
Returns the number of fragments.
+
+
|
+ +pure virtual | +
Returns the incoming adjacent inner vertices of v.
+v | Input vertex. |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+
|
+ +pure virtual | +
Returns the incoming adjacent inner vertices of v.
+v | Input vertex. |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+
|
+ +pure virtual | +
Returns the incoming adjacent outer vertices of v.
+v | Input vertex. |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+
|
+ +pure virtual | +
Returns the incoming adjacent outer vertices of v.
+v | Input vertex. |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+
|
+ +inline | +
Get a inner vertex with original ID vid.
+vid | Original ID. |
v | Got vertex. |
+
|
+ +inline | +
Convert from outer vertex handle to its global id.
+v | Input vertex handle. |
+
|
+ +inline | +
Get the original ID of an inner vertex.
+v | Input vertex. |
+
|
+ +inline | +
Returns the number of inner vertices in this fragment.
+
+
|
+ +pure virtual | +
Convert from inner vertex handle to its global id.
+v | Input vertex handle. |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+
|
+ +inline | +
Get the original ID of an outer vertex.
+v | Input vertex. |
+
|
+ +inline | +
Returns the number of outer vertices in this fragment.
+
+
|
+ +pure virtual | +
Returns the outgoing adjacent inner vertices of v.
+v | Input vertex. |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+
|
+ +pure virtual | +
Returns the outgoing adjacent inner vertices of v.
+v | Input vertex. |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+
|
+ +pure virtual | +
Returns the outgoing adjacent outer vertices of v.
+v | Input vertex. |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+
|
+ +pure virtual | +
Returns the outgoing adjacent outer vertices of v.
+v | Input vertex. |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+
|
+ +inlineoverridevirtual | +
Convert from global id to a vertex handle.
+gid | Input global id. |
v | Output vertex handle. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +pure virtual | +
Return the incoming edge destination fragment ID list of a inner vertex.
+v | Input vertex. |
Implemented in grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > >.
+ +
+
|
+ +inline | +
Convert from global id to an inner vertex handle.
+gid | Input global id. |
v | Output vertex handle. |
+
|
+ +inline | +
Returns the vertex range of inner vertices in this fragment.
+
+
|
+ +pure virtual | +
Return the edge destination fragment ID list of a inner vertex.
+v | Input vertex. |
Implemented in grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > >.
+ +
+
|
+ +inline | +
Check if vertex v is inner vertex of this fragment.
+v | Input vertex. |
+
|
+ +inline | +
Check if vertex v is outer vertex of this fragment.
+v | Input vertex. |
+
|
+ +pure virtual | +
Return the outgoing edge destination fragment ID list of a inner vertex.
+v | Input vertex. |
Implemented in grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > >.
+ +
+
|
+ +inline | +
Convert from global id to an outer vertex handle.
+gid | Input global id. |
v | Output vertex handle. |
+
|
+ +inline | +
Returns the vertex range of outer vertices in this fragment.
+
+
|
+ +inlineoverridevirtual | +
Convert from vertex handle to its global id.
+v | Input vertex handle. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::FilterAdjList< VID_T, EDATA_T, PRED_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Classes | |
class | const_iterator |
class | iterator |
+Public Member Functions | |
+ | FilterAdjList (NbrT *b, NbrT *e, PRED_T pred) |
+bool | Empty () const |
+bool | NotEmpty () const |
+iterator | begin () |
+iterator | end () |
+const_iterator | begin () const |
+const_iterator | end () const |
+bool | empty () const |
+Private Types | |
+using | NbrT = Nbr< VID_T, EDATA_T > |
+Private Attributes | |
+NbrT * | begin_ |
+NbrT * | end_ |
+PRED_T | pred_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::FilterAdjList< VID_T, EDATA_T, PRED_T >::const_iterator, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | const_iterator (const pointer_type &c, const pointer_type &end, const PRED_T &pred) noexcept |
+reference_type | operator* () const noexcept |
+pointer_type | operator-> () const noexcept |
+const_iterator & | operator++ () noexcept |
+const_iterator | operator++ (int) noexcept |
+bool | operator== (const const_iterator &rhs) noexcept |
+bool | operator!= (const const_iterator &rhs) noexcept |
+Private Types | |
+using | pointer_type = const NbrT * |
+using | reference_type = const NbrT & |
+Private Attributes | |
+const NbrT * | current_ |
+const NbrT * | end_ |
+const PRED_T & | pred_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::FilterAdjList< VID_T, EDATA_T, PRED_T >::iterator, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | iterator (const pointer_type &c, const pointer_type &end, const PRED_T &pred) noexcept |
+reference_type | operator* () const noexcept |
+pointer_type | operator-> () const noexcept |
+iterator & | operator++ () noexcept |
+iterator | operator++ (int) noexcept |
+bool | operator== (const iterator &rhs) noexcept |
+bool | operator!= (const iterator &rhs) noexcept |
+Private Types | |
+using | pointer_type = NbrT * |
+using | reference_type = NbrT & |
+Private Attributes | |
+NbrT * | current_ |
+NbrT * | end_ |
+const PRED_T & | pred_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::FilterConstAdjList< VID_T, EDATA_T, PRED_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Classes | |
class | const_iterator |
+Public Member Functions | |
+ | FilterConstAdjList (const NbrT *b, const NbrT *e, PRED_T pred) |
+bool | Empty () const |
+bool | NotEmpty () const |
+const_iterator | begin () const |
+const_iterator | end () const |
+bool | empty () const |
+Private Types | |
+using | NbrT = Nbr< VID_T, EDATA_T > |
+Private Attributes | |
+const NbrT * | begin_ |
+const NbrT * | end_ |
+PRED_T | pred_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::FilterConstAdjList< VID_T, EDATA_T, PRED_T >::const_iterator, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | const_iterator (const pointer_type &c, const pointer_type &end, const PRED_T &pred) noexcept |
+reference_type | operator* () const noexcept |
+pointer_type | operator-> () const noexcept |
+const_iterator & | operator++ () noexcept |
+const_iterator | operator++ (int) noexcept |
+bool | operator== (const const_iterator &rhs) noexcept |
+bool | operator!= (const const_iterator &rhs) noexcept |
+Private Types | |
+using | pointer_type = const NbrT * |
+using | reference_type = const NbrT & |
+Private Attributes | |
+const NbrT * | current_ |
+const NbrT * | end_ |
+const PRED_T & | pred_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::FixedInArchive, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | FixedInArchive (FixedInArchive &&rhs) |
+void | init (MessageBuffer &&buf) |
+char * | data () |
+const char * | data () const |
+size_t | size () const |
+size_t | used () const |
+size_t | remaining () const |
+void | add_byte (char v) |
+void | add_bytes (const void *bytes, size_t n) |
+void | swap (FixedInArchive &rhs) |
+MicroBuffer | take () |
+void | reset () |
+MessageBuffer & | buffer () |
+const MessageBuffer & | buffer () const |
![]() | |
+ | DefaultAllocator (const DefaultAllocator &) noexcept |
+ | DefaultAllocator (DefaultAllocator &&) noexcept |
+DefaultAllocator & | operator= (const DefaultAllocator &) noexcept |
+DefaultAllocator & | operator= (DefaultAllocator &&) noexcept |
+pointer | allocate (size_type __n) |
+void | deallocate (pointer __p, size_type) |
+Private Attributes | |
+MessageBuffer | buffer_ |
+size_t | begin_ |
+size_t | offset_ |
+Additional Inherited Members | |
![]() | |
+using | pointer = _Tp * |
+using | size_type = size_t |
+using | value_type = _Tp |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
FragmentBase is the base class for fragments. + More...
+ +#include <fragment_base.h>
+Public Member Functions | |
+ | FragmentBase (std::shared_ptr< vertex_map_t > vm_ptr) |
+std::shared_ptr< vertex_map_t > | GetVertexMap () |
+const std::shared_ptr< vertex_map_t > | GetVertexMap () const |
virtual void | Init (fid_t fid, bool directed, std::vector< internal::Vertex< VID_T, VDATA_T >> &vertices, std::vector< Edge< VID_T, EDATA_T >> &edges)=0 |
Construct a fragment with a set of vertices and edges. More... | |
virtual void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf)=0 |
For some kind of applications, specific data structures will be generated. More... | |
bool | directed () const |
Returns true if the fragment is directed, false otherwise. More... | |
fid_t | fid () const |
Returns the ID of this fragment. More... | |
fid_t | fnum () const |
Returns the number of fragments. More... | |
virtual size_t | GetEdgeNum () const =0 |
Returns the number of edges in this fragment. More... | |
VID_T | GetVerticesNum () const |
Returns the number of vertices in this fragment. More... | |
size_t | GetTotalVerticesNum () const |
Returns the number of vertices in the entire graph. More... | |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
bool | GetVertex (const OID_T &oid, Vertex< VID_T > &v) const |
Get a vertex with original ID vid. More... | |
OID_T | GetId (const Vertex< VID_T > &v) const |
Get the original ID of a vertex. More... | |
+OID_T | Gid2Oid (VID_T gid) const |
fid_t | GetFragId (const Vertex< VID_T > &u) const |
Get the ID of fragment the input vertex belongs to. More... | |
virtual const VDATA_T & | GetData (const Vertex< VID_T > &v) const =0 |
Get the data of a vertex. More... | |
virtual void | SetData (const Vertex< VID_T > &v, const VDATA_T &val)=0 |
Set the data of a vertex. More... | |
virtual bool | HasChild (const Vertex< VID_T > &v) const =0 |
Check if vertex v has a child, that is, existing an edge v->u. More... | |
virtual bool | HasParent (const Vertex< VID_T > &v) const =0 |
Check if vertex v has a parent, that is, existing an edge u->v. More... | |
virtual int | GetLocalInDegree (const Vertex< VID_T > &v) const =0 |
Returns the in-degree of vertex v in this fragment. More... | |
virtual int | GetLocalOutDegree (const Vertex< VID_T > &v) const =0 |
Returns the out-degree of vertex v in this fragment.<Paste> More... | |
virtual bool | Gid2Vertex (const VID_T &gid, Vertex< VID_T > &v) const =0 |
Convert from global id to a vertex handle. More... | |
virtual VID_T | Vertex2Gid (const Vertex< VID_T > &v) const =0 |
Convert from vertex handle to its global id. More... | |
virtual AdjList< VID_T, EDATA_T > | GetIncomingAdjList (const Vertex< VID_T > &v)=0 |
Returns the incoming adjacent vertices of v. More... | |
+virtual ConstAdjList< VID_T, EDATA_T > | GetIncomingAdjList (const Vertex< VID_T > &v) const =0 |
+virtual fragment_adj_list_t | GetIncomingAdjList (const Vertex< VID_T > &v, fid_t fid)=0 |
+virtual fragment_const_adj_list_t | GetIncomingAdjList (const Vertex< VID_T > &v, fid_t fid) const =0 |
virtual AdjList< VID_T, EDATA_T > | GetOutgoingAdjList (const Vertex< VID_T > &v)=0 |
Returns the outgoing adjacent vertices of v. More... | |
+virtual ConstAdjList< VID_T, EDATA_T > | GetOutgoingAdjList (const Vertex< VID_T > &v) const =0 |
+virtual fragment_adj_list_t | GetOutgoingAdjList (const Vertex< VID_T > &v, fid_t fid)=0 |
+virtual fragment_const_adj_list_t | GetOutgoingAdjList (const Vertex< VID_T > &v, fid_t fid) const =0 |
+Protected Member Functions | |
+void | init (fid_t fid, bool directed) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Protected Attributes | |
+fid_t | fid_ |
+fid_t | fnum_ |
+bool | directed_ |
+VID_T | ivnum_ |
+vertices_t | vertices_ |
+std::shared_ptr< vertex_map_t > | vm_ptr_ |
+IdParser< VID_T > | id_parser_ |
FragmentBase is the base class for fragments.
+OID_T | |
VID_T | |
VDATA_T | |
EDATA_T | |
TRAITS_T |
+
|
+ +inline | +
Returns true if the fragment is directed, false otherwise.
+
+
|
+ +inline | +
Returns the ID of this fragment.
+
+
|
+ +inline | +
Returns the number of fragments.
+
+
|
+ +pure virtual | +
Get the data of a vertex.
+v | Input vertex. |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+
|
+ +pure virtual | +
Returns the number of edges in this fragment.
+Implemented in grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > >.
+ +
+
|
+ +inline | +
Get the ID of fragment the input vertex belongs to.
+u | Input vertex. |
+
|
+ +inline | +
Get the original ID of a vertex.
+v | Input vertex. |
+
|
+ +pure virtual | +
Returns the incoming adjacent vertices of v.
+v | Input vertex. |
Implemented in grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > >.
+ +
+
|
+ +pure virtual | +
Returns the in-degree of vertex v in this fragment.
+v | Input vertex. |
Implemented in grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > >.
+ +
+
|
+ +pure virtual | +
Returns the out-degree of vertex v in this fragment.<Paste>
+v | Input vertex. |
Implemented in grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > >.
+ +
+
|
+ +pure virtual | +
Returns the outgoing adjacent vertices of v.
+v | Input vertex. |
Implemented in grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > >.
+ +
+
|
+ +inline | +
Returns the number of vertices in the entire graph.
+
+
|
+ +inline | +
Get a vertex with original ID vid.
+vid | Original ID. |
v | Got vertex. |
+
|
+ +inline | +
Returns the number of vertices in this fragment.
+
+
|
+ +pure virtual | +
Convert from global id to a vertex handle.
+gid | Input global id. |
v | Output vertex handle. |
Implemented in grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +pure virtual | +
Check if vertex v has a child, that is, existing an edge v->u.
+v | Input vertex. |
Implemented in grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > >.
+ +
+
|
+ +pure virtual | +
Check if vertex v has a parent, that is, existing an edge u->v.
+v | Input vertex. |
Implemented in grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > >.
+ +
+
|
+ +pure virtual | +
Construct a fragment with a set of vertices and edges.
+fid | Fragment ID |
vertices | A set of vertices. |
edges | A set of edges. |
+
|
+ +pure virtual | +
For some kind of applications, specific data structures will be generated.
+strategy | |
need_split_edge |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >, grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >, grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > >, and grape::cuda::HostFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >.
+ +
+
|
+ +pure virtual | +
Set the data of a vertex.
+v | Input vertex. |
val | Data to write. |
Implemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut, GlobalVertexMap< OID_T, VID_T > >.
+ +
+
|
+ +pure virtual | +
Convert from vertex handle to its global id.
+v | Input vertex handle. |
Implemented in grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inline | +
Get all vertices referenced to this fragment.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::GlobalVertexMap< OID_T, VID_T, PARTITIONER_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
a kind of VertexMapBase which holds global mapping information in each worker. + More...
+ +#include <global_vertex_map.h>
+Public Member Functions | |
+ | GlobalVertexMap (const CommSpec &comm_spec) |
+void | Init () |
+size_t | GetTotalVertexSize () const |
+size_t | GetInnerVertexSize (fid_t fid) const |
+void | AddVertex (const OID_T &oid) |
+bool | AddVertex (const OID_T &oid, VID_T &gid) |
+bool | AddVertex (OID_T &&oid, VID_T &gid) |
+bool | GetOid (const VID_T &gid, OID_T &oid) const |
+bool | GetOid (fid_t fid, const VID_T &lid, OID_T &oid) const |
+bool | _GetGid (fid_t fid, const internal_oid_t &oid, VID_T &gid) const |
+bool | GetGid (fid_t fid, const OID_T &oid, VID_T &gid) const |
+bool | _GetGid (const internal_oid_t &oid, VID_T &gid) const |
+bool | GetGid (const OID_T &oid, VID_T &gid) const |
+GlobalVertexMapBuilder< OID_T, VID_T, PARTITIONER_T > | GetLocalBuilder () |
+template<typename IOADAPTOR_T > | |
void | Serialize (const std::string &prefix) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (const std::string &prefix, fid_t fid) |
+void | UpdateToBalance (std::vector< VID_T > &vnum_list, std::vector< std::vector< VID_T >> &gid_maps) |
+VID_T | Lid2Gid (fid_t fid, const VID_T &lid) const |
+fid_t | GetFidFromGid (const VID_T &gid) const |
+VID_T | GetLidFromGid (const VID_T &gid) const |
![]() | |
+ | VertexMapBase (const CommSpec &comm_spec) |
+void | SetPartitioner (const HashPartitioner< OID_T > &partitioner) |
+void | SetPartitioner (HashPartitioner< OID_T > &&partitioner) |
+fid_t | GetFragmentNum () const |
+VID_T | Lid2Gid (fid_t fid, const VID_T &lid) const |
+fid_t | GetFidFromGid (const VID_T &gid) const |
+VID_T | GetLidFromGid (const VID_T &gid) const |
+VID_T | MaxVertexNum () const |
+const CommSpec & | GetCommSpec () const |
+void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+fid_t | GetFragmentId (const OID_T &oid) const |
+const HashPartitioner< OID_T > & | GetPartitioner () const |
+HashPartitioner< OID_T > & | GetPartitioner () |
+Private Types | |
+using | base_t = VertexMapBase< OID_T, VID_T, PARTITIONER_T > |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Member Functions | |
+template<typename IOADAPTOR_T > | |
void | serialize (const std::string &path) |
+Private Attributes | |
+std::vector< IdIndexer< internal_oid_t, VID_T > > | indexers_ |
+CommSpec | comm_spec_ |
+IdParser< VID_T > | id_parser_ |
+PARTITIONER_T | partitioner_ |
+Friends | |
+template<typename _OID_T , typename _VID_T , typename _PARTITIONER_T > | |
class | GlobalVertexMapBuilder |
+Additional Inherited Members | |
![]() | |
+using | partitioner_t = HashPartitioner< OID_T > |
+using | oid_t = OID_T |
+using | vid_t = VID_T |
![]() | |
+CommSpec | comm_spec_ |
+HashPartitioner< OID_T > | partitioner_ |
+IdParser< VID_T > | id_parser_ |
a kind of VertexMapBase which holds global mapping information in each worker.
+OID_T | |
VID_T |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::GlobalVertexMapBuilder< OID_T, VID_T, PARTITIONER_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | add_local_vertex (const internal_oid_t &id, VID_T &gid) |
+void | add_vertex (const internal_oid_t &id) |
+void | finish (GlobalVertexMap< OID_T, VID_T, PARTITIONER_T > &vertex_map) |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Member Functions | |
+ | GlobalVertexMapBuilder (fid_t fid, IdIndexer< internal_oid_t, VID_T > &indexer, const PARTITIONER_T &partitioner, const IdParser< VID_T > &id_parser) |
+Private Attributes | |
+fid_t | fid_ |
+IdIndexer< internal_oid_t, VID_T > & | indexer_ |
+const PARTITIONER_T & | partitioner_ |
+const IdParser< VID_T > & | id_parser_ |
+Friends | |
+template<typename _OID_T , typename _VID_T , typename _PARTITIONER_T > | |
class | GlobalVertexMap |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::HashPartitioner< OID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
HashPartitoner is a partitioner with the strategy of hashing on original vertex_ids. + More...
+ +#include <partitioner.h>
+Public Member Functions | |
+ | HashPartitioner (size_t frag_num) |
+ | HashPartitioner (size_t frag_num, std::vector< OID_T > &) |
+fid_t | GetPartitionId (const OID_T &oid) const |
+void | SetPartitionId (const OID_T &oid, fid_t fid) |
+HashPartitioner & | operator= (const HashPartitioner &other) |
+HashPartitioner & | operator= (HashPartitioner &&other) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Private Attributes | |
+fid_t | fnum_ |
HashPartitoner is a partitioner with the strategy of hashing on original vertex_ids.
+OID_T |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::HashPartitioner< std::string >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | oid_t = std::string |
+using | internal_oid_t = nonstd::string_view |
+Public Member Functions | |
+ | HashPartitioner (size_t frag_num) |
+ | HashPartitioner (size_t frag_num, std::vector< std::string > &) |
+fid_t | GetPartitionId (const internal_oid_t &oid) const |
+fid_t | GetPartitionId (const oid_t &oid) const |
+void | SetPartitionId (const oid_t &oid, fid_t fid) |
+void | SetPartitionId (const internal_oid_t &oid, fid_t fid) |
+HashPartitioner & | operator= (const HashPartitioner &other) |
+ | HashPartitioner (const HashPartitioner &other) |
+HashPartitioner & | operator= (HashPartitioner &&other) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Private Attributes | |
+fid_t | fnum_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::IOAdaptorBase, including all inherited members.
+Close()=0 (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | pure virtual |
Configure(const std::string &key, const std::string &value)=0 | grape::IOAdaptorBase | pure virtual |
IOAdaptorBase()=default (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | |
IsExist()=0 (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | pure virtual |
MakeDirectory(const std::string &path)=0 (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | pure virtual |
Open()=0 (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | pure virtual |
Open(const char *mode)=0 (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | pure virtual |
Read(void *buffer, size_t size)=0 (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | pure virtual |
ReadArchive(OutArchive &archive)=0 (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | pure virtual |
ReadLine(std::string &line)=0 (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | pure virtual |
SetPartialRead(int index, int total_parts)=0 | grape::IOAdaptorBase | pure virtual |
Write(void *buffer, size_t size)=0 (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | pure virtual |
WriteArchive(InArchive &archive)=0 (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | pure virtual |
~IOAdaptorBase()=default (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | virtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
IOAdaptorBase is the base class of I/O adaptors. + More...
+ +#include <io_adaptor_base.h>
+Public Member Functions | |
+virtual void | Open ()=0 |
+virtual void | Open (const char *mode)=0 |
+virtual void | Close ()=0 |
+virtual bool | Configure (const std::string &key, const std::string &value)=0 |
Configure sub-class specific items. e.g., odps_access_key = abcd; oss_read_concurrency = 16; whether ReadLine for local location uses std::getline;. | |
virtual bool | SetPartialRead (int index, int total_parts)=0 |
Set each worker only scan related parts of the whole file. More... | |
+virtual bool | ReadLine (std::string &line)=0 |
+virtual bool | ReadArchive (OutArchive &archive)=0 |
+virtual bool | WriteArchive (InArchive &archive)=0 |
+virtual bool | Read (void *buffer, size_t size)=0 |
+virtual bool | Write (void *buffer, size_t size)=0 |
+virtual void | MakeDirectory (const std::string &path)=0 |
+virtual bool | IsExist ()=0 |
IOAdaptorBase is the base class of I/O adaptors.
+
+
|
+ +pure virtual | +
Set each worker only scan related parts of the whole file.
+for local: read with offset, from a big file.
+ +Implemented in grape::LocalIOAdaptor.
+ +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ISyncBuffer, including all inherited members.
+base() (defined in grape::ISyncBuffer) | grape::ISyncBuffer | inline |
data()=0 (defined in grape::ISyncBuffer) | grape::ISyncBuffer | pure virtual |
GetTypeId() const =0 (defined in grape::ISyncBuffer) | grape::ISyncBuffer | pure virtual |
updated(size_t begin, size_t length) const =0 (defined in grape::ISyncBuffer) | grape::ISyncBuffer | pure virtual |
~ISyncBuffer()=default (defined in grape::ISyncBuffer) | grape::ISyncBuffer | virtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
ISyncBuffer is a base class of SyncBuffer, which is used for auto parallelization. + More...
+ +#include <sync_buffer.h>
ISyncBuffer is a base class of SyncBuffer, which is used for auto parallelization.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::IdIndexer< KEY_T, INDEX_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | key_buffer_t = typename id_indexer_impl::KeyBuffer< KEY_T >::type |
+using | ind_buffer_t = std::vector< INDEX_T, Allocator< INDEX_T > > |
+using | dist_buffer_t = std::vector< int8_t, Allocator< int8_t > > |
+Public Member Functions | |
+size_t | entry_num () const |
+bool | add (const KEY_T &oid, INDEX_T &lid) |
+bool | add (KEY_T &&oid, INDEX_T &lid) |
+bool | _add (const KEY_T &oid, size_t hash_value, INDEX_T &lid) |
+bool | _add (KEY_T &&oid, size_t hash_value, INDEX_T &lid) |
+void | _add (const KEY_T &oid) |
+void | _add (KEY_T &&oid) |
+size_t | bucket_count () const |
+bool | empty () const |
+size_t | size () const |
+bool | get_key (INDEX_T lid, KEY_T &oid) const |
+bool | get_index (const KEY_T &oid, INDEX_T &lid) const |
+bool | _get_index (const KEY_T &oid, size_t hash, INDEX_T &lid) const |
+void | swap (IdIndexer< KEY_T, INDEX_T > &rhs) |
+const key_buffer_t & | keys () const |
+key_buffer_t & | keys () |
+template<typename IOADAPTOR_T > | |
void | Serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Static Private Member Functions | |
+static int8_t | compute_max_lookups (size_t num_buckets) |
+Friends | |
+template<typename _T , typename _Enable > | |
struct | sync_comm::CommImpl |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::IdParser< VID_T >, including all inherited members.
+fid_offset_ (defined in grape::IdParser< VID_T >) | grape::IdParser< VID_T > | private |
generate_global_id(fid_t fid, VID_T local_id) const (defined in grape::IdParser< VID_T >) | grape::IdParser< VID_T > | inline |
get_fragment_id(VID_T global_id) const (defined in grape::IdParser< VID_T >) | grape::IdParser< VID_T > | inline |
get_local_id(VID_T global_id) const (defined in grape::IdParser< VID_T >) | grape::IdParser< VID_T > | inline |
id_mask_ (defined in grape::IdParser< VID_T >) | grape::IdParser< VID_T > | private |
IdParser()=default (defined in grape::IdParser< VID_T >) | grape::IdParser< VID_T > | |
init(fid_t fnum) (defined in grape::IdParser< VID_T >) | grape::IdParser< VID_T > | inline |
max_local_id() const (defined in grape::IdParser< VID_T >) | grape::IdParser< VID_T > | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Private Attributes | |
+VID_T | id_mask_ |
+int | fid_offset_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ImmutableCSR< VID_T, NBR_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | vid_t = VID_T |
+using | nbr_t = NBR_T |
+Public Member Functions | |
+VID_T | vertex_num () const |
+bool | empty () const |
+size_t | edge_num () const |
+int | degree (VID_T i) const |
+bool | is_empty (VID_T i) const |
+nbr_t * | get_begin (VID_T i) |
+const nbr_t * | get_begin (VID_T i) const |
+nbr_t * | get_end (VID_T i) |
+const nbr_t * | get_end (VID_T i) const |
+Array< nbr_t, Allocator< nbr_t > > const & | get_edges () |
+Array< nbr_t *, Allocator< nbr_t * > > const & | get_offsets () |
+Array< nbr_t, Allocator< nbr_t > > & | get_edges_mut () |
+Array< nbr_t *, Allocator< nbr_t * > > & | get_offsets_mut () |
+template<typename IOADAPTOR_T > | |
void | Serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Private Attributes | |
+Array< nbr_t, Allocator< nbr_t > > | edges_ |
+Array< nbr_t *, Allocator< nbr_t * > > | offsets_ |
+Friends | |
+template<typename _VID_T , typename _EDATA_T > | |
class | ImmutableCSRBuild |
+template<typename _VID_T , typename _EDATA_T > | |
class | ImmutableCSRStreamBuilder |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ImmutableCSRBuild< VID_T, NBR_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | vertex_range_t = VertexRange< VID_T > |
+Public Member Functions | |
+void | init (VID_T vnum) |
+void | init (const VertexRange< VID_T > &range) |
+void | inc_degree (VID_T i) |
+void | build_offsets () |
+void | add_edge (VID_T src, const nbr_t &nbr) |
+template<typename FUNC_T > | |
void | sort (const FUNC_T &func) |
+void | finish (ImmutableCSR< VID_T, NBR_T > &ret) |
+Private Types | |
+using | vid_t = VID_T |
+using | nbr_t = NBR_T |
+Private Attributes | |
+VID_T | vnum_ |
+size_t | edge_num_ |
+Array< nbr_t, Allocator< nbr_t > > | edges_ |
+Array< nbr_t *, Allocator< nbr_t * > > | offsets_ |
+std::vector< int > | degree_ |
+Array< nbr_t *, Allocator< nbr_t * > > | iter_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ImmutableCSRStreamBuilder< VID_T, NBR_T >, including all inherited members.
+add_edges(const ITER_T &begin, const ITER_T &end) (defined in grape::ImmutableCSRStreamBuilder< VID_T, NBR_T >) | grape::ImmutableCSRStreamBuilder< VID_T, NBR_T > | inline |
degree_ (defined in grape::ImmutableCSRStreamBuilder< VID_T, NBR_T >) | grape::ImmutableCSRStreamBuilder< VID_T, NBR_T > | private |
edges_ (defined in grape::ImmutableCSRStreamBuilder< VID_T, NBR_T >) | grape::ImmutableCSRStreamBuilder< VID_T, NBR_T > | private |
finish(ImmutableCSR< VID_T, NBR_T > &ret) (defined in grape::ImmutableCSRStreamBuilder< VID_T, NBR_T >) | grape::ImmutableCSRStreamBuilder< VID_T, NBR_T > | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+template<typename ITER_T > | |
void | add_edges (const ITER_T &begin, const ITER_T &end) |
+void | finish (ImmutableCSR< VID_T, NBR_T > &ret) |
+Private Attributes | |
+std::vector< int > | degree_ |
+std::vector< NBR_T > | edges_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A kind of edgecut fragment. + More...
+ +#include <immutable_edgecut_fragment.h>
+Public Types | |
+using | traits_t = ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, VERTEX_MAP_T > |
+using | base_t = CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, traits_t > |
+using | internal_vertex_t = internal::Vertex< VID_T, VDATA_T > |
+using | edge_t = Edge< VID_T, EDATA_T > |
+using | nbr_t = Nbr< VID_T, EDATA_T > |
+using | vertex_t = Vertex< VID_T > |
+using | vid_t = VID_T |
+using | oid_t = OID_T |
+using | vdata_t = VDATA_T |
+using | edata_t = EDATA_T |
+using | vertex_map_t = typename traits_t::vertex_map_t |
+using | IsEdgeCut = std::true_type |
+using | IsVertexCut = std::false_type |
+using | vertex_range_t = VertexRange< VID_T > |
+using | inner_vertices_t = typename traits_t::inner_vertices_t |
+using | outer_vertices_t = typename traits_t::outer_vertices_t |
+using | vertices_t = typename traits_t::vertices_t |
+template<typename T > | |
using | inner_vertex_array_t = VertexArray< inner_vertices_t, T > |
+template<typename T > | |
using | outer_vertex_array_t = VertexArray< outer_vertices_t, T > |
+template<typename T > | |
using | vertex_array_t = VertexArray< vertices_t, T > |
+using | adj_list_t = typename base_t::adj_list_t |
+using | const_adj_list_t = typename base_t::const_adj_list_t |
![]() | |
+using | nbr_t = Nbr< VID_T, EDATA_T > |
+using | vertex_t = Vertex< VID_T > |
+using | const_adj_list_t = ConstAdjList< VID_T, EDATA_T > |
+using | adj_list_t = AdjList< VID_T, EDATA_T > |
+using | base_t = EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > > |
![]() | |
+using | base_t = FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T > |
+using | vid_t = VID_T |
+using | vertex_t = Vertex< VID_T > |
+using | inner_vertices_t = typename TRAITS_T::inner_vertices_t |
+using | outer_vertices_t = typename TRAITS_T::outer_vertices_t |
+using | sub_vertices_t = typename TRAITS_T::sub_vertices_t |
+using | mirror_vertices_t = typename TRAITS_T::mirror_vertices_t |
![]() | |
+using | vertex_map_t = typename TRAITS_T::vertex_map_t |
+using | fragment_adj_list_t = typename TRAITS_T::fragment_adj_list_t |
+using | fragment_const_adj_list_t = typename TRAITS_T::fragment_const_adj_list_t |
+using | vertices_t = typename TRAITS_T::vertices_t |
+Public Member Functions | |
+ | ImmutableEdgecutFragment (std::shared_ptr< vertex_map_t > vm_ptr) |
+void | Init (fid_t fid, bool directed, std::vector< internal_vertex_t > &vertices, std::vector< edge_t > &edges) override |
+template<typename IOADAPTOR_T > | |
void | Serialize (const std::string &prefix) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (const std::string &prefix, const fid_t fid) |
void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf) override |
For some kind of applications, specific data structures will be generated. More... | |
const VDATA_T & | GetData (const vertex_t &v) const override |
Get the data of a vertex. More... | |
void | SetData (const vertex_t &v, const VDATA_T &val) override |
Set the data of a vertex. More... | |
+bool | OuterVertexGid2Lid (VID_T gid, VID_T &lid) const override |
VID_T | GetOuterVertexGid (vertex_t v) const override |
Convert from inner vertex handle to its global id. More... | |
adj_list_t | GetIncomingInnerVertexAdjList (const vertex_t &v) override |
Returns the incoming adjacent inner vertices of v. More... | |
const_adj_list_t | GetIncomingInnerVertexAdjList (const vertex_t &v) const override |
Returns the incoming adjacent inner vertices of v. More... | |
adj_list_t | GetIncomingOuterVertexAdjList (const vertex_t &v) override |
Returns the incoming adjacent outer vertices of v. More... | |
const_adj_list_t | GetIncomingOuterVertexAdjList (const vertex_t &v) const override |
Returns the incoming adjacent outer vertices of v. More... | |
adj_list_t | GetOutgoingInnerVertexAdjList (const vertex_t &v) override |
Returns the outgoing adjacent inner vertices of v. More... | |
const_adj_list_t | GetOutgoingInnerVertexAdjList (const vertex_t &v) const override |
Returns the outgoing adjacent inner vertices of v. More... | |
adj_list_t | GetOutgoingOuterVertexAdjList (const vertex_t &v) override |
Returns the outgoing adjacent outer vertices of v. More... | |
const_adj_list_t | GetOutgoingOuterVertexAdjList (const vertex_t &v) const override |
Returns the outgoing adjacent outer vertices of v. More... | |
+adj_list_t | GetIncomingAdjList (const vertex_t &v, fid_t src_fid) override |
+const_adj_list_t | GetIncomingAdjList (const vertex_t &v, fid_t src_fid) const override |
+adj_list_t | GetOutgoingAdjList (const vertex_t &v, fid_t dst_fid) override |
+const_adj_list_t | GetOutgoingAdjList (const vertex_t &v, fid_t dst_fid) const override |
+void | init (fid_t fid, bool directed) |
fid_t | GetFragId (const Vertex< VID_T > &u) const |
Get the ID of fragment the input vertex belongs to. More... | |
virtual AdjList< VID_T, EDATA_T > | GetIncomingAdjList (const Vertex< VID_T > &v)=0 |
Returns the incoming adjacent vertices of v. More... | |
+virtual ConstAdjList< VID_T, EDATA_T > | GetIncomingAdjList (const Vertex< VID_T > &v) const=0 |
+virtual fragment_adj_list_t | GetIncomingAdjList (const Vertex< VID_T > &v, fid_t fid)=0 |
+virtual fragment_const_adj_list_t | GetIncomingAdjList (const Vertex< VID_T > &v, fid_t fid) const=0 |
virtual AdjList< VID_T, EDATA_T > | GetOutgoingAdjList (const Vertex< VID_T > &v)=0 |
Returns the outgoing adjacent vertices of v. More... | |
+virtual ConstAdjList< VID_T, EDATA_T > | GetOutgoingAdjList (const Vertex< VID_T > &v) const=0 |
+virtual fragment_adj_list_t | GetOutgoingAdjList (const Vertex< VID_T > &v, fid_t fid)=0 |
+virtual fragment_const_adj_list_t | GetOutgoingAdjList (const Vertex< VID_T > &v, fid_t fid) const=0 |
![]() | |
size_t | GetEdgeNum () const override |
Returns the number of edges in this fragment. More... | |
+size_t | GetOutgoingEdgeNum () const |
+size_t | GetIncomingEdgeNum () const |
bool | HasChild (const vertex_t &v) const override |
Check if vertex v has a child, that is, existing an edge v->u. More... | |
bool | HasParent (const vertex_t &v) const override |
Check if vertex v has a parent, that is, existing an edge u->v. More... | |
int | GetLocalOutDegree (const vertex_t &v) const override |
Returns the out-degree of vertex v in this fragment.<Paste> More... | |
int | GetLocalInDegree (const vertex_t &v) const override |
Returns the in-degree of vertex v in this fragment. More... | |
adj_list_t | GetIncomingAdjList (const vertex_t &v) override |
Returns the incoming adjacent vertices of v. More... | |
const_adj_list_t | GetIncomingAdjList (const vertex_t &v) const override |
Returns the incoming adjacent vertices of v. More... | |
adj_list_t | GetOutgoingAdjList (const vertex_t &v) override |
Returns the outgoing adjacent vertices of v. More... | |
const_adj_list_t | GetOutgoingAdjList (const vertex_t &v) const override |
Returns the outgoing adjacent vertices of v. More... | |
bool | IsIncomingBorderVertex (const vertex_t &v) const |
Check if inner vertex v is an incoming border vertex, that is, existing edge u->v, u is an outer vertex. More... | |
bool | IsOutgoingBorderVertex (const vertex_t &v) const |
Check if inner vertex v is an outgoing border vertex, that is, existing edge v->u, u is an outer vertex. More... | |
bool | IsBorderVertex (const vertex_t &v) const |
Check if inner vertex v is an border vertex, that is, existing edge v->u or u->v, u is an outer vertex. More... | |
DestList | IEDests (const vertex_t &v) const override |
Return the incoming edge destination fragment ID list of a inner vertex. More... | |
+size_t | IEDestsSize () const override |
DestList | OEDests (const vertex_t &v) const override |
Return the outgoing edge destination fragment ID list of a Vertex. More... | |
+size_t | OEDestsSize () const override |
DestList | IOEDests (const vertex_t &v) const override |
Return the edge destination fragment ID list of a inner vertex. More... | |
+size_t | IOEDestsSize () const override |
void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf) override |
For some kind of applications, specific data structures will be generated. More... | |
bool | IsInnerVertex (const Vertex< VID_T > &v) const |
Check if vertex v is inner vertex of this fragment. More... | |
bool | IsOuterVertex (const Vertex< VID_T > &v) const |
Check if vertex v is outer vertex of this fragment. More... | |
VID_T | GetInnerVerticesNum () const |
Returns the number of inner vertices in this fragment. More... | |
+void | initMirrorInfo (const CommSpec &comm_spec) |
![]() | |
VID_T | GetInnerVerticesNum () const |
Returns the number of inner vertices in this fragment. More... | |
VID_T | GetOuterVerticesNum () const |
Returns the number of outer vertices in this fragment. More... | |
const inner_vertices_t & | InnerVertices () const |
Returns the vertex range of inner vertices in this fragment. More... | |
const outer_vertices_t & | OuterVertices () const |
Returns the vertex range of outer vertices in this fragment. More... | |
+const sub_vertices_t & | OuterVertices (fid_t fid) const |
+const mirror_vertices_t & | MirrorVertices (fid_t fid) const |
bool | IsInnerVertex (const Vertex< VID_T > &v) const |
Check if vertex v is inner vertex of this fragment. More... | |
bool | IsOuterVertex (const Vertex< VID_T > &v) const |
Check if vertex v is outer vertex of this fragment. More... | |
bool | GetInnerVertex (const OID_T &oid, Vertex< VID_T > &v) const |
Get a inner vertex with original ID vid. More... | |
OID_T | GetInnerVertexId (vertex_t v) const |
Get the original ID of an inner vertex. More... | |
OID_T | GetOuterVertexId (vertex_t v) const |
Get the original ID of an outer vertex. More... | |
bool | InnerVertexGid2Vertex (VID_T gid, Vertex< VID_T > &v) const |
Convert from global id to an inner vertex handle. More... | |
bool | OuterVertexGid2Vertex (VID_T gid, Vertex< VID_T > &v) const |
Convert from global id to an outer vertex handle. More... | |
VID_T | GetInnerVertexGid (vertex_t v) const |
Convert from outer vertex handle to its global id. More... | |
bool | Gid2Vertex (const vid_t &gid, vertex_t &v) const override |
Convert from global id to a vertex handle. More... | |
vid_t | Vertex2Gid (const vertex_t &v) const override |
Convert from vertex handle to its global id. More... | |
fid_t | fid () const |
Returns the ID of this fragment. More... | |
fid_t | fnum () const |
Returns the number of fragments. More... | |
![]() | |
+ | FragmentBase (std::shared_ptr< vertex_map_t > vm_ptr) |
+std::shared_ptr< vertex_map_t > | GetVertexMap () |
+const std::shared_ptr< vertex_map_t > | GetVertexMap () const |
virtual void | Init (fid_t fid, bool directed, std::vector< internal::Vertex< VID_T, VDATA_T >> &vertices, std::vector< Edge< VID_T, EDATA_T >> &edges)=0 |
Construct a fragment with a set of vertices and edges. More... | |
bool | directed () const |
Returns true if the fragment is directed, false otherwise. More... | |
fid_t | fid () const |
Returns the ID of this fragment. More... | |
fid_t | fnum () const |
Returns the number of fragments. More... | |
VID_T | GetVerticesNum () const |
Returns the number of vertices in this fragment. More... | |
size_t | GetTotalVerticesNum () const |
Returns the number of vertices in the entire graph. More... | |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
bool | GetVertex (const OID_T &oid, Vertex< VID_T > &v) const |
Get a vertex with original ID vid. More... | |
OID_T | GetId (const Vertex< VID_T > &v) const |
Get the original ID of a vertex. More... | |
+OID_T | Gid2Oid (VID_T gid) const |
fid_t | GetFragId (const Vertex< VID_T > &u) const |
Get the ID of fragment the input vertex belongs to. More... | |
+Static Public Member Functions | |
+static std::string | type_info () |
+Static Public Attributes | |
+static constexpr LoadStrategy | load_strategy = _load_strategy |
+Protected Member Functions | |
+void | initOuterVerticesOfFragment () |
+void | splitEdges () |
+void | splitEdgesByFragment () |
![]() | |
+void | buildCSR (const typename csr_builder_t::vertex_range_t &vertex_range, std::vector< Edge< VID_T, EDATA_T >> &edges, LoadStrategy load_strategy) |
+void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+nbr_t * | get_ie_begin (const vertex_t &v) |
+const nbr_t * | get_ie_begin (const vertex_t &v) const |
+nbr_t * | get_ie_end (const vertex_t &v) |
+const nbr_t * | get_ie_end (const vertex_t &v) const |
+nbr_t * | get_oe_begin (const vertex_t &v) |
+const nbr_t * | get_oe_begin (const vertex_t &v) const |
+nbr_t * | get_oe_end (const vertex_t &v) |
+const nbr_t * | get_oe_end (const vertex_t &v) const |
+bool | Gid2Lid (VID_T gid, VID_T &lid) const |
+bool | InnerVertexGid2Lid (VID_T gid, VID_T &lid) const |
+bool | IsInnerVertexGid (VID_T gid) const |
+bool | IsInnerVertexLid (VID_T lid) const |
+virtual bool | OuterVertexGid2Lid (VID_T gid, VID_T &lid) const =0 |
![]() | |
+bool | IsInnerVertexGid (VID_T gid) const |
+bool | IsInnerVertexLid (VID_T lid) const |
+bool | Gid2Lid (VID_T gid, VID_T &lid) const |
+bool | InnerVertexGid2Lid (VID_T gid, VID_T &lid) const |
+void | initMirrorInfo (const CommSpec &comm_spec) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
![]() | |
+void | init (fid_t fid, bool directed) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Protected Attributes | |
+VID_T | ovnum_ |
+ska::flat_hash_map< VID_T, VID_T, std::hash< VID_T >, std::equal_to< VID_T >, Allocator< std::pair< VID_T, VID_T > > > | ovg2l_ |
+Array< VID_T, Allocator< VID_T > > | ovgid_ |
+Array< VDATA_T, Allocator< VDATA_T > > | vdata_ |
+std::vector< VertexArray< inner_vertices_t, nbr_t * > > | iespliters_ |
+std::vector< VertexArray< inner_vertices_t, nbr_t * > > | oespliters_ |
+bool | splited_edges_by_fragment_ = false |
+bool | splited_edges_ = false |
+VID_T | ivnum_ |
+bool | directed_ |
+fid_t | fid_ |
+fid_t | fnum_ |
+IdParser< VID_T > | id_parser_ |
![]() | |
+csr_t | ie_ |
+csr_t | oe_ |
+ImmutableCSR< VID_T, fid_t > | idst_ |
+ImmutableCSR< VID_T, fid_t > | odst_ |
+ImmutableCSR< VID_T, fid_t > | iodst_ |
+bool | idst_built_ |
+bool | odst_built_ |
+bool | iodst_built_ |
+bool | mirror_info_initialized_ |
![]() | |
+inner_vertices_t | inner_vertices_ |
+outer_vertices_t | outer_vertices_ |
+std::vector< sub_vertices_t > | outer_vertices_of_frag_ |
+std::vector< mirror_vertices_t > | mirrors_of_frag_ |
+IdParser< VID_T > | id_parser_ |
+std::shared_ptr< vertex_map_t > | vm_ptr_ |
![]() | |
+fid_t | fid_ |
+fid_t | fnum_ |
+bool | directed_ |
+VID_T | ivnum_ |
+vertices_t | vertices_ |
+std::shared_ptr< vertex_map_t > | vm_ptr_ |
+IdParser< VID_T > | id_parser_ |
A kind of edgecut fragment.
+OID_T | Type of original ID. |
VID_T | Type of global ID and local ID. |
VDATA_T | Type of data on vertices. |
EDATA_T | Type of data on edges. |
LoadStrategy | The strategy to store adjacency information, default is only_out. |
With an edgecut partition, each vertex is assigned to a fragment. In a fragment, inner vertices are those vertices assigned to it, and the outer vertices are the remaining vertices adjacent to some of the inner vertices. The load strategy defines how to store the adjacency between inner and outer vertices.
+For example, a graph G = {V, E} V = {v0, v1, v2, v3, v4} E = {(v0, v2), (v0, v3), (v1, v0), (v3, v1), (v3, v4), (v4, v1), (v4, v2)}
+Subset V_0 = {v0, v1} is assigned to fragment_0, so InnerVertices_0 = {v0, v1}
+If the load strategy is kOnlyIn: All incoming edges (along with the source vertices) of inner vertices will be stored in a fragment. So, OuterVertices_0 = {v3, v4}, E_0 = {(v1, v0), (v3, v1), (v4, v1)}
+If the load strategy is kOnlyOut: All outgoing edges (along with the destination vertices) of inner vertices will be stored in a fragment. So, OuterVertices_0 = {v2, v3}, E_0 = {(v0, v2), (v0, v3), (v1, v0)}
+If the load strategy is kBothOutIn: All incoming edges (along with the source vertices) and outgoing edges (along with destination vertices) of inner vertices will be stored in a fragment. So, OuterVertices_0 = {v2, v3, v4}, E_0 = {(v0, v2), (v0, v3), (v1, v0), (v3, v1), (v4, v1), (v4, v2)}
+Inner vertices and outer vertices of a fragment will be given a local ID {0, 1, ..., ivnum - 1, ivnum, ..., ivnum + ovnum - 1}, then iterate on vertices can be implemented to increment the local ID. Also, the sets of inner vertices, outer vertices and all vertices are ranges of local ID.
+
+
|
+ +inlineoverridevirtual | +
Get the data of a vertex.
+v | Input vertex. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inline | +
Get the ID of fragment the input vertex belongs to.
+u | Input vertex. |
virtual AdjList<VID_T, EDATA_T> grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >::GetIncomingAdjList | +
Returns the incoming adjacent vertices of v.
+v | Input vertex. |
+
|
+ +inlineoverridevirtual | +
Returns the incoming adjacent inner vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the incoming adjacent inner vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the incoming adjacent outer vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the incoming adjacent outer vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Convert from inner vertex handle to its global id.
+v | Input vertex handle. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +virtual AdjList<VID_T, EDATA_T> grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >::GetOutgoingAdjList | +
Returns the outgoing adjacent vertices of v.
+v | Input vertex. |
+
|
+ +inlineoverridevirtual | +
Returns the outgoing adjacent inner vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the outgoing adjacent inner vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the outgoing adjacent outer vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the outgoing adjacent outer vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
For some kind of applications, specific data structures will be generated.
+strategy | |
need_split_edge |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Set the data of a vertex.
+v | Input vertex. |
val | Data to write. |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::InArchive, including all inherited members.
+AddByte(char v) (defined in grape::InArchive) | grape::InArchive | inline |
AddBytes(const void *head, size_t size) (defined in grape::InArchive) | grape::InArchive | inline |
buffer_ (defined in grape::InArchive) | grape::InArchive | private |
Clear() (defined in grape::InArchive) | grape::InArchive | inline |
Empty() const (defined in grape::InArchive) | grape::InArchive | inline |
GetBuffer() (defined in grape::InArchive) | grape::InArchive | inline |
GetBuffer() const (defined in grape::InArchive) | grape::InArchive | inline |
GetSize() const (defined in grape::InArchive) | grape::InArchive | inline |
InArchive() (defined in grape::InArchive) | grape::InArchive | inline |
InArchive(InArchive &&rhs) (defined in grape::InArchive) | grape::InArchive | inline |
operator=(InArchive &&rhs) (defined in grape::InArchive) | grape::InArchive | inline |
OutArchive (defined in grape::InArchive) | grape::InArchive | friend |
Reserve(size_t cap) (defined in grape::InArchive) | grape::InArchive | inline |
Reset() (defined in grape::InArchive) | grape::InArchive | inline |
Resize(size_t size) (defined in grape::InArchive) | grape::InArchive | inline |
~InArchive() (defined in grape::InArchive) | grape::InArchive | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
InArchive is an archived object for serializing objects. + More...
+ +#include <in_archive.h>
+Public Member Functions | |
+ | InArchive (InArchive &&rhs) |
+InArchive & | operator= (InArchive &&rhs) |
+void | Reset () |
+char * | GetBuffer () |
+const char * | GetBuffer () const |
+size_t | GetSize () const |
+void | AddByte (char v) |
+void | AddBytes (const void *head, size_t size) |
+void | Resize (size_t size) |
+void | Clear () |
+bool | Empty () const |
+void | Reserve (size_t cap) |
+Private Attributes | |
+std::vector< char > | buffer_ |
+Friends | |
+class | OutArchive |
InArchive is an archived object for serializing objects.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::IteratorPair< T >, including all inherited members.
+begin() const (defined in grape::IteratorPair< T >) | grape::IteratorPair< T > | inline |
begin_ (defined in grape::IteratorPair< T >) | grape::IteratorPair< T > | private |
empty() const (defined in grape::IteratorPair< T >) | grape::IteratorPair< T > | inline |
end() const (defined in grape::IteratorPair< T >) | grape::IteratorPair< T > | inline |
end_ (defined in grape::IteratorPair< T >) | grape::IteratorPair< T > | private |
IteratorPair(const T begin, const T end) (defined in grape::IteratorPair< T >) | grape::IteratorPair< T > | inline |
operator=(const IteratorPair &ip) (defined in grape::IteratorPair< T >) | grape::IteratorPair< T > | inline |
set_begin(T begin) (defined in grape::IteratorPair< T >) | grape::IteratorPair< T > | inline |
set_end(T end) (defined in grape::IteratorPair< T >) | grape::IteratorPair< T > | inline |
size() const (defined in grape::IteratorPair< T >) | grape::IteratorPair< T > | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
IteratorPair is a wrapper for begin and end iterators. + More...
+ +#include <iterator_pair.h>
+Public Member Functions | |
+ | IteratorPair (const T begin, const T end) |
+T | begin () const |
+T | end () const |
+IteratorPair & | operator= (const IteratorPair &ip) |
+bool | empty () const |
+void | set_begin (T begin) |
+void | set_end (T end) |
+int | size () const |
+Private Attributes | |
+T | begin_ |
+T | end_ |
IteratorPair is a wrapper for begin and end iterators.
+T | The type of data type will be iterated over. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::LineParserBase< OID_T, VDATA_T, EDATA_T >, including all inherited members.
+LineParserBase()=default (defined in grape::LineParserBase< OID_T, VDATA_T, EDATA_T >) | grape::LineParserBase< OID_T, VDATA_T, EDATA_T > | |
LineParserForEFile(const std::string &line, OID_T &u, OID_T &v, EDATA_T &e_data)=0 | grape::LineParserBase< OID_T, VDATA_T, EDATA_T > | pure virtual |
LineParserForVFile(const std::string &line, OID_T &u, VDATA_T &v_data)=0 | grape::LineParserBase< OID_T, VDATA_T, EDATA_T > | pure virtual |
~LineParserBase()=default (defined in grape::LineParserBase< OID_T, VDATA_T, EDATA_T >) | grape::LineParserBase< OID_T, VDATA_T, EDATA_T > | virtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
LineParserBase is the base class for line parsers. + More...
+ +#include <line_parser_base.h>
+Public Member Functions | |
virtual void | LineParserForEFile (const std::string &line, OID_T &u, OID_T &v, EDATA_T &e_data)=0 |
parser of edge file, to parse source vertex_id, destination vertex_id from a line. More... | |
virtual void | LineParserForVFile (const std::string &line, OID_T &u, VDATA_T &v_data)=0 |
parser of vertex file, to parse vertex_id and vertex_data from a string. More... | |
LineParserBase is the base class for line parsers.
+OID_T | |
VDATA_T | |
EDATA_T |
+
|
+ +pure virtual | +
parser of edge file, to parse source vertex_id, destination vertex_id from a line.
+line | |
u | |
v | |
e_data |
Implemented in grape::TSVLineParser< OID_T, VDATA_T, EDATA_T >.
+ +
+
|
+ +pure virtual | +
parser of vertex file, to parse vertex_id and vertex_data from a string.
+line | |
u | |
v_data |
Implemented in grape::TSVLineParser< OID_T, VDATA_T, EDATA_T >.
+ +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::LocalIOAdaptor, including all inherited members.
+buff (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
Close() override (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | virtual |
Configure(const std::string &key, const std::string &value) override | grape::LocalIOAdaptor | virtual |
enable_partial_read_ (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
file_ (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
FileLocation enum name (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
fs_ (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
index_ (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
IOAdaptorBase()=default (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | |
IsExist() override (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | virtual |
kFileLocationBegin enum value (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
kFileLocationCurrent enum value (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
kFileLocationEnd enum value (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
LINE_SIZE (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | privatestatic |
LocalIOAdaptor(std::string location) (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | explicit |
location_ (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
MakeDirectory(const std::string &path) override (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | virtual |
Open() override (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | virtual |
Open(const char *mode) override (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | virtual |
partial_read_offset_ (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
Read(void *buffer, size_t size) override (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | virtual |
ReadArchive(OutArchive &archive) override (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | virtual |
ReadLine(std::string &line) override (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | virtual |
seek(int64_t offset, FileLocation seek_from) (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
SetPartialRead(int index, int total_parts) override | grape::LocalIOAdaptor | virtual |
setPartialReadImpl() (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
tell() (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
total_parts_ (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
using_std_getline_ (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | private |
Write(void *buffer, size_t size) override (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | virtual |
WriteArchive(InArchive &archive) override (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor | virtual |
~IOAdaptorBase()=default (defined in grape::IOAdaptorBase) | grape::IOAdaptorBase | virtual |
~LocalIOAdaptor() override (defined in grape::LocalIOAdaptor) | grape::LocalIOAdaptor |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A default adaptor to read/write files from local locations. + More...
+ +#include <local_io_adaptor.h>
+Public Member Functions | |
+ | LocalIOAdaptor (std::string location) |
+void | Open () override |
+void | Open (const char *mode) override |
+void | Close () override |
+bool | Configure (const std::string &key, const std::string &value) override |
Configure sub-class specific items. e.g., odps_access_key = abcd; oss_read_concurrency = 16; whether ReadLine for local location uses std::getline;. | |
bool | SetPartialRead (int index, int total_parts) override |
Set each worker only scan related parts of the whole file. More... | |
+bool | ReadLine (std::string &line) override |
+bool | ReadArchive (OutArchive &archive) override |
+bool | WriteArchive (InArchive &archive) override |
+bool | Read (void *buffer, size_t size) override |
+bool | Write (void *buffer, size_t size) override |
+void | MakeDirectory (const std::string &path) override |
+bool | IsExist () override |
+Private Types | |
enum | FileLocation { kFileLocationBegin = 0 +, kFileLocationCurrent = 1 +, kFileLocationEnd = 2 + } |
+Private Member Functions | |
+int64_t | tell () |
+void | seek (int64_t offset, FileLocation seek_from) |
+bool | setPartialReadImpl () |
+Static Private Attributes | |
+static constexpr size_t | LINE_SIZE = 65535 |
A default adaptor to read/write files from local locations.
+
+
|
+ +overridevirtual | +
Set each worker only scan related parts of the whole file.
+for local: read with offset, from a big file.
+ +Implements grape::IOAdaptorBase.
+ +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::LocalVertexMap< OID_T, VID_T, PARTITIONER_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | LocalVertexMap (const CommSpec &comm_spec) |
+void | Init () |
+size_t | GetTotalVertexSize () const |
+size_t | GetInnerVertexSize (fid_t fid) const |
+void | AddVertex (const OID_T &oid) |
+bool | AddVertex (const OID_T &oid, VID_T &gid) |
+bool | GetOid (const VID_T &gid, OID_T &oid) const |
+bool | GetOid (fid_t fid, const VID_T &lid, OID_T &oid) const |
+bool | GetGid (fid_t fid, const OID_T &oid, VID_T &gid) const |
+bool | _GetGid (fid_t fid, const internal_oid_t &oid, VID_T &gid) const |
+bool | GetGid (const OID_T &oid, VID_T &gid) const |
+bool | _GetGid (const internal_oid_t &oid, VID_T &gid) const |
+LocalVertexMapBuilder< OID_T, VID_T, PARTITIONER_T > | GetLocalBuilder () |
+template<typename IOADAPTOR_T > | |
void | Serialize (const std::string &prefix) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (const std::string &prefix, fid_t fid) |
+void | UpdateToBalance (std::vector< VID_T > &vnum_list, std::vector< std::vector< VID_T >> &gid_maps) |
+VID_T | Lid2Gid (fid_t fid, const VID_T &lid) const |
+fid_t | GetFidFromGid (const VID_T &gid) const |
+VID_T | GetLidFromGid (const VID_T &gid) const |
![]() | |
+ | VertexMapBase (const CommSpec &comm_spec) |
+void | SetPartitioner (const HashPartitioner< OID_T > &partitioner) |
+void | SetPartitioner (HashPartitioner< OID_T > &&partitioner) |
+fid_t | GetFragmentNum () const |
+VID_T | Lid2Gid (fid_t fid, const VID_T &lid) const |
+fid_t | GetFidFromGid (const VID_T &gid) const |
+VID_T | GetLidFromGid (const VID_T &gid) const |
+VID_T | MaxVertexNum () const |
+const CommSpec & | GetCommSpec () const |
+void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+fid_t | GetFragmentId (const OID_T &oid) const |
+const HashPartitioner< OID_T > & | GetPartitioner () const |
+HashPartitioner< OID_T > & | GetPartitioner () |
+Private Types | |
+using | base_t = VertexMapBase< OID_T, VID_T, PARTITIONER_T > |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Attributes | |
+std::vector< IdIndexer< internal_oid_t, VID_T > > | oid_to_index_ |
+std::vector< IdIndexer< VID_T, VID_T > > | gid_to_index_ |
+std::vector< VID_T > | vertices_num_ |
+CommSpec | comm_spec_ |
+IdParser< VID_T > | id_parser_ |
+PARTITIONER_T | partitioner_ |
+Friends | |
+template<typename _OID_T , typename _VID_T , typename _PARTITIONER_T > | |
class | LocalVertexMapBuilder |
+Additional Inherited Members | |
![]() | |
+using | partitioner_t = HashPartitioner< OID_T > |
+using | oid_t = OID_T |
+using | vid_t = VID_T |
![]() | |
+CommSpec | comm_spec_ |
+HashPartitioner< OID_T > | partitioner_ |
+IdParser< VID_T > | id_parser_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::LocalVertexMapBuilder< OID_T, VID_T, PARTITIONER_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | add_local_vertex (const internal_oid_t &id, VID_T &gid) |
+void | add_vertex (const internal_oid_t &id) |
+void | finish (LocalVertexMap< OID_T, VID_T, PARTITIONER_T > &vertex_map) |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Member Functions | |
+ | LocalVertexMapBuilder (fid_t fid, std::vector< IdIndexer< internal_oid_t, VID_T >> &oid_to_index, std::vector< IdIndexer< VID_T, VID_T >> &gid_to_index, const PARTITIONER_T &partitioner, const IdParser< VID_T > &id_parser) |
+Private Attributes | |
+fid_t | fid_ |
+std::vector< IdIndexer< internal_oid_t, VID_T > > & | oid_to_index_ |
+std::vector< IdIndexer< VID_T, VID_T > > & | gid_to_index_ |
+const PARTITIONER_T & | partitioner_ |
+const IdParser< VID_T > | id_parser_ |
+Friends | |
+template<typename _OID_T , typename _VID_T , typename _PARTITIONER_T > | |
class | LocalVertexMap |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::MessageBufferPool, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | init (size_t size, size_t chunk) |
+MessageBuffer | take (size_t expect_chunk) |
+MessageBuffer | take_default () |
+void | give (MessageBuffer &&buf) |
+size_t | chunk_size () const |
+Private Attributes | |
+SpinLock | lock_ |
+std::deque< MessageBuffer > | que_ |
+size_t | init_size_ |
+size_t | chunk_size_ |
+size_t | used_size_ |
+size_t | peak_used_size_ |
+size_t | extra_used_size_ |
+size_t | peak_extra_used_size_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::MessageInBuffer, including all inherited members.
+arc_ (defined in grape::MessageInBuffer) | grape::MessageInBuffer | private |
GetMessage(MESSAGE_T &msg) (defined in grape::MessageInBuffer) | grape::MessageInBuffer | inline |
GetMessage(const GRAPH_T &frag, typename GRAPH_T::vertex_t &v, MESSAGE_T &msg) (defined in grape::MessageInBuffer) | grape::MessageInBuffer | inline |
Init(OutArchive &&arc) (defined in grape::MessageInBuffer) | grape::MessageInBuffer | inline |
Init(const MicroBuffer &buf) (defined in grape::MessageInBuffer) | grape::MessageInBuffer | inline |
MessageInBuffer() (defined in grape::MessageInBuffer) | grape::MessageInBuffer | inline |
MessageInBuffer(OutArchive &&arc) (defined in grape::MessageInBuffer) | grape::MessageInBuffer | inlineexplicit |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
MessageInBuffer holds a grape::OutArchive, which contains a bunch of messages. Used By JavaParallelMessageManager to process messages in a parallel manner. + More...
+ +#include <message_in_buffer.h>
+Public Member Functions | |
+ | MessageInBuffer (OutArchive &&arc) |
+void | Init (OutArchive &&arc) |
+void | Init (const MicroBuffer &buf) |
+template<typename MESSAGE_T > | |
bool | GetMessage (MESSAGE_T &msg) |
+template<typename GRAPH_T , typename MESSAGE_T > | |
bool | GetMessage (const GRAPH_T &frag, typename GRAPH_T::vertex_t &v, MESSAGE_T &msg) |
+Private Attributes | |
+OutArchive | arc_ |
MessageInBuffer holds a grape::OutArchive, which contains a bunch of messages. Used By JavaParallelMessageManager to process messages in a parallel manner.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::MessageManagerBase, including all inherited members.
+Finalize()=0 | grape::MessageManagerBase | pure virtual |
FinishARound()=0 | grape::MessageManagerBase | pure virtual |
ForceContinue()=0 | grape::MessageManagerBase | pure virtual |
ForceTerminate(const std::string &info="")=0 | grape::MessageManagerBase | pure virtual |
GetMsgSize() const =0 | grape::MessageManagerBase | pure virtual |
GetTerminateInfo() const =0 | grape::MessageManagerBase | pure virtual |
Init(MPI_Comm comm)=0 | grape::MessageManagerBase | pure virtual |
MessageManagerBase() (defined in grape::MessageManagerBase) | grape::MessageManagerBase | inline |
Start()=0 | grape::MessageManagerBase | pure virtual |
StartARound()=0 | grape::MessageManagerBase | pure virtual |
ToTerminate()=0 | grape::MessageManagerBase | pure virtual |
~MessageManagerBase() (defined in grape::MessageManagerBase) | grape::MessageManagerBase | inlinevirtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
MessageManagerBase is the base class for message managers. + More...
+ +#include <message_manager_base.h>
+Public Member Functions | |
virtual void | Init (MPI_Comm comm)=0 |
Initialize message manager. More... | |
+virtual void | Start ()=0 |
This function will be called before Init step of applications. | |
+virtual void | StartARound ()=0 |
This function will be called before each evaluation step of applications. | |
+virtual void | FinishARound ()=0 |
This function will be called after each evaluation step of applications. | |
+virtual void | Finalize ()=0 |
This function will be called after the evaluation of applications. | |
virtual bool | ToTerminate ()=0 |
This function will be called by worker after a step to determine whether evaluation is terminated. More... | |
virtual size_t | GetMsgSize () const =0 |
Get size of messages sent by this message manager instance. The return value is valid only after FinishARound is called. StartARound will reset the value to zero. More... | |
virtual void | ForceContinue ()=0 |
Force continue to evaluate one more round even if all workers stop sending message. More... | |
virtual void | ForceTerminate (const std::string &info="")=0 |
Force all workers terminate after this round of evaluation. More... | |
virtual const TerminateInfo & | GetTerminateInfo () const =0 |
This function is called to get gathered termination info after evaluation finished. More... | |
MessageManagerBase is the base class for message managers.
+
+
|
+ +pure virtual | +
Force continue to evaluate one more round even if all workers stop sending message.
+This function can be called by applications.
+ +Implemented in grape::ParallelMessageManagerOpt, grape::ParallelMessageManager, grape::DefaultMessageManager, grape::BatchShuffleMessageManager, and grape::AutoParallelMessageManager< FRAG_T >.
+ +
+
|
+ +pure virtual | +
Force all workers terminate after this round of evaluation.
+This function can be called by applications.
info | Termination info. |
Implemented in grape::ParallelMessageManagerOpt, grape::ParallelMessageManager, grape::DefaultMessageManager, and grape::BatchShuffleMessageManager.
+ +
+
|
+ +pure virtual | +
Get size of messages sent by this message manager instance. The return value is valid only after FinishARound is called. StartARound will reset the value to zero.
+Implemented in grape::ParallelMessageManagerOpt, grape::ParallelMessageManager, grape::DefaultMessageManager, and grape::BatchShuffleMessageManager.
+ +
+
|
+ +pure virtual | +
This function is called to get gathered termination info after evaluation finished.
+Implemented in grape::ParallelMessageManagerOpt, grape::ParallelMessageManager, grape::DefaultMessageManager, and grape::BatchShuffleMessageManager.
+ +
+
|
+ +pure virtual | +
Initialize message manager.
+comm | MPI_Comm object. |
Implemented in grape::ParallelMessageManagerOpt, grape::ParallelMessageManager, grape::DefaultMessageManager, and grape::BatchShuffleMessageManager.
+ +
+
|
+ +pure virtual | +
This function will be called by worker after a step to determine whether evaluation is terminated.
+Implemented in grape::ParallelMessageManagerOpt, grape::ParallelMessageManager, grape::DefaultMessageManager, grape::BatchShuffleMessageManager, and grape::AutoParallelMessageManager< FRAG_T >.
+ +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::MutableCSRBuilder< VID_T, Nbr< VID_T, EDATA_T > >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | vertex_range_t = VertexRange< VID_T > |
+Public Member Functions | |
+void | init (VID_T vnum) |
+void | init (const vertex_range_t &range) |
+void | inc_degree (VID_T i) |
+void | resize (VID_T vnum) |
+VID_T | vertex_num () const |
+void | build_offsets () |
+void | add_edge (VID_T src, const nbr_t &nbr) |
+template<typename FUNC_T > | |
void | sort (const FUNC_T &func) |
+void | finish (MutableCSR< VID_T, Nbr< VID_T, EDATA_T >> &ret) |
+Private Types | |
+using | vid_t = VID_T |
+using | nbr_t = Nbr< vid_t, EDATA_T > |
+using | adj_list_t = mutable_csr_impl::AdjList< nbr_t > |
+Private Attributes | |
+VID_T | vnum_ |
+std::vector< int > | capacity_ |
+std::vector< adj_list_t > | adj_lists_ |
+std::vector< nbr_t * > | iter_ |
+std::vector< int > | degree_ |
+mutable_csr_impl::Blob< vid_t, nbr_t > | buffer_ |
+Static Private Attributes | |
+static constexpr double | relax_rate = 1.5 |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::MutableCSR< VID_T, Nbr< VID_T, EDATA_T > >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+VID_T | vertex_num () const |
+bool | empty () const |
+size_t | edge_num () const |
+int | degree (VID_T i) const |
+bool | is_empty (VID_T i) const |
+nbr_t * | get_begin (VID_T i) |
+const nbr_t * | get_begin (VID_T i) const |
+nbr_t * | get_end (VID_T i) |
+const nbr_t * | get_end (VID_T i) const |
+nbr_t * | find (VID_T i, VID_T nbr) |
+const nbr_t * | find (VID_T i, VID_T nbr) const |
+nbr_t * | binary_find (VID_T i, VID_T nbr) |
+const nbr_t * | binary_find (VID_T i, VID_T nbr) const |
+void | reserve_vertices (vid_t vnum) |
+void | reserve_edges_dense (const std::vector< int > °ree_to_add) |
+void | reserve_edges_sparse (const std::map< vid_t, int > °ree_to_add) |
+nbr_t * | put_edge (vid_t src, const nbr_t &value) |
+nbr_t * | put_edge (vid_t src, nbr_t &&value) |
+void | dedup_neighbors (vid_t i) |
+void | sort_neighbors (vid_t i) |
+void | dedup_neighbors_dense (const std::vector< int > °ree_to_add) |
+void | dedup_neighbors_sparse (const std::map< vid_t, int > °ree_to_add) |
+void | sort_neighbors_dense (const std::vector< int > °ree_to_add) |
+void | sort_neighbors_sparse (const std::map< vid_t, int > °ree_to_add) |
+bool | remove_one_with_tomb (vid_t src, vid_t dst) |
+bool | remove_with_tomb (vid_t src, vid_t dst) |
+void | remove_vertex (vid_t i) |
+void | shrink (vid_t i, size_t delta) |
+void | update_one (vid_t src, vid_t dst, const EDATA_T &value) |
+void | update (vid_t src, vid_t dst, const EDATA_T &value) |
+template<typename FUNC_T > | |
bool | remove_one_with_tomb_if (const FUNC_T &func) |
+template<typename FUNC_T > | |
vid_t | remove_with_tomb_if (const FUNC_T &func) |
+template<typename FUNC_T > | |
void | remove_if (const FUNC_T &func) |
+void | remove_tombs (vid_t i) |
+void | clear_edges () |
+template<typename IOADAPTOR_T > | |
void | Serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Private Types | |
+using | vid_t = VID_T |
+using | nbr_t = Nbr< VID_T, EDATA_T > |
+using | adj_list_t = mutable_csr_impl::AdjList< nbr_t > |
+Private Member Functions | |
+void | remove_node (vid_t i) |
+Private Attributes | |
+std::vector< int > | capacity_ |
+std::vector< vid_t > | prev_ |
+std::vector< vid_t > | next_ |
+std::vector< adj_list_t > | adj_lists_ |
+std::vector< mutable_csr_impl::Blob< vid_t, nbr_t > > | buffers_ |
+Static Private Attributes | |
+static constexpr double | relax_rate = 1.5 |
+Friends | |
+template<typename _VID_T , typename _NBR_T > | |
class | MutableCSRBuilder |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | traits_t = MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, VERTEX_MAP_T > |
+using | base_t = CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, traits_t > |
+using | internal_vertex_t = internal::Vertex< VID_T, VDATA_T > |
+using | edge_t = Edge< VID_T, EDATA_T > |
+using | nbr_t = Nbr< VID_T, EDATA_T > |
+using | vertex_t = Vertex< VID_T > |
+using | vid_t = VID_T |
+using | oid_t = OID_T |
+using | vdata_t = VDATA_T |
+using | edata_t = EDATA_T |
+using | vertex_map_t = typename traits_t::vertex_map_t |
+using | IsEdgeCut = std::true_type |
+using | IsVertexCut = std::false_type |
+using | inner_vertices_t = typename traits_t::inner_vertices_t |
+using | outer_vertices_t = typename traits_t::outer_vertices_t |
+using | vertices_t = typename traits_t::vertices_t |
+using | fragment_adj_list_t = typename traits_t::fragment_adj_list_t |
+using | fragment_const_adj_list_t = typename traits_t::fragment_const_adj_list_t |
+template<typename T > | |
using | inner_vertex_array_t = VertexArray< inner_vertices_t, T > |
+template<typename T > | |
using | outer_vertex_array_t = VertexArray< outer_vertices_t, T > |
+template<typename T > | |
using | vertex_array_t = VertexArray< vertices_t, T > |
+using | adj_list_t = typename base_t::adj_list_t |
+using | const_adj_list_t = typename base_t::const_adj_list_t |
+Public Member Functions | |
+ | MutableEdgecutFragment (std::shared_ptr< vertex_map_t > vm_ptr) |
+void | Init (fid_t fid, bool directed, std::vector< internal_vertex_t > &vertices, std::vector< edge_t > &edges) override |
+void | Mutate (Mutation< vid_t, vdata_t, edata_t > &mutation) |
+template<typename IOADAPTOR_T > | |
void | Serialize (const std::string &prefix) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (const std::string &prefix, const fid_t fid) |
+void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf) override |
+const VDATA_T & | GetData (const vertex_t &v) const override |
+void | SetData (const vertex_t &v, const VDATA_T &val) override |
+bool | OuterVertexGid2Lid (VID_T gid, VID_T &lid) const override |
+VID_T | GetOuterVertexGid (vertex_t v) const override |
+bool | Gid2Vertex (const VID_T &gid, vertex_t &v) const override |
+VID_T | Vertex2Gid (const vertex_t &v) const override |
+fragment_adj_list_t | GetOutgoingAdjList (const vertex_t &v, fid_t dst_fid) override |
+fragment_const_adj_list_t | GetOutgoingAdjList (const vertex_t &v, fid_t dst_fid) const override |
+fragment_adj_list_t | GetIncomingAdjList (const vertex_t &v, fid_t dst_fid) override |
+fragment_const_adj_list_t | GetIncomingAdjList (const vertex_t &v, fid_t dst_fid) const override |
+adj_list_t | GetIncomingInnerVertexAdjList (const vertex_t &v) override |
+const_adj_list_t | GetIncomingInnerVertexAdjList (const vertex_t &v) const override |
+adj_list_t | GetIncomingOuterVertexAdjList (const vertex_t &v) override |
+const_adj_list_t | GetIncomingOuterVertexAdjList (const vertex_t &v) const override |
+adj_list_t | GetOutgoingInnerVertexAdjList (const vertex_t &v) override |
+const_adj_list_t | GetOutgoingInnerVertexAdjList (const vertex_t &v) const override |
+adj_list_t | GetOutgoingOuterVertexAdjList (const vertex_t &v) override |
+const_adj_list_t | GetOutgoingOuterVertexAdjList (const vertex_t &v) const override |
+void | buildCSR (const typename csr_builder_t::vertex_range_t &vertex_range, std::vector< Edge< VID_T, EDATA_T >> &edges, LoadStrategy load_strategy) |
+bool | IsInnerVertexGid (VID_T gid) const |
+bool | Gid2Lid (VID_T gid, VID_T &lid) const |
bool | IsInnerVertex (const Vertex< VID_T > &v) const |
Check if vertex v is inner vertex of this fragment. More... | |
adj_list_t | GetIncomingAdjList (const vertex_t &v) override |
Returns the incoming adjacent vertices of v. More... | |
const_adj_list_t | GetIncomingAdjList (const vertex_t &v) const override |
Returns the incoming adjacent vertices of v. More... | |
adj_list_t | GetOutgoingAdjList (const vertex_t &v) override |
Returns the outgoing adjacent vertices of v. More... | |
const_adj_list_t | GetOutgoingAdjList (const vertex_t &v) const override |
Returns the outgoing adjacent vertices of v. More... | |
+Static Public Member Functions | |
+static std::string | type_info () |
+Public Attributes | |
+csr_t | ie_ |
+csr_t | oe_ |
+Static Public Attributes | |
+static constexpr LoadStrategy | load_strategy = _load_strategy |
+Protected Member Functions | |
+nbr_t * | get_ie_begin (const vertex_t &v) |
+const nbr_t * | get_ie_begin (const vertex_t &v) const |
+nbr_t * | get_ie_end (const vertex_t &v) |
+const nbr_t * | get_ie_end (const vertex_t &v) const |
+nbr_t * | get_oe_begin (const vertex_t &v) |
+const nbr_t * | get_oe_begin (const vertex_t &v) const |
+nbr_t * | get_oe_end (const vertex_t &v) |
+const nbr_t * | get_oe_end (const vertex_t &v) const |
+Private Attributes | |
+VID_T | ovnum_ |
+ska::flat_hash_map< VID_T, VID_T > | ovg2i_ |
+std::vector< VID_T > | ovgid_ |
+Array< VDATA_T, Allocator< VDATA_T > > | ivdata_ |
+Array< VDATA_T, Allocator< VDATA_T > > | ovdata_ |
+VertexArray< inner_vertices_t, nbr_t * > | iespliter_ |
+VertexArray< inner_vertices_t, nbr_t * > | oespliter_ |
+
|
+ +inlineoverride | +
Returns the incoming adjacent vertices of v.
+v | Input vertex. |
+
|
+ +inlineoverride | +
Returns the incoming adjacent vertices of v.
+v | Input vertex. |
+
|
+ +inlineoverride | +
Returns the outgoing adjacent vertices of v.
+v | Input vertex. |
+
|
+ +inlineoverride | +
Returns the outgoing adjacent vertices of v.
+v | Input vertex. |
+
|
+ +inline | +
Check if vertex v is inner vertex of this fragment.
+v | Input vertex. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::MutationContext< FRAG_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | MutationContext (const fragment_t &fragment) |
+void | add_vertex (const oid_t &id, const vdata_t &data) |
+void | add_edge (const oid_t &src, const oid_t &dst, const edata_t &data) |
+void | add_edge (const vertex_t &src, const vertex_t &dst, const edata_t &data) |
+void | update_vertex (const oid_t &id, const vdata_t &data) |
+void | update_vertex (const vertex_t &v, const vdata_t &data) |
+void | update_edge (const oid_t &src, const oid_t &dst, const edata_t &data) |
+void | update_edge (const vertex_t &src, const vertex_t &dst, const edata_t &data) |
+void | remove_vertex (const oid_t &id) |
+void | remove_vertex (const vertex_t &v) |
+void | remove_edge (const oid_t &src, const oid_t &dst) |
+void | remove_edge (const vertex_t &src, const vertex_t &dst) |
+void | apply_mutation (std::shared_ptr< fragment_t > fragment, const CommSpec &comm_spec) |
![]() | |
virtual void | Output (std::ostream &os) |
Output function to implement for result output. More... | |
+Private Types | |
+using | fragment_t = FRAG_T |
+using | oid_t = typename FRAG_T::oid_t |
+using | vid_t = typename FRAG_T::vid_t |
+using | vdata_t = typename FRAG_T::vdata_t |
+using | edata_t = typename FRAG_T::edata_t |
+using | vertex_map_t = typename FRAG_T::vertex_map_t |
+using | partitioner_t = typename vertex_map_t::partitioner_t |
+using | vertex_t = typename FRAG_T::vertex_t |
+using | oid_list = typename ShuffleBuffer< oid_t >::type |
+using | vid_list = typename ShuffleBuffer< vid_t >::type |
+using | vdata_list = typename ShuffleBuffer< vdata_t >::type |
+using | edata_list = typename ShuffleBuffer< edata_t >::type |
+Private Attributes | |
+const fragment_t & | fragment_ |
+const std::shared_ptr< vertex_map_t > | vm_ptr_ |
+const partitioner_t & | partitioner_ |
+std::vector< oid_list > | id_to_add_ |
+std::vector< vdata_list > | vdata_to_add_ |
+std::vector< oid_list > | esrc_to_add_ |
+std::vector< oid_list > | edst_to_add_ |
+std::vector< edata_list > | edata_to_add_ |
+std::vector< internal::Vertex< vid_t, vdata_t > > | parsed_vertices_to_update_ |
+std::vector< oid_list > | id_to_update_ |
+std::vector< vdata_list > | vdata_to_update_ |
+std::vector< oid_list > | esrc_to_update_ |
+std::vector< oid_list > | edst_to_update_ |
+std::vector< edata_list > | edata_to_update_ |
+std::vector< vid_t > | parsed_vid_to_remove_ |
+std::vector< oid_list > | id_to_remove_ |
+std::vector< oid_list > | esrc_to_remove_ |
+std::vector< oid_list > | edst_to_remove_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::NonblockingQueue< T >, including all inherited members.
+Clear() (defined in grape::NonblockingQueue< T >) | grape::NonblockingQueue< T > | inline |
Get(T &item) | grape::NonblockingQueue< T > | inline |
lock_ (defined in grape::NonblockingQueue< T >) | grape::NonblockingQueue< T > | private |
NonblockingQueue() (defined in grape::NonblockingQueue< T >) | grape::NonblockingQueue< T > | inline |
Put(const T &item) | grape::NonblockingQueue< T > | inline |
Put(T &&item) | grape::NonblockingQueue< T > | inline |
queue_ (defined in grape::NonblockingQueue< T >) | grape::NonblockingQueue< T > | private |
~NonblockingQueue() (defined in grape::NonblockingQueue< T >) | grape::NonblockingQueue< T > | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A concurrent queue guarded by a spinlock and can be accessed by multi-producers and multi-consumers simultaneously. + More...
+ +#include <concurrent_queue.h>
+Public Member Functions | |
void | Put (const T &item) |
Put an entity into this queue. More... | |
void | Put (T &&item) |
Put an entity into this queue. More... | |
bool | Get (T &item) |
Get an entity from this queue. More... | |
+void | Clear () |
+Private Attributes | |
+std::deque< T > | queue_ |
+SpinLock | lock_ |
A concurrent queue guarded by a spinlock and can be accessed by multi-producers and multi-consumers simultaneously.
+T | Type of entities in the queue. |
+
|
+ +inline | +
Get an entity from this queue.
+This function won't be blocked.
+item | Reference of an entity to hold the got data. |
+
|
+ +inline | +
Put an entity into this queue.
+This function won't be blocked.
+item | The entity to be put. |
+
|
+ +inline | +
Put an entity into this queue.
+This function won't be blocked.
+item | The entity to be put. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::OutArchive, including all inherited members.
+Allocate(size_t size) (defined in grape::OutArchive) | grape::OutArchive | inline |
begin_ (defined in grape::OutArchive) | grape::OutArchive | |
buffer_ (defined in grape::OutArchive) | grape::OutArchive | |
Clear() (defined in grape::OutArchive) | grape::OutArchive | inline |
Empty() const (defined in grape::OutArchive) | grape::OutArchive | inline |
end_ (defined in grape::OutArchive) | grape::OutArchive | |
GetBuffer() (defined in grape::OutArchive) | grape::OutArchive | inline |
GetBuffer() const (defined in grape::OutArchive) | grape::OutArchive | inline |
GetBytes(unsigned int size) (defined in grape::OutArchive) | grape::OutArchive | inline |
GetSize() const (defined in grape::OutArchive) | grape::OutArchive | inline |
operator=(InArchive &&rhs) (defined in grape::OutArchive) | grape::OutArchive | inline |
operator=(OutArchive &&rhs) (defined in grape::OutArchive) | grape::OutArchive | inline |
OutArchive() (defined in grape::OutArchive) | grape::OutArchive | inline |
OutArchive(const OutArchive &rhs) (defined in grape::OutArchive) | grape::OutArchive | inline |
OutArchive(size_t size) (defined in grape::OutArchive) | grape::OutArchive | inlineexplicit |
OutArchive(OutArchive &&oa) (defined in grape::OutArchive) | grape::OutArchive | inline |
OutArchive(InArchive &&ia) (defined in grape::OutArchive) | grape::OutArchive | inlineexplicit |
Peek(T &value) (defined in grape::OutArchive) | grape::OutArchive | inline |
Rewind() (defined in grape::OutArchive) | grape::OutArchive | inline |
SetSlice(char *buffer, size_t size) (defined in grape::OutArchive) | grape::OutArchive | inline |
~OutArchive() (defined in grape::OutArchive) | grape::OutArchive | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
OutArchive is an archived object for deserializing objects. + More...
+ +#include <out_archive.h>
+Public Member Functions | |
+ | OutArchive (const OutArchive &rhs) |
+ | OutArchive (size_t size) |
+ | OutArchive (OutArchive &&oa) |
+ | OutArchive (InArchive &&ia) |
+OutArchive & | operator= (InArchive &&rhs) |
+OutArchive & | operator= (OutArchive &&rhs) |
+void | Clear () |
+void | Allocate (size_t size) |
+void | Rewind () |
+void | SetSlice (char *buffer, size_t size) |
+char * | GetBuffer () |
+const char * | GetBuffer () const |
+size_t | GetSize () const |
+bool | Empty () const |
+void * | GetBytes (unsigned int size) |
+template<typename T > | |
void | Peek (T &value) |
+Public Attributes | |
+std::vector< char > | buffer_ |
+char * | begin_ |
+char * | end_ |
OutArchive is an archived object for deserializing objects.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ParallelAppBase< FRAG_T, CONTEXT_T, MESSAGE_MANAGER_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
ParallelAppBase is a base class for parallel apps. Users can process messages in a more flexible way in this kind of app. It contains an ParallelMessageManager to process messages, which enables send/receive messages during computation. This strategy improves performance by overlapping the communication time and the evaluation time. + More...
+ +#include <parallel_app_base.h>
+Public Types | |
+using | message_manager_t = MESSAGE_MANAGER_T |
+Public Member Functions | |
virtual void | PEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0 |
Partial evaluation to implement. More... | |
virtual void | IncEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0 |
Incremental evaluation to implement. More... | |
+virtual void | EstimateMessageSize (const FRAG_T &graph, size_t &send_size, size_t &recv_size) |
+Static Public Attributes | |
+static constexpr bool | need_split_edges = false |
+static constexpr bool | need_split_edges_by_fragment = false |
static constexpr MessageStrategy | message_strategy |
+static constexpr LoadStrategy | load_strategy = LoadStrategy::kOnlyOut |
ParallelAppBase is a base class for parallel apps. Users can process messages in a more flexible way in this kind of app. It contains an ParallelMessageManager to process messages, which enables send/receive messages during computation. This strategy improves performance by overlapping the communication time and the evaluation time.
+FRAG_T | |
CONTEXT_T |
+
|
+ +pure virtual | +
Incremental evaluation to implement.
+graph | |
context | |
messages |
+
|
+ +pure virtual | +
Partial evaluation to implement.
+graph | |
context | |
messages |
+
|
+ +staticconstexpr | +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ParallelEngine, including all inherited members.
+bitwise_iterate(VID_T begin, VID_T end, const Bitset &bitset, VID_T offset, int tid, const ITER_FUNC_T &iter_func) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
ForEach(const VertexRange< VID_T > &range, const ITER_FUNC_T &iter_func, int chunk_size=1024) | grape::ParallelEngine | inline |
ForEach(const DualVertexRange< VID_T > &range, const ITER_FUNC_T &iter_func, int chunk_size=1024) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
ForEach(const VertexVector< VID_T > &vertices, const ITER_FUNC_T &iter_func, int chunk_size=1024) | grape::ParallelEngine | inline |
ForEach(const ITERATOR_T &begin, const ITERATOR_T &end, const ITER_FUNC_T &iter_func, int chunk_size=1024) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
ForEach(const VertexRange< VID_T > &range, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=1024) | grape::ParallelEngine | inline |
ForEach(const DualVertexRange< VID_T > &range, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=1024) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
ForEach(const VertexVector< VID_T > &vertices, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=1024) | grape::ParallelEngine | inline |
ForEach(const ITERATOR_T &begin, const ITERATOR_T &end, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=1024) | grape::ParallelEngine | inline |
ForEach(const DenseVertexSet< VertexRange< VID_T >> &dense_set, const ITER_FUNC_T &iter_func, int chunk_size=1024) | grape::ParallelEngine | inline |
ForEach(const DenseVertexSet< VertexVector< VID_T >> &dense_set, const ITER_FUNC_T &iter_func, int chunk_size=1024) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
ForEach(const DenseVertexSet< DualVertexRange< VID_T >> &dense_set, const ITER_FUNC_T &iter_func, int chunk_size=1024) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
ForEach(const DenseVertexSet< VertexRange< VID_T >> &dense_set, const VertexRange< VID_T > &range, const ITER_FUNC_T &iter_func, int chunk_size=1024) | grape::ParallelEngine | inline |
ForEach(const DenseVertexSet< VertexVector< VID_T >> &dense_set, const VertexRange< VID_T > &range, const ITER_FUNC_T &iter_func, int chunk_size=1024) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
ForEach(const DenseVertexSet< DualVertexRange< VID_T >> &dense_set, const VertexRange< VID_T > &range, const ITER_FUNC_T &iter_func, int chunk_size=1024) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
ForEach(const DenseVertexSet< VERTEX_SET_T > &dense_set, const VertexVector< VID_T > &vertices, const ITER_FUNC_T &iter_func, int chunk_size=1024) | grape::ParallelEngine | inline |
ForEach(const DenseVertexSet< VertexRange< VID_T >> &dense_set, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=10 *1024) | grape::ParallelEngine | inline |
ForEach(const DenseVertexSet< VertexVector< VID_T >> &dense_set, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=10 *1024) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
ForEach(const DenseVertexSet< DualVertexRange< VID_T >> &dense_set, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=10 *1024) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
GetThreadPool() (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
InitParallelEngine(const ParallelEngineSpec &spec=DefaultParallelEngineSpec()) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
parallel_iterate(VID_T begin, VID_T end, const Bitset &bitset, VID_T offset, const ITER_FUNC_T &iter_func, int chunk_size) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
ParallelEngine() (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
thread_num() (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
thread_num_ (defined in grape::ParallelEngine) | grape::ParallelEngine | private |
thread_pool_ (defined in grape::ParallelEngine) | grape::ParallelEngine | private |
wordwise_iterate(VID_T begin, VID_T end, const Bitset &bitset, VID_T offset, int tid, const ITER_FUNC_T &iter_func) (defined in grape::ParallelEngine) | grape::ParallelEngine | inline |
~ParallelEngine() (defined in grape::ParallelEngine) | grape::ParallelEngine | inlinevirtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | InitParallelEngine (const ParallelEngineSpec &spec=DefaultParallelEngineSpec()) |
+ThreadPool & | GetThreadPool () |
template<typename ITER_FUNC_T , typename VID_T > | |
void | ForEach (const VertexRange< VID_T > &range, const ITER_FUNC_T &iter_func, int chunk_size=1024) |
Iterate on vertexes of a VertexRange concurrently. More... | |
+template<typename ITER_FUNC_T , typename VID_T > | |
void | ForEach (const DualVertexRange< VID_T > &range, const ITER_FUNC_T &iter_func, int chunk_size=1024) |
template<typename ITER_FUNC_T , typename VID_T > | |
void | ForEach (const VertexVector< VID_T > &vertices, const ITER_FUNC_T &iter_func, int chunk_size=1024) |
Iterate on discontinuous vertices concurrently. More... | |
+template<typename ITERATOR_T , typename ITER_FUNC_T > | |
void | ForEach (const ITERATOR_T &begin, const ITERATOR_T &end, const ITER_FUNC_T &iter_func, int chunk_size=1024) |
template<typename INIT_FUNC_T , typename ITER_FUNC_T , typename FINALIZE_FUNC_T , typename VID_T > | |
void | ForEach (const VertexRange< VID_T > &range, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=1024) |
Iterate on vertexes of a VertexRange concurrently, initialize function and finalize function can be provided to each thread. More... | |
+template<typename INIT_FUNC_T , typename ITER_FUNC_T , typename FINALIZE_FUNC_T , typename VID_T > | |
void | ForEach (const DualVertexRange< VID_T > &range, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=1024) |
template<typename INIT_FUNC_T , typename ITER_FUNC_T , typename FINALIZE_FUNC_T , typename VID_T > | |
void | ForEach (const VertexVector< VID_T > &vertices, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=1024) |
Iterate on discontinuous vertices concurrently, initialize function and finalize function can be provided to each thread. More... | |
template<typename ITERATOR_T , typename INIT_FUNC_T , typename ITER_FUNC_T , typename FINALIZE_FUNC_T > | |
void | ForEach (const ITERATOR_T &begin, const ITERATOR_T &end, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=1024) |
Iterate a range specified by iterator pair concurrently. More... | |
template<typename ITER_FUNC_T , typename VID_T > | |
void | ForEach (const DenseVertexSet< VertexRange< VID_T >> &dense_set, const ITER_FUNC_T &iter_func, int chunk_size=1024) |
Iterate on vertexes of a DenseVertexSet concurrently. More... | |
+template<typename ITER_FUNC_T , typename VID_T > | |
void | ForEach (const DenseVertexSet< VertexVector< VID_T >> &dense_set, const ITER_FUNC_T &iter_func, int chunk_size=1024) |
+template<typename ITER_FUNC_T , typename VID_T > | |
void | ForEach (const DenseVertexSet< DualVertexRange< VID_T >> &dense_set, const ITER_FUNC_T &iter_func, int chunk_size=1024) |
+template<typename ITER_FUNC_T , typename VID_T > | |
void | bitwise_iterate (VID_T begin, VID_T end, const Bitset &bitset, VID_T offset, int tid, const ITER_FUNC_T &iter_func) |
+template<typename ITER_FUNC_T , typename VID_T > | |
void | wordwise_iterate (VID_T begin, VID_T end, const Bitset &bitset, VID_T offset, int tid, const ITER_FUNC_T &iter_func) |
+template<typename ITER_FUNC_T , typename VID_T > | |
void | parallel_iterate (VID_T begin, VID_T end, const Bitset &bitset, VID_T offset, const ITER_FUNC_T &iter_func, int chunk_size) |
template<typename ITER_FUNC_T , typename VID_T > | |
void | ForEach (const DenseVertexSet< VertexRange< VID_T >> &dense_set, const VertexRange< VID_T > &range, const ITER_FUNC_T &iter_func, int chunk_size=1024) |
Iterate on vertexes of a DenseVertexSet concurrently. More... | |
+template<typename ITER_FUNC_T , typename VID_T > | |
void | ForEach (const DenseVertexSet< VertexVector< VID_T >> &dense_set, const VertexRange< VID_T > &range, const ITER_FUNC_T &iter_func, int chunk_size=1024) |
+template<typename ITER_FUNC_T , typename VID_T > | |
void | ForEach (const DenseVertexSet< DualVertexRange< VID_T >> &dense_set, const VertexRange< VID_T > &range, const ITER_FUNC_T &iter_func, int chunk_size=1024) |
template<typename ITER_FUNC_T , typename VID_T , typename VERTEX_SET_T > | |
void | ForEach (const DenseVertexSet< VERTEX_SET_T > &dense_set, const VertexVector< VID_T > &vertices, const ITER_FUNC_T &iter_func, int chunk_size=1024) |
Iterate on vertexes of a DenseVertexSet concurrently. More... | |
template<typename INIT_FUNC_T , typename ITER_FUNC_T , typename FINALIZE_FUNC_T , typename VID_T > | |
void | ForEach (const DenseVertexSet< VertexRange< VID_T >> &dense_set, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=10 *1024) |
Iterate on vertexes of a DenseVertexSet concurrently, initialize function and finalize function can be provided to each thread. More... | |
+template<typename INIT_FUNC_T , typename ITER_FUNC_T , typename FINALIZE_FUNC_T , typename VID_T > | |
void | ForEach (const DenseVertexSet< VertexVector< VID_T >> &dense_set, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=10 *1024) |
+template<typename INIT_FUNC_T , typename ITER_FUNC_T , typename FINALIZE_FUNC_T , typename VID_T > | |
void | ForEach (const DenseVertexSet< DualVertexRange< VID_T >> &dense_set, const INIT_FUNC_T &init_func, const ITER_FUNC_T &iter_func, const FINALIZE_FUNC_T &finalize_func, int chunk_size=10 *1024) |
+uint32_t | thread_num () |
+Private Attributes | |
+ThreadPool | thread_pool_ |
+uint32_t | thread_num_ |
+
|
+ +inline | +
Iterate on vertexes of a DenseVertexSet concurrently.
+ITER_FUNC_T | Type of vertex program. |
VID_T | Type of vertex id. |
dense_set | The vertex set to be iterated. |
vertices | The vertices to be iterated. |
iter_func | Vertex program to be applied on each vertex. |
chunk_size | Vertices granularity to be scheduled by threads. |
+
|
+ +inline | +
Iterate on vertexes of a DenseVertexSet concurrently, initialize function and finalize function can be provided to each thread.
+INIT_FUNC_T | Type of thread init program. |
ITER_FUNC_T | Type of vertex program. |
FINALIZE_FUNC_T | Type of thread finalize program. |
VID_T | Type of vertex id. |
dense_set | The vertex set to be iterated. |
init_func | Initializing function to be invoked by each thread before iterating on vertexes. |
iter_func | Vertex program to be applied on each vertex. |
finalize_func | Finalizing function to be invoked by each thread after iterating on vertexes. |
chunk_size | Vertices granularity to be scheduled by threads. |
+
|
+ +inline | +
Iterate on vertexes of a DenseVertexSet concurrently.
+ITER_FUNC_T | Type of vertex program. |
VID_T | Type of vertex id. |
dense_set | The vertex set to be iterated. |
iter_func | Vertex program to be applied on each vertex. |
chunk_size | Vertices granularity to be scheduled by threads. |
+
|
+ +inline | +
Iterate on vertexes of a DenseVertexSet concurrently.
+ITER_FUNC_T | Type of vertex program. |
VID_T | Type of vertex id. |
dense_set | The vertex set to be iterated. |
range | The vertex range to be iterated. |
iter_func | Vertex program to be applied on each vertex. |
chunk_size | Vertices granularity to be scheduled by threads. |
+
|
+ +inline | +
Iterate a range specified by iterator pair concurrently.
+ITER_FUNC_T | Type of vertex program. |
ITERATOR_T | Type of range iterator. |
begin | The begin iterator of range. |
end | The end iterator of range. |
init_func | Initializing function to be invoked by each thread before iterating on vertexes. |
iter_func | Vertex program to be applied on each vertex. |
finalize_func | Finalizing function to be invoked by each thread after iterating on vertexes. |
chunk_size | Vertices granularity to be scheduled by threads. |
+
|
+ +inline | +
Iterate on vertexes of a VertexRange concurrently, initialize function and finalize function can be provided to each thread.
+INIT_FUNC_T | Type of thread init program. |
ITER_FUNC_T | Type of vertex program. |
FINALIZE_FUNC_T | Type of thread finalize program. |
VID_T | Type of vertex id. |
range | The vertex range to be iterated. |
init_func | Initializing function to be invoked by each thread before iterating on vertexes. |
iter_func | Vertex program to be applied on each vertex. |
finalize_func | Finalizing function to be invoked by each thread after iterating on vertexes. |
chunk_size | Vertices granularity to be scheduled by threads. |
+
|
+ +inline | +
Iterate on vertexes of a VertexRange concurrently.
+ITER_FUNC_T | Type of vertex program. |
VID_T | Type of vertex id. |
range | The vertex range to be iterated. |
iter_func | Vertex program to be applied on each vertex. |
chunk_size | Vertices granularity to be scheduled by threads. |
+
|
+ +inline | +
Iterate on discontinuous vertices concurrently, initialize function and finalize function can be provided to each thread.
+INIT_FUNC_T | Type of thread init program. |
ITER_FUNC_T | Type of vertex program. |
FINALIZE_FUNC_T | Type of thread finalize program. |
VID_T | Type of vertex id. |
vertices | The vertex array to be iterated. |
init_func | Initializing function to be invoked by each thread before iterating on vertexes. |
iter_func | Vertex program to be applied on each vertex. |
finalize_func | Finalizing function to be invoked by each thread after iterating on vertexes. |
chunk_size | Vertices granularity to be scheduled by threads. |
+
|
+ +inline | +
Iterate on discontinuous vertices concurrently.
+ITER_FUNC_T | Type of vertex program. |
VID_T | Type of vertex id. |
vertices | The vertex array to be iterated. |
iter_func | Vertex program to be applied on each vertex. |
chunk_size | Vertices granularity to be scheduled by threads. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ParallelMessageManager, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A kind of parallel message manager. + More...
+ +#include <parallel_message_manager.h>
+Public Member Functions | |
+void | Init (MPI_Comm comm) override |
Inherit. | |
+void | Start () override |
Inherit. | |
+void | StartARound () override |
Inherit. | |
+void | FinishARound () override |
Inherit. | |
+bool | ToTerminate () override |
Inherit. | |
+void | Finalize () override |
Inherit. | |
+void | ForceContinue () override |
Inherit. | |
+void | ForceTerminate (const std::string &terminate_info) override |
Inherit. | |
+const TerminateInfo & | GetTerminateInfo () const override |
Inherit. | |
+size_t | GetMsgSize () const override |
Inherit. | |
void | InitChannels (int channel_num=1, size_t block_size=default_msg_send_block_size, size_t block_cap=default_msg_send_block_capacity) |
Init a set of channels, each channel is a thread local message buffer. More... | |
+std::vector< ThreadLocalMessageBuffer< ParallelMessageManager > > & | Channels () |
void | SendRawMsgByFid (fid_t fid, InArchive &&arc) |
Send a buffer to a fragment. More... | |
template<typename MESSAGE_T > | |
void | SendToFragment (fid_t dst_fid, const MESSAGE_T &msg, int channel_id=0) |
Send message to a fragment. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
SyncStateOnOuterVertex on a channel. More... | |
+template<typename GRAPH_T > | |
void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, int channel_id=0) |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughIEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
SendMsgThroughIEdges on a channel. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughOEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
SendMsgThroughOEdges on a channel. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
SendMsgThroughEdges on a channel. More... | |
bool | GetMessageInBuffer (MessageInBuffer &buf) |
Get a bunch of messages, stored in a MessageInBuffer. More... | |
template<typename GRAPH_T , typename MESSAGE_T , typename FUNC_T > | |
void | ParallelProcess (int thread_num, const GRAPH_T &frag, const FUNC_T &func) |
Parallel process all incoming messages with given function of last round. More... | |
template<typename MESSAGE_T , typename FUNC_T > | |
void | ParallelProcess (int thread_num, const FUNC_T &func) |
Parallel process all incoming messages with given function of last round. More... | |
+Private Attributes | |
+fid_t | fid_ |
+fid_t | fnum_ |
+CommSpec | comm_spec_ |
+MPI_Comm | comm_ |
+std::vector< InArchive > | to_self_ |
+std::vector< InArchive > | to_others_ |
+std::vector< ThreadLocalMessageBuffer< ParallelMessageManager > > | channels_ |
+int | round_ |
+BlockingQueue< std::pair< fid_t, InArchive > > | sending_queue_ |
+std::thread | send_thread_ |
+std::array< BlockingQueue< OutArchive >, 2 > | recv_queues_ |
+std::thread | recv_thread_ |
+bool | force_continue_ |
+size_t | sent_size_ |
+bool | force_terminate_ |
+TerminateInfo | terminate_info_ |
+Static Private Attributes | |
+static constexpr size_t | default_msg_send_block_size = 2 * 1023 * 1024 |
+static constexpr size_t | default_msg_send_block_capacity = 2 * 1023 * 1024 |
A kind of parallel message manager.
+ParallelMessageManager support multi-threads to send messages concurrently with channels. Each channel contains a thread local message buffer.
+For each thread local message buffer, when accumulated a given amount of messages, the buffer will be sent through MPI.
+After a round of evaluation, there is a global barrier to determine whether the fixed point is reached.
+
+
|
+ +inline | +
Get a bunch of messages, stored in a MessageInBuffer.
+buf | Message buffer which holds a grape::OutArchive. |
+
|
+ +inline | +
Init a set of channels, each channel is a thread local message buffer.
+channel_num | Number of channels. |
block_size | Size of each channel. |
block_cap | Capacity of each channel. |
+
|
+ +inline | +
Parallel process all incoming messages with given function of last round.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
FUNC_T | Function type. |
thread_num | Number of threads. |
frag | |
func |
+
|
+ +inline | +
Parallel process all incoming messages with given function of last round.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
FUNC_T | Function type. |
thread_num | Number of threads. |
frag | |
func |
+
|
+ +inline | +
SendMsgThroughEdges on a channel.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | Source vertex. |
msg | |
channel_id |
+
|
+ +inline | +
SendMsgThroughIEdges on a channel.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | Source vertex. |
msg | |
channel_id |
+
|
+ +inline | +
SendMsgThroughOEdges on a channel.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | Source vertex. |
msg | |
channel_id |
+
|
+ +inline | +
Send a buffer to a fragment.
+fid | Destination fragment id. |
arc | Message buffer. |
+
|
+ +inline | +
Send message to a fragment.
+MESSAGE_T | Message type. |
dst_fid | Destination fragment id. |
msg | |
channelId |
+
|
+ +inline | +
SyncStateOnOuterVertex on a channel.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | Source vertex. |
msg | |
channel_id |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ParallelMessageManagerOpt, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A optimized version of parallel message manager. + More...
+ +#include <parallel_message_manager_opt.h>
+Public Member Functions | |
+void | Init (MPI_Comm comm) override |
Inherit. | |
+MessageBufferPool & | GetPool () |
+void | Start () override |
Inherit. | |
+void | StartARound () override |
Inherit. | |
+void | FinishARound () override |
Inherit. | |
+bool | ToTerminate () override |
Inherit. | |
+void | Finalize () override |
Inherit. | |
+void | ForceContinue () override |
Inherit. | |
+void | ForceTerminate (const std::string &terminate_info) override |
Inherit. | |
+const TerminateInfo & | GetTerminateInfo () const override |
Inherit. | |
+size_t | GetMsgSize () const override |
Inherit. | |
void | InitChannels (int channel_num=1, size_t block_size=default_msg_send_block_size, size_t block_cap=default_msg_send_block_capacity) |
Init a set of channels, each channel is a thread local message buffer. More... | |
+std::vector< ThreadLocalMessageBufferOpt< ParallelMessageManagerOpt > > & | Channels () |
void | SendMicroBufferByFid (fid_t fid, MicroBuffer &&arc) |
Send a buffer to a fragment. More... | |
template<typename MESSAGE_T > | |
void | SendToFragment (fid_t dst_fid, const MESSAGE_T &msg, int channel_id=0) |
Send message to a fragment. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
SyncStateOnOuterVertex on a channel. More... | |
+template<typename GRAPH_T > | |
void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, int channel_id=0) |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughIEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
SendMsgThroughIEdges on a channel. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughOEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
SendMsgThroughOEdges on a channel. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg, int channel_id=0) |
SendMsgThroughEdges on a channel. More... | |
bool | GetMessageInBuffer (MessageInBuffer &buf) |
Get a bunch of messages, stored in a MessageInBuffer. More... | |
template<typename GRAPH_T , typename MESSAGE_T , typename FUNC_T > | |
void | ParallelProcess (int thread_num, const GRAPH_T &frag, const FUNC_T &func) |
Parallel process all incoming messages with given function of last round. More... | |
+template<typename GRAPH_T , typename MESSAGE_T , typename FUNC_T > | |
size_t | ParallelProcessCount (int thread_num, const GRAPH_T &frag, const FUNC_T &func) |
template<typename MESSAGE_T , typename FUNC_T > | |
void | ParallelProcess (int thread_num, const FUNC_T &func) |
Parallel process all incoming messages with given function of last round. More... | |
+Private Attributes | |
+fid_t | fid_ |
+fid_t | fnum_ |
+CommSpec | comm_spec_ |
+MPI_Comm | comm_ |
+std::vector< MicroBuffer > | to_self_ |
+std::vector< ThreadLocalMessageBufferOpt< ParallelMessageManagerOpt > > | channels_ |
+int | round_ |
+BlockingQueue< std::pair< fid_t, MicroBuffer > > | sending_queue_ |
+std::thread | send_thread_ |
+std::array< BlockingQueue< MicroBuffer >, 2 > | recv_queues_ |
+std::array< MessageBuffer, 2 > | recv_bufs_ |
+std::array< size_t, 2 > | recv_bufs_loc_ |
+std::array< std::vector< MessageBuffer >, 2 > | recv_bufs_stash_ |
+std::thread | recv_thread_ |
+bool | force_continue_ |
+size_t | sent_size_ |
+size_t | total_sent_size_ |
+bool | force_terminate_ |
+TerminateInfo | terminate_info_ |
+MessageBufferPool | pool_ |
+Static Private Attributes | |
+static constexpr size_t | default_msg_send_block_size = 2 * 1023 * 1024 |
+static constexpr size_t | default_msg_send_block_capacity = 2 * 1024 * 1024 |
A optimized version of parallel message manager.
+ParallelMessageManagerOpt support multi-threads to send messages concurrently with channels. Each channel contains a thread local message buffer.
+For each thread local message buffer, when accumulated a given amount of messages, the buffer will be sent through MPI.
+After a round of evaluation, there is a global barrier to determine whether the fixed point is reached.
+
+
|
+ +inline | +
Get a bunch of messages, stored in a MessageInBuffer.
+buf | Message buffer which holds a grape::OutArchive. |
+
|
+ +inline | +
Init a set of channels, each channel is a thread local message buffer.
+channel_num | Number of channels. |
block_size | Size of each channel. |
block_cap | Capacity of each channel. |
+
|
+ +inline | +
Parallel process all incoming messages with given function of last round.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
FUNC_T | Function type. |
thread_num | Number of threads. |
frag | |
func |
+
|
+ +inline | +
Parallel process all incoming messages with given function of last round.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
FUNC_T | Function type. |
thread_num | Number of threads. |
frag | |
func |
+
|
+ +inline | +
Send a buffer to a fragment.
+fid | Destination fragment id. |
arc | Message buffer. |
+
|
+ +inline | +
SendMsgThroughEdges on a channel.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | Source vertex. |
msg | |
channel_id |
+
|
+ +inline | +
SendMsgThroughIEdges on a channel.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | Source vertex. |
msg | |
channel_id |
+
|
+ +inline | +
SendMsgThroughOEdges on a channel.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | Source vertex. |
msg | |
channel_id |
+
|
+ +inline | +
Send message to a fragment.
+MESSAGE_T | Message type. |
dst_fid | Destination fragment id. |
msg | |
channelId |
+
|
+ +inline | +
SyncStateOnOuterVertex on a channel.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | Source vertex. |
msg | |
channel_id |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::RefBitset, including all inherited members.
+begin (defined in grape::RefBitset) | grape::RefBitset | |
data (defined in grape::RefBitset) | grape::RefBitset | |
end (defined in grape::RefBitset) | grape::RefBitset | |
get_bit(size_t loc) const (defined in grape::RefBitset) | grape::RefBitset | inline |
get_word_by_index(size_t index) (defined in grape::RefBitset) | grape::RefBitset | inline |
get_word_num() const (defined in grape::RefBitset) | grape::RefBitset | inline |
RefBitset() (defined in grape::RefBitset) | grape::RefBitset | inline |
RefBitset(void *d, size_t b, size_t e) (defined in grape::RefBitset) | grape::RefBitset | inline |
~RefBitset() (defined in grape::RefBitset) | grape::RefBitset | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | RefBitset (void *d, size_t b, size_t e) |
+bool | get_bit (size_t loc) const |
+uint64_t | get_word_by_index (size_t index) |
+size_t | get_word_num () const |
+Public Attributes | |
+uint64_t * | data |
+size_t | begin |
+size_t | end |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::SegmentedPartitioner< OID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
SegmentedPartitioner is a partitioner with a strategy of chunking original vertex_ids. + More...
+ +#include <partitioner.h>
+Public Member Functions | |
+ | SegmentedPartitioner (size_t frag_num) |
+ | SegmentedPartitioner (size_t frag_num, std::vector< OID_T > &oid_list) |
+fid_t | GetPartitionId (const OID_T &oid) const |
+void | SetPartitionId (const OID_T &oid, fid_t fid) |
+SegmentedPartitioner & | operator= (const SegmentedPartitioner &other) |
+SegmentedPartitioner & | operator= (SegmentedPartitioner &&other) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Private Attributes | |
+fid_t | fnum_ |
+ska::flat_hash_map< OID_T, fid_t > | o2f_ |
SegmentedPartitioner is a partitioner with a strategy of chunking original vertex_ids.
+OID_T |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::SegmentedPartitioner< std::string >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | SegmentedPartitioner (size_t frag_num) |
+ | SegmentedPartitioner (size_t frag_num, std::vector< oid_t > &oid_list) |
+fid_t | GetPartitionId (const oid_t &oid) const |
+fid_t | GetPartitionId (const internal_oid_t &oid) const |
+void | SetPartitionId (const oid_t &oid, fid_t fid) |
+void | SetPartitionId (const internal_oid_t &oid, fid_t fid) |
+SegmentedPartitioner & | operator= (const SegmentedPartitioner &other) |
+SegmentedPartitioner & | operator= (SegmentedPartitioner &&other) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Private Types | |
+using | oid_t = std::string |
+using | internal_oid_t = nonstd::string_view |
+Private Attributes | |
+fid_t | fnum_ |
+ska::flat_hash_map< oid_t, fid_t > | o2f_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ShuffleIn< TYPES >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | Init (fid_t fnum, MPI_Comm comm, int tag=0) |
+int | Recv (fid_t &fid) |
+int | RecvFrom (int src_worker_id) |
+bool | Finished () |
+void | Clear () |
+size_t | Size () const |
+ShuffleBufferTuple< TYPES... > & | buffers () |
+const ShuffleBufferTuple< TYPES... > & | buffers () const |
+Private Attributes | |
+ShuffleBufferTuple< TYPES... > | buffers_ |
+fid_t | remaining_frag_num_ |
+int | tag_ |
+size_t | current_size_ |
+MPI_Comm | comm_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ShuffleOut< TYPES >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | Init (MPI_Comm comm, int tag=0, size_t cs=4096) |
+void | DisableComm () |
+void | SetDestination (int dst_worker_id, fid_t dst_frag_id) |
+void | Clear () |
+void | Emplace (const TYPES &... rest) |
+void | AppendBuffers (const typename ShuffleBuffer< TYPES >::type &... bx) |
+void | AppendBuffers (typename ShuffleBuffer< TYPES >::type &&... bx) |
+void | Flush () |
+ShuffleBufferTuple< TYPES... > & | buffers () |
+const ShuffleBufferTuple< TYPES... > & | buffers () const |
+Private Member Functions | |
+void | issue () |
+Private Attributes | |
+ShuffleBufferTuple< TYPES... > | buffers_ |
+size_t | chunk_size_ |
+size_t | current_size_ |
+int | dst_worker_id_ |
+fid_t | dst_frag_id_ |
+int | tag_ |
+bool | comm_disabled_ |
+MPI_Comm | comm_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::SpinLock, including all inherited members.
+lock() (defined in grape::SpinLock) | grape::SpinLock | inline |
locked (defined in grape::SpinLock) | grape::SpinLock | private |
unlock() (defined in grape::SpinLock) | grape::SpinLock | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A simple implementation of spinlock based on std::atomic. + More...
+ +#include <concurrent_queue.h>
+Public Member Functions | |
+void | lock () |
+void | unlock () |
+Private Attributes | |
+std::atomic_flag | locked = ATOMIC_FLAG_INIT |
A simple implementation of spinlock based on std::atomic.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::StringViewVector, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | push_back (const nonstd::string_view &val) |
+void | emplace_back (const nonstd::string_view &val) |
+size_t | size () const |
+nonstd::string_view | operator[] (size_t index) const |
+std::vector< char > & | content_buffer () |
+const std::vector< char > & | content_buffer () const |
+std::vector< size_t > & | offset_buffer () |
+const std::vector< size_t > & | offset_buffer () const |
+void | clear () |
+void | swap (StringViewVector &rhs) |
+Private Attributes | |
+std::vector< char > | buffer_ |
+std::vector< size_t > | offsets_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::SyncBuffer< VERTEX_SET_T, T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
SyncBuffer manages status on each vertex during the evaluation in auto parallization. + More...
+ +#include <sync_buffer.h>
+Public Member Functions | |
+ | SyncBuffer (VertexArray< VERTEX_SET_T, T > &data) |
+bool | updated (size_t begin, size_t length) const override |
+void * | data () override |
+const std::type_info & | GetTypeId () const override |
+void | Init (const VERTEX_SET_T &range, const T &value, const std::function< bool(T *, T &&)> &aggregator) |
+void | SetValue (const vertex_t &v, const T &value) |
+T & | GetValue (const vertex_t &v) |
+bool | IsUpdated (const vertex_t &v) |
+void | SetUpdated (const vertex_t &v) |
+void | Reset (const vertex_t &v) |
+void | Reset (const VERTEX_SET_T &range) |
+T & | operator[] (const vertex_t &v) |
+const T & | operator[] (const vertex_t &v) const |
+void | Swap (SyncBuffer &rhs) |
+void | Aggregate (const vertex_t v, T &&rhs) |
![]() | |
+template<typename T > | |
T * | base () |
+Private Types | |
+using | vertex_t = typename VERTEX_SET_T::vertex_t |
+Private Attributes | |
+VertexArray< VERTEX_SET_T, T > | internal_data_ |
+VertexArray< VERTEX_SET_T, T > & | data_ |
+VertexArray< VERTEX_SET_T, bool > | updated_ |
+VERTEX_SET_T | range_ |
+std::function< bool(T *, T &&)> | aggregator_ |
SyncBuffer manages status on each vertex during the evaluation in auto parallization.
+VERTEX_SET_T | |
T |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::TSVLineParser< OID_T, VDATA_T, EDATA_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
a default parser for tsv files. + More...
+ +#include <tsv_line_parser.h>
+Public Member Functions | |
virtual void | LineParserForEFile (const std::string &line, OID_T &u, OID_T &v, EDATA_T &e_data) |
parser of edge file, to parse source vertex_id, destination vertex_id from a line. More... | |
virtual void | LineParserForVFile (const std::string &line, OID_T &u, VDATA_T &u_data) |
parser of vertex file, to parse vertex_id and vertex_data from a string. More... | |
a default parser for tsv files.
+OID_T | |
VDATA_T | |
EDATA_T |
+
|
+ +inlinevirtual | +
parser of edge file, to parse source vertex_id, destination vertex_id from a line.
+line | |
u | |
v | |
e_data |
Implements grape::LineParserBase< OID_T, VDATA_T, EDATA_T >.
+ +
+
|
+ +inlinevirtual | +
parser of vertex file, to parse vertex_id and vertex_data from a string.
+line | |
u | |
v_data |
Implements grape::LineParserBase< OID_T, VDATA_T, EDATA_T >.
+ +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ThreadLocalMessageBuffer< MM_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
void | Init (fid_t fnum, MM_T *mm, size_t block_size, size_t block_cap) |
Initialize thread local message buffer. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication by synchronizing the status on outer vertices, for edge-cut fragments. More... | |
+template<typename GRAPH_T > | |
void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v) |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughIEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via a crossing edge a<-c. It sends message from a to c. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughOEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via a crossing edge a->b. It sends message from a to b. More... | |
template<typename GRAPH_T , typename MESSAGE_T > | |
void | SendMsgThroughEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via crossing edges a->b and a<-c. It sends message from a to b and c. More... | |
template<typename MESSAGE_T > | |
void | SendToFragment (fid_t dst_fid, const MESSAGE_T &msg) |
Send message to a fragment. More... | |
+void | FlushMessages () |
Flush messages to message manager. | |
+size_t | SentMsgSize () const |
+void | Reset () |
+Private Member Functions | |
+void | flushLocalBuffer (fid_t fid) |
+Private Attributes | |
+std::vector< InArchive > | to_send_ |
+MM_T * | mm_ |
+fid_t | fnum_ |
+size_t | block_size_ |
+size_t | block_cap_ |
+size_t | sent_size_ |
+
|
+ +inline | +
Initialize thread local message buffer.
+fnum | Number of fragments. |
mm | MessageManager pointer. |
block_size | Size of thread local message buffer. |
block_cap | Capacity of thread local message buffer. |
+
|
+ +inline | +
Communication via crossing edges a->b and a<-c. It sends message from a to b and c.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | a |
msg |
+
|
+ +inline | +
Communication via a crossing edge a<-c. It sends message from a to c.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type, |
frag | Source fragment. |
v | a |
msg |
+
|
+ +inline | +
Communication via a crossing edge a->b. It sends message from a to b.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | a |
msg |
+
|
+ +inline | +
Send message to a fragment.
+MESSAGE_T | Message type. |
dst_fid | Destination fragment id. |
msg |
+
|
+ +inline | +
Communication by synchronizing the status on outer vertices, for edge-cut fragments.
+Assume a fragment F_1, a crossing edge a->b' in F_1 and a is an inner vertex in F_1. This function invoked on F_1 send status on b' to b on F_2, where b is an inner vertex.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type, |
frag | Source fragment. |
v | a |
msg |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ThreadLocalMessageBufferOpt< MM_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | ThreadLocalMessageBufferOpt (ThreadLocalMessageBufferOpt &&rhs) |
void | Init (fid_t fid, fid_t fnum, MM_T *mm, MessageBufferPool *pool) |
Initialize thread local message buffer. More... | |
+void | SetBlockSize (size_t block_size) |
+void | Prepare () |
template<typename GRAPH_T , typename MESSAGE_T > | |
std::enable_if< std::is_pod< MESSAGE_T >::value, void >::type | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication by synchronizing the status on outer vertices, for edge-cut fragments. More... | |
+template<typename GRAPH_T , typename MESSAGE_T > | |
std::enable_if<!std::is_pod< MESSAGE_T >::value, void >::type | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
+template<typename GRAPH_T > | |
void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v) |
template<typename GRAPH_T , typename MESSAGE_T > | |
std::enable_if< std::is_pod< MESSAGE_T >::value, void >::type | SendMsgThroughIEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via a crossing edge a<-c. It sends message from a to c. More... | |
+template<typename GRAPH_T , typename MESSAGE_T > | |
std::enable_if<!std::is_pod< MESSAGE_T >::value, void >::type | SendMsgThroughIEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
template<typename GRAPH_T , typename MESSAGE_T > | |
std::enable_if< std::is_pod< MESSAGE_T >::value, void >::type | SendMsgThroughOEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via a crossing edge a->b. It sends message from a to b. More... | |
+template<typename GRAPH_T , typename MESSAGE_T > | |
std::enable_if<!std::is_pod< MESSAGE_T >::value, void >::type | SendMsgThroughOEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
template<typename GRAPH_T , typename MESSAGE_T > | |
std::enable_if< std::is_pod< MESSAGE_T >::value, void >::type | SendMsgThroughEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
Communication via crossing edges a->b and a<-c. It sends message from a to b and c. More... | |
+template<typename GRAPH_T , typename MESSAGE_T > | |
std::enable_if<!std::is_pod< MESSAGE_T >::value, void >::type | SendMsgThroughEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
template<typename MESSAGE_T > | |
std::enable_if< std::is_pod< MESSAGE_T >::value, void >::type | SendToFragment (fid_t dst_fid, const MESSAGE_T &msg) |
Send message to a fragment. More... | |
+template<typename MESSAGE_T > | |
std::enable_if<!std::is_pod< MESSAGE_T >::value, void >::type | SendToFragment (fid_t dst_fid, const MESSAGE_T &msg) |
+void | FlushMessages () |
Flush messages to message manager. | |
+size_t | SentMsgSize () const |
+void | Reset () |
+Private Member Functions | |
+void | flushLocalBuffer (fid_t fid) |
+Private Attributes | |
+std::vector< FixedInArchive > | to_send_ |
+MM_T * | mm_ |
+fid_t | fid_ |
+fid_t | fnum_ |
+size_t | sent_size_ |
+size_t | block_size_ |
+std::deque< MessageBuffer > | last_round_to_self_ |
+std::deque< MessageBuffer > | this_round_to_self_ |
+std::deque< MessageBuffer > | this_round_to_others_ |
+MessageBufferPool * | pool_ |
+
|
+ +inline | +
Initialize thread local message buffer.
+fnum | Number of fragments. |
mm | MessageManager pointer. |
block_size | Size of thread local message buffer. |
block_cap | Capacity of thread local message buffer. |
+
|
+ +inline | +
Communication via crossing edges a->b and a<-c. It sends message from a to b and c.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | a |
msg |
+
|
+ +inline | +
Communication via a crossing edge a<-c. It sends message from a to c.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type, |
frag | Source fragment. |
v | a |
msg |
+
|
+ +inline | +
Communication via a crossing edge a->b. It sends message from a to b.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type. |
frag | Source fragment. |
v | a |
msg |
+
|
+ +inline | +
Send message to a fragment.
+MESSAGE_T | Message type. |
dst_fid | Destination fragment id. |
msg |
+
|
+ +inline | +
Communication by synchronizing the status on outer vertices, for edge-cut fragments.
+Assume a fragment F_1, a crossing edge a->b' in F_1 and a is an inner vertex in F_1. This function invoked on F_1 send status on b' to b on F_2, where b is an inner vertex.
+GRAPH_T | Graph type. |
MESSAGE_T | Message type, |
frag | Source fragment. |
v | a |
msg |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VarintDecoder, including all inherited members.
+data() const (defined in grape::VarintDecoder) | grape::VarintDecoder | inline |
decode_u32() (defined in grape::VarintDecoder) | grape::VarintDecoder | inline |
decode_u64() (defined in grape::VarintDecoder) | grape::VarintDecoder | inline |
empty() const (defined in grape::VarintDecoder) | grape::VarintDecoder | inline |
limit() const (defined in grape::VarintDecoder) | grape::VarintDecoder | inline |
limit_ (defined in grape::VarintDecoder) | grape::VarintDecoder | private |
p_ (defined in grape::VarintDecoder) | grape::VarintDecoder | private |
reset(const char *p, size_t size) (defined in grape::VarintDecoder) | grape::VarintDecoder | inline |
size() const (defined in grape::VarintDecoder) | grape::VarintDecoder | inline |
VarintDecoder(const char *p, size_t size) (defined in grape::VarintDecoder) | grape::VarintDecoder | inline |
~VarintDecoder()=default (defined in grape::VarintDecoder) | grape::VarintDecoder |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Private Attributes | |
+const uint8_t * | p_ |
+const uint8_t * | limit_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VarintEncoder, including all inherited members.
+buf_ (defined in grape::VarintEncoder) | grape::VarintEncoder | private |
clear() (defined in grape::VarintEncoder) | grape::VarintEncoder | inline |
data() const (defined in grape::VarintEncoder) | grape::VarintEncoder | inline |
empty() const (defined in grape::VarintEncoder) | grape::VarintEncoder | inline |
encode_u32(uint32_t v) (defined in grape::VarintEncoder) | grape::VarintEncoder | inline |
encode_u64(uint64_t v) (defined in grape::VarintEncoder) | grape::VarintEncoder | inline |
reserve(size_t size) (defined in grape::VarintEncoder) | grape::VarintEncoder | inline |
size() const (defined in grape::VarintEncoder) | grape::VarintEncoder | inline |
VarintEncoder() (defined in grape::VarintEncoder) | grape::VarintEncoder | inline |
~VarintEncoder()=default (defined in grape::VarintEncoder) | grape::VarintEncoder |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Private Attributes | |
+std::vector< uint8_t, Allocator< uint8_t > > | buf_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::Vertex< T >, including all inherited members.
+GetValue() const (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
operator!=(const Vertex &rhs) const (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
operator+(size_t offset) const noexcept (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
operator++() noexcept (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
operator++(int) (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
operator--() noexcept (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
operator--(int) noexcept (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
operator<(const Vertex &rhs) const (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
operator<< (defined in grape::Vertex< T >) | grape::Vertex< T > | friend |
operator=(const T &value) noexcept (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
operator==(const Vertex &rhs) const (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
operator>> (defined in grape::Vertex< T >) | grape::Vertex< T > | friend |
SetValue(T value) (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
Swap(Vertex &rhs) (defined in grape::Vertex< T >) | grape::Vertex< T > | inline |
value_ (defined in grape::Vertex< T >) | grape::Vertex< T > | private |
Vertex()=default (defined in grape::Vertex< T >) | grape::Vertex< T > | |
Vertex(const T &value) noexcept (defined in grape::Vertex< T >) | grape::Vertex< T > | inlineexplicit |
~Vertex()=default (defined in grape::Vertex< T >) | grape::Vertex< T > |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A Vertex object only contains id of a vertex. It will be used when iterating vertices of a fragment and accessing data and neighbor of a vertex. + More...
+ +#include <vertex_array.h>
+Public Member Functions | |
+DEV_HOST | Vertex (const T &value) noexcept |
+DEV_HOST_INLINE Vertex & | operator= (const T &value) noexcept |
+DEV_HOST_INLINE Vertex & | operator++ () noexcept |
+DEV_HOST_INLINE Vertex | operator++ (int) |
+DEV_HOST_INLINE Vertex & | operator-- () noexcept |
+DEV_HOST_INLINE Vertex | operator-- (int) noexcept |
+DEV_HOST_INLINE Vertex | operator+ (size_t offset) const noexcept |
+DEV_HOST_INLINE bool | operator== (const Vertex &rhs) const |
+DEV_HOST_INLINE bool | operator!= (const Vertex &rhs) const |
+DEV_HOST_INLINE void | Swap (Vertex &rhs) |
+DEV_HOST_INLINE bool | operator< (const Vertex &rhs) const |
+DEV_HOST_INLINE T | GetValue () const |
+DEV_HOST_INLINE void | SetValue (T value) |
+Private Attributes | |
+T | value_ {} |
+Friends | |
+InArchive & | operator<< (InArchive &archive, const Vertex &h) |
+OutArchive & | operator>> (OutArchive &archive, Vertex &h) |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VertexArray< DualVertexRange< VID_T >, T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | VertexArray (const DualVertexRange< VID_T > &range) |
+ | VertexArray (const DualVertexRange< VID_T > &range, const T &value) |
+void | Init (const VertexRange< VID_T > &range) |
+void | Init (const DualVertexRange< VID_T > &range) |
+void | Init (const VertexRange< VID_T > &range, const T &value) |
+void | Init (const DualVertexRange< VID_T > &range, const T &value) |
+T & | operator[] (const Vertex< VID_T > &loc) |
+const T & | operator[] (const Vertex< VID_T > &loc) const |
+void | Swap (VertexArray &rhs) |
+void | Clear () |
+void | SetValue (const T &value) |
+Private Member Functions | |
+void | initMid () |
+Private Attributes | |
+VertexArray< VertexRange< VID_T >, T > | head_ |
+VertexArray< VertexRange< VID_T >, T > | tail_ |
+VID_T | mid_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VertexArray< VertexRange< VID_T >, T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | VertexArray (const VertexRange< VID_T > &range) |
+ | VertexArray (const VertexRange< VID_T > &range, const T &value) |
+void | Init (const VertexRange< VID_T > &range) |
+void | Init (const VertexRange< VID_T > &range, const T &value) |
+void | SetValue (VertexRange< VID_T > &range, const T &value) |
+void | SetValue (const Vertex< VID_T > &loc, const T &value) |
+void | SetValue (const T &value) |
+T & | operator[] (const Vertex< VID_T > &loc) |
+const T & | operator[] (const Vertex< VID_T > &loc) const |
+void | Swap (VertexArray &rhs) |
+void | Clear () |
+const VertexRange< VID_T > & | GetVertexRange () const |
![]() | |
+allocator_type | get_allocator () const noexcept |
+ | Array (const allocator_type &__a) noexcept |
+ | Array (size_type __n, const allocator_type &__a=allocator_type()) |
+ | Array (size_type __n, const value_type &__x, const allocator_type &__a=allocator_type()) |
+ | Array (const Array &__x) |
+ | Array (Array &&__x) noexcept |
+ | Array (const Array &__x, const allocator_type &__a) |
+ | Array (Array &&__x, const allocator_type &__a) |
+Array & | operator= (const Array &__x) |
+Array & | operator= (Array &&__x) |
+size_type | size () const noexcept |
+void | resize (size_type __new_size) |
+void | resize (size_type __new_size, const value_type &__x) |
+bool | empty () const noexcept |
+reference | operator[] (size_type __n) noexcept |
+const_reference | operator[] (size_type __n) const noexcept |
+reference | at (size_type __n) noexcept |
+const_reference | at (size_type __n) const noexcept |
+pointer | data () noexcept |
+const_pointer | data () const noexcept |
+iterator | begin () noexcept |
+const_iterator | begin () const noexcept |
+iterator | end () noexcept |
+const_iterator | end () const noexcept |
+void | swap (Array &__x) noexcept |
+void | clear () noexcept |
+Private Types | |
+using | Base = Array< T, Allocator< T > > |
+Private Member Functions | |
+void | Resize () |
+Private Attributes | |
+VertexRange< VID_T > | range_ |
+T * | fake_start_ |
+Additional Inherited Members | |
![]() | |
+using | pointer = T * |
+using | const_pointer = const T * |
+using | reference = T & |
+using | const_reference = const T & |
+using | size_type = size_t |
+using | value_type = T |
+using | allocator_type = Allocator< T > |
+using | iterator = pointer |
+using | const_iterator = const_pointer |
+using | __alloc_traits = std::allocator_traits< Allocator< T > > |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VertexDataContext< FRAG_T, DATA_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | data_t = DATA_T |
+Public Member Functions | |
+ | VertexDataContext (const fragment_t &fragment, bool including_outer=false) |
+const fragment_t & | fragment () |
+vertex_array_t & | data () |
![]() | |
virtual void | Output (std::ostream &os) |
Output function to implement for result output. More... | |
+Private Types | |
+using | fragment_t = FRAG_T |
+using | vertex_t = typename fragment_t::vertex_t |
+using | vertex_array_t = typename fragment_t::template vertex_array_t< DATA_T > |
+Private Attributes | |
+const fragment_t & | fragment_ |
+vertex_array_t | data_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VertexMapBase< OID_T, VID_T, PARTITIONER_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
VertexMapBase manages some mapping about vertices. + More...
+ +#include <vertex_map_base.h>
+Public Types | |
+using | partitioner_t = PARTITIONER_T |
+using | oid_t = OID_T |
+using | vid_t = VID_T |
+Public Member Functions | |
+ | VertexMapBase (const CommSpec &comm_spec) |
+void | SetPartitioner (const PARTITIONER_T &partitioner) |
+void | SetPartitioner (PARTITIONER_T &&partitioner) |
+fid_t | GetFragmentNum () const |
+VID_T | Lid2Gid (fid_t fid, const VID_T &lid) const |
+fid_t | GetFidFromGid (const VID_T &gid) const |
+VID_T | GetLidFromGid (const VID_T &gid) const |
+VID_T | MaxVertexNum () const |
+const CommSpec & | GetCommSpec () const |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+fid_t | GetFragmentId (const OID_T &oid) const |
+const PARTITIONER_T & | GetPartitioner () const |
+PARTITIONER_T & | GetPartitioner () |
+virtual size_t | GetTotalVertexSize () const =0 |
+virtual size_t | GetInnerVertexSize (fid_t fid) const =0 |
+virtual void | AddVertex (const OID_T &oid)=0 |
+virtual bool | AddVertex (const OID_T &oid, VID_T &gid)=0 |
+virtual void | UpdateToBalance (std::vector< VID_T > &vnum_list, std::vector< std::vector< VID_T >> &gid_maps)=0 |
+virtual bool | GetOid (const VID_T &gid, OID_T &oid) const =0 |
+virtual bool | GetOid (fid_t fid, const VID_T &lid, OID_T &oid) const =0 |
+virtual bool | GetGid (fid_t fid, const OID_T &oid, VID_T &gid) const =0 |
+virtual bool | GetGid (const OID_T &oid, VID_T &gid) const =0 |
+Protected Attributes | |
+CommSpec | comm_spec_ |
+PARTITIONER_T | partitioner_ |
+IdParser< VID_T > | id_parser_ |
VertexMapBase manages some mapping about vertices.
+a <VertexMapBase> manages:
+1) which fragment a vertex resides in as a inner_vertex, for edge-cut distributed graphs;
+2) which fragment a vertex resides in as a master_vertex, for vertex-cut distributed graphs;
+3) the mapping from ids. There are 3 kinds of vertex ids in grape.
+OID_T | |
VID_T |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VertexRange< T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Classes | |
class | iterator |
+Public Types | |
+using | vertex_t = Vertex< T > |
+Public Member Functions | |
+DEV_HOST | VertexRange (const T &begin, const T &end) |
+DEV_HOST | VertexRange (const VertexRange &r) |
+DEV_HOST_INLINE iterator | begin () const |
+DEV_HOST_INLINE iterator | end () const |
+DEV_HOST_INLINE size_t | size () const |
+DEV_HOST void | Swap (VertexRange &rhs) |
+DEV_HOST void | SetRange (const T &begin, const T &end) |
+DEV_HOST const T & | begin_value () const |
+DEV_HOST const T & | end_value () const |
+bool | Contain (const Vertex< T > &v) const |
+Private Attributes | |
+T | begin_ |
+T | end_ |
+Friends | |
+InArchive & | operator<< (InArchive &in_archive, const VertexRange< T > &range) |
+OutArchive & | operator>> (OutArchive &out_archive, VertexRange< T > &range) |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VertexRange< T >::iterator, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+DEV_HOST | iterator (const T &v) noexcept |
+DEV_HOST_INLINE reference_type | operator* () noexcept |
+DEV_HOST_INLINE iterator & | operator++ () noexcept |
+DEV_HOST_INLINE iterator | operator++ (int) noexcept |
+DEV_HOST_INLINE iterator & | operator-- () noexcept |
+DEV_HOST_INLINE iterator | operator-- (int) noexcept |
+DEV_HOST_INLINE iterator | operator+ (size_t offset) const noexcept |
+DEV_HOST bool | operator== (const iterator &rhs) const noexcept |
+DEV_HOST bool | operator!= (const iterator &rhs) const noexcept |
+DEV_HOST bool | operator< (const iterator &rhs) const noexcept |
+Private Types | |
+using | reference_type = Vertex< T > & |
+Private Attributes | |
+Vertex< T > | cur_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VoidContext< FRAG_T >, including all inherited members.
+ContextBase()=default (defined in grape::ContextBase) | grape::ContextBase | |
fragment() (defined in grape::VoidContext< FRAG_T >) | grape::VoidContext< FRAG_T > | inline |
fragment_ (defined in grape::VoidContext< FRAG_T >) | grape::VoidContext< FRAG_T > | private |
fragment_t typedef (defined in grape::VoidContext< FRAG_T >) | grape::VoidContext< FRAG_T > | private |
Output(std::ostream &os) | grape::ContextBase | inlinevirtual |
vertex_t typedef (defined in grape::VoidContext< FRAG_T >) | grape::VoidContext< FRAG_T > | private |
VoidContext(const fragment_t &fragment) (defined in grape::VoidContext< FRAG_T >) | grape::VoidContext< FRAG_T > | inlineexplicit |
~ContextBase()=default (defined in grape::ContextBase) | grape::ContextBase | virtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | VoidContext (const fragment_t &fragment) |
+const fragment_t & | fragment () |
![]() | |
virtual void | Output (std::ostream &os) |
Output function to implement for result output. More... | |
+Private Types | |
+using | fragment_t = FRAG_T |
+using | vertex_t = typename fragment_t::vertex_t |
+Private Attributes | |
+const fragment_t & | fragment_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::Worker< APP_T, MESSAGE_MANAGER_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A Worker manages the computation cycle. + More...
+ +#include <worker.h>
+Public Types | |
+using | fragment_t = typename APP_T::fragment_t |
+using | context_t = typename APP_T::context_t |
+using | message_manager_t = MESSAGE_MANAGER_T |
+Public Member Functions | |
+ | Worker (std::shared_ptr< APP_T > app, std::shared_ptr< fragment_t > graph) |
+ | Worker (std::shared_ptr< APP_T > app, std::shared_ptr< fragment_t > graph, std::shared_ptr< context_t > context) |
+void | Init (const CommSpec &comm_spec, const ParallelEngineSpec &pe_spec=DefaultParallelEngineSpec()) |
+void | Finalize () |
+template<class... Args> | |
void | Query (Args &&... args) |
+std::shared_ptr< context_t > | GetContext () |
+const TerminateInfo & | GetTerminateInfo () const |
+void | Output (std::ostream &os) |
+Private Member Functions | |
+template<typename T = message_manager_t> | |
std::enable_if< std::is_same< T, ParallelMessageManagerOpt >::value &&std::is_base_of< ParallelAppBase< fragment_t, context_t, T >, APP_T >::value >::type | initPool (const ParallelEngineSpec &pe_spec) |
+template<typename T = message_manager_t> | |
std::enable_if< !std::is_same< T, ParallelMessageManagerOpt >::value||!std::is_base_of< ParallelAppBase< fragment_t, context_t, T >, APP_T >::value >::type | initPool (const ParallelEngineSpec &pe_spec) |
+template<typename T = message_manager_t> | |
std::enable_if< std::is_same< T, AutoParallelMessageManager< fragment_t > >::value >::type | runPEval () |
+template<typename T = message_manager_t> | |
std::enable_if< !std::is_same< T, AutoParallelMessageManager< fragment_t > >::value >::type | runPEval () |
+template<typename T = message_manager_t> | |
std::enable_if< std::is_same< T, AutoParallelMessageManager< fragment_t > >::value >::type | runIncEval () |
+template<typename T = message_manager_t> | |
std::enable_if< !std::is_same< T, AutoParallelMessageManager< fragment_t > >::value >::type | runIncEval () |
+template<typename T = context_t> | |
std::enable_if< std::is_base_of< MutationContext< fragment_t >, T >::value >::type | processMutation () |
+template<typename T = context_t> | |
std::enable_if< !std::is_base_of< MutationContext< fragment_t >, T >::value >::type | processMutation () |
+Private Attributes | |
+std::shared_ptr< APP_T > | app_ |
+std::shared_ptr< context_t > | context_ |
+std::shared_ptr< fragment_t > | fragment_ |
+message_manager_t | messages_ |
+CommSpec | comm_spec_ |
+PrepareConf | prepare_conf_ |
A Worker manages the computation cycle.
+APP_T | |
MESSAGE_MANAGER_T |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::batch_shuffle_message_manager_impl::PostProcess< GRAPH_T, DATA_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | PostProcess (const GRAPH_T &frag, array_t &data, std::vector< std::vector< char, Allocator< char >>> &buffers) |
+void | exec (fid_t fid) |
+Private Types | |
+using | array_t = typename GRAPH_T::template vertex_array_t< DATA_T > |
+Private Attributes | |
+const GRAPH_T & | frag_ |
+array_t & | data_ |
+std::vector< std::vector< char, Allocator< char > > > & | buffers_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::batch_shuffle_message_manager_impl::PostProcessBase, including all inherited members.
+exec(fid_t fid)=0 (defined in grape::batch_shuffle_message_manager_impl::PostProcessBase) | grape::batch_shuffle_message_manager_impl::PostProcessBase | pure virtual |
PostProcessBase() (defined in grape::batch_shuffle_message_manager_impl::PostProcessBase) | grape::batch_shuffle_message_manager_impl::PostProcessBase | inline |
~PostProcessBase() (defined in grape::batch_shuffle_message_manager_impl::PostProcessBase) | grape::batch_shuffle_message_manager_impl::PostProcessBase | inlinevirtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+virtual void | exec (fid_t fid)=0 |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::ArrayView< T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | ArrayView (const thrust::device_vector< T > &vec) |
+ | ArrayView (const pinned_vector< T > &vec) |
+DEV_HOST | ArrayView (T *data, size_t size) |
+DEV_HOST_INLINE T * | data () |
+DEV_HOST_INLINE const T * | data () const |
+DEV_HOST_INLINE size_t | size () const |
+DEV_HOST_INLINE bool | empty () const |
+DEV_INLINE T & | operator[] (size_t i) |
+DEV_INLINE const T & | operator[] (size_t i) const |
+DEV_INLINE void | Swap (ArrayView< T > &rhs) |
+DEV_INLINE T * | begin () |
+DEV_INLINE T * | end () |
+DEV_INLINE const T * | begin () const |
+DEV_INLINE const T * | end () const |
+Private Attributes | |
+T * | data_ {} |
+size_t | size_ {} |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::BatchShuffleAppBase< FRAG_T, CONTEXT_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
GPUAppBase is a base class for GPU apps. Users can process messages in a more flexible way in this kind of app. It contains an GPUMessageManager to process messages, which enables send/receive messages during computation. This strategy improves performance by overlapping the communication time and the evaluation time. + More...
+ +#include <batch_shuffle_app_base.h>
+Public Types | |
+using | message_manager_t = grape::cuda::BatchShuffleMessageManager |
+Public Member Functions | |
virtual void | PEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0 |
Partial evaluation to implement. More... | |
virtual void | IncEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0 |
Incremental evaluation to implement. More... | |
+Static Public Attributes | |
+static constexpr bool | need_split_edges = false |
+static constexpr bool | need_build_device_vm = false |
static constexpr grape::MessageStrategy | message_strategy |
static constexpr grape::LoadStrategy | load_strategy |
GPUAppBase is a base class for GPU apps. Users can process messages in a more flexible way in this kind of app. It contains an GPUMessageManager to process messages, which enables send/receive messages during computation. This strategy improves performance by overlapping the communication time and the evaluation time.
+FRAG_T | |
CONTEXT_T |
+
|
+ +pure virtual | +
Incremental evaluation to implement.
+graph | |
context | |
messages |
+
|
+ +pure virtual | +
Partial evaluation to implement.
+graph | |
context | |
messages |
+
|
+ +staticconstexpr | +
+
|
+ +staticconstexpr | +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::BatchShuffleMessageManager, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
void | Init (const grape::CommSpec &comm_spec) |
Initialize message manager. More... | |
+void | Start () |
This function will be called before Init step of applications. | |
+void | StartARound () |
This function will be called before each evaluation step of applications. | |
+void | FinishARound () |
This function will be called after each evaluation step of applications. | |
+void | Finalize () const |
This function will be called after the evaluation of applications. | |
template<typename GRAPH_T , typename DATA_T > | |
void | SyncInnerVertices (const GRAPH_T &h_frag, VertexArray< DATA_T, typename GRAPH_T::vid_t > &h_data) |
Synchronize the inner vertices' data of a vertex array to their mirrors. The data_out and data_in are the same vertex array. More... | |
bool | ToTerminate () const |
This function will be called by worker after a step to determine whether evaluation is terminated. More... | |
size_t | GetMsgSize () const |
Get size of messages sent by this message manager instance. The return value is valid only after FinishARound is called. StartARound will reset the value to zero. More... | |
void | ForceContinue () |
Force continue to evaluate one more round even if all workers stop sending message. More... | |
+Stream & | stream () |
+ncclComm_t | nccl_comm () |
+double | GetAccumulatedCommTime () const |
+Private Attributes | |
+grape::CommSpec | comm_spec_ |
+fid_t | fid_ |
+fid_t | fnum_ |
+std::shared_ptr< ncclComm_t > | nccl_comm_ |
+Stream | compute_stream_ |
+Stream | comm_stream_ |
+std::vector< thrust::device_vector< char > > | shuffle_in_buffers_ |
+std::vector< thrust::device_vector< char > > | shuffle_out_buffers_ |
+Event | computation_finished_ |
+size_t | sent_size_ {} |
+double | total_memcpy_time_ {} |
+bool | to_terminate_ {} |
+
|
+ +inline | +
Force continue to evaluate one more round even if all workers stop sending message.
+This function can be called by applications.
+ +
+
|
+ +inline | +
Get size of messages sent by this message manager instance. The return value is valid only after FinishARound is called. StartARound will reset the value to zero.
+
+
|
+ +inline | +
Initialize message manager.
+comm | MPI_Comm object. |
+
|
+ +inline | +
Synchronize the inner vertices' data of a vertex array to their mirrors. The data_out and data_in are the same vertex array.
+GRAPH_T | |
DATA_T |
frag | |
data |
+
|
+ +inline | +
This function will be called by worker after a step to determine whether evaluation is terminated.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::Bitset< SIZE_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | Bitset (SIZE_T size) |
+void | Init (SIZE_T size) |
+dev::Bitset< SIZE_T > | DeviceObject () |
+void | Clear () |
+void | Clear (const Stream &stream) |
+void | SetBit (SIZE_T pos) |
+void | SetBit (SIZE_T pos, const Stream &stream) |
+void | Swap (Bitset< SIZE_T > &other) |
+SIZE_T | GetSize () const |
+SIZE_T | GetPositiveCount () const |
+SIZE_T | GetPositiveCount (const Stream &stream) const |
+Static Private Member Functions | |
+static SIZE_T | getNumWords (SIZE_T size) |
+Private Attributes | |
+thrust::device_vector< uint64_t > | data_ |
+SIZE_T | size_ {} |
+SharedValue< SIZE_T > | positive_count_ |
+Static Private Attributes | |
+static const uint64_t | kBitsPerWord = 64 |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::COOFragment< OID_T, VID_T, VDATA_T, EDATA_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | oid_t = OID_T |
+using | vid_t = VID_T |
+using | vdata_t = VDATA_T |
+using | edata_t = EDATA_T |
+using | vertex_t = Vertex< VID_T > |
+using | edge_t = Edge< VID_T, EDATA_T > |
+using | device_t = dev::COOFragment< OID_T, VID_T, VDATA_T, EDATA_T > |
+Public Member Functions | |
+void | Init (const thrust::host_vector< edge_t > &edges) |
+device_t | DeviceObject () |
+size_t | GetEdgeNum () const |
+Private Attributes | |
+thrust::device_vector< edge_t > | edges_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::Communicator, including all inherited members.
+AllGather(T msg_in) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inline |
comm_ (defined in grape::cuda::Communicator) | grape::cuda::Communicator | private |
Communicator()=default (defined in grape::cuda::Communicator) | grape::cuda::Communicator | |
InitCommunicator(MPI_Comm comm, ncclComm_t nccl_comm) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inline |
Max(T msg_in, T &msg_out, const Stream &stream) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inline |
Max(T *msg_in, T &msg_out, const Stream &stream) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inline |
Max(T msg_in, T &msg_out) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inline |
Min(T msg_in, T &msg_out, const Stream &stream) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inline |
Min(T *msg_in, T &msg_out, const Stream &stream) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inline |
Min(T msg_in, T &msg_out) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inline |
mpiType() (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inlineprivate |
n_rank_ (defined in grape::cuda::Communicator) | grape::cuda::Communicator | private |
nccl_comm_ (defined in grape::cuda::Communicator) | grape::cuda::Communicator | private |
ncclType() (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inlineprivate |
reduce(T *msg_in, T *msg_out, ncclRedOp_t op, const Stream &stream) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inlineprivate |
reduce(T msg_in, T &msg_out, ncclRedOp_t op, const Stream &stream) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inlineprivate |
reduce(T *msg_in, T &msg_out, ncclRedOp_t op, const Stream &stream) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inlineprivate |
reduce(const T *msg_in, T *msg_out, MPI_Op op) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inlineprivate |
Sum(T msg_in, T &msg_out, const Stream &stream) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inline |
Sum(T *msg_in, T &msg_out, const Stream &stream) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inline |
Sum(T msg_in, T &msg_out) (defined in grape::cuda::Communicator) | grape::cuda::Communicator | inline |
~Communicator()=default (defined in grape::cuda::Communicator) | grape::cuda::Communicator | virtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | InitCommunicator (MPI_Comm comm, ncclComm_t nccl_comm) |
+template<typename T > | |
void | Sum (T msg_in, T &msg_out, const Stream &stream) |
+template<typename T > | |
void | Sum (T *msg_in, T &msg_out, const Stream &stream) |
+template<typename T > | |
void | Sum (T msg_in, T &msg_out) |
+template<typename T > | |
void | Min (T msg_in, T &msg_out, const Stream &stream) |
+template<typename T > | |
void | Min (T *msg_in, T &msg_out, const Stream &stream) |
+template<typename T > | |
void | Min (T msg_in, T &msg_out) |
+template<typename T > | |
void | Max (T msg_in, T &msg_out, const Stream &stream) |
+template<typename T > | |
void | Max (T *msg_in, T &msg_out, const Stream &stream) |
+template<typename T > | |
void | Max (T msg_in, T &msg_out) |
+template<typename T > | |
std::vector< T > | AllGather (T msg_in) |
+Private Member Functions | |
+template<typename T > | |
ncclDataType_t | ncclType () |
+template<typename T > | |
MPI_Datatype | mpiType () |
+template<typename T > | |
void | reduce (T *msg_in, T *msg_out, ncclRedOp_t op, const Stream &stream) |
+template<typename T > | |
void | reduce (T msg_in, T &msg_out, ncclRedOp_t op, const Stream &stream) |
+template<typename T > | |
void | reduce (T *msg_in, T &msg_out, ncclRedOp_t op, const Stream &stream) |
+template<typename T > | |
void | reduce (const T *msg_in, T *msg_out, MPI_Op op) |
+Private Attributes | |
+int | n_rank_ {} |
+ncclComm_t | nccl_comm_ {} |
+MPI_Comm | comm_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::DenseVertexSet< VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A vertex set with dense vertices. + More...
+ +#include <vertex_set.h>
+Public Member Functions | |
+ | DenseVertexSet (const VertexRange< VID_T > &range) |
+void | Init (const VertexRange< VID_T > &range) |
+dev::DenseVertexSet< VID_T > | DeviceObject () |
+void | Insert (Vertex< VID_T > u) |
+VertexRange< VID_T > | Range () const |
+VID_T | Count () const |
+VID_T | Count (const Stream &stream) const |
+void | Clear () |
+void | Clear (const Stream &stream) |
+void | Swap (DenseVertexSet< VID_T > &rhs) |
+Private Attributes | |
+VID_T | beg_ {} |
+VID_T | end_ {} |
+Bitset< VID_T > | bs_ {} |
A vertex set with dense vertices.
+VID_T | Vertex ID type. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::DeviceBuffer< T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | DeviceBuffer (size_t size) |
+ | DeviceBuffer (const DeviceBuffer< T > &rhs) |
+ | DeviceBuffer (DeviceBuffer< T > &&rhs) noexcept |
+DeviceBuffer & | operator= (const DeviceBuffer< T > &rhs) |
+DeviceBuffer & | operator= (DeviceBuffer< T > &&rhs) noexcept |
+void | resize (size_t size) |
+T * | data () |
+const T * | data () const |
+size_t | size () const |
+ArrayView< T > | DeviceObject () |
+Private Attributes | |
+size_t | capacity_ {} |
+size_t | size_ {} |
+T * | data_ {} |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::Event, including all inherited members.
+Create() (defined in grape::cuda::Event) | grape::cuda::Event | inlinestatic |
Event()=default (defined in grape::cuda::Event) | grape::cuda::Event | |
Event(const Event &other)=default (defined in grape::cuda::Event) | grape::cuda::Event | |
Event(Event &&other) noexcept (defined in grape::cuda::Event) | grape::cuda::Event | inline |
Event(std::shared_ptr< IEvent > internal_event) (defined in grape::cuda::Event) | grape::cuda::Event | inlineexplicit |
Event(cudaEvent_t cuda_event, const std::function< void(cudaEvent_t)> &releaser) (defined in grape::cuda::Event) | grape::cuda::Event | inlineprivate |
internal_event_ (defined in grape::cuda::Event) | grape::cuda::Event | private |
operator=(Event &&other) noexcept (defined in grape::cuda::Event) | grape::cuda::Event | inline |
operator=(const Event &other) (defined in grape::cuda::Event) | grape::cuda::Event | inline |
Query() const (defined in grape::cuda::Event) | grape::cuda::Event | inline |
Record(const Stream &stream) const (defined in grape::cuda::Event) | grape::cuda::Event | inline |
Sync() const (defined in grape::cuda::Event) | grape::cuda::Event | inline |
Wait(const Stream &stream) const (defined in grape::cuda::Event) | grape::cuda::Event | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | Event (const Event &other)=default |
+ | Event (Event &&other) noexcept |
+Event & | operator= (Event &&other) noexcept |
+Event & | operator= (const Event &other) |
+ | Event (std::shared_ptr< IEvent > internal_event) |
+void | Record (const Stream &stream) const |
+void | Wait (const Stream &stream) const |
+void | Sync () const |
+bool | Query () const |
+Static Public Member Functions | |
+static Event | Create () |
+Private Member Functions | |
+ | Event (cudaEvent_t cuda_event, const std::function< void(cudaEvent_t)> &releaser) |
+Private Attributes | |
+std::shared_ptr< IEvent > | internal_event_ {} |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::EventHolder, including all inherited members.
+cuda_event() const (defined in grape::cuda::EventHolder) | grape::cuda::EventHolder | inlinevirtual |
cuda_event_ (defined in grape::cuda::EventHolder) | grape::cuda::EventHolder | private |
EventHolder(cudaEvent_t cuda_event, std::function< void(cudaEvent_t)> releaser) (defined in grape::cuda::EventHolder) | grape::cuda::EventHolder | inline |
Query() const override (defined in grape::cuda::EventHolder) | grape::cuda::EventHolder | inlinevirtual |
releaser_ (defined in grape::cuda::EventHolder) | grape::cuda::EventHolder | private |
Sync() const override (defined in grape::cuda::EventHolder) | grape::cuda::EventHolder | inlinevirtual |
Wait(cudaStream_t stream) const override (defined in grape::cuda::EventHolder) | grape::cuda::EventHolder | inlinevirtual |
~EventHolder() (defined in grape::cuda::EventHolder) | grape::cuda::EventHolder | inline |
~IEvent()=default (defined in grape::cuda::IEvent) | grape::cuda::IEvent | virtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Private Attributes | |
+const cudaEvent_t | cuda_event_ |
+std::function< void(cudaEvent_t)> | releaser_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::GPUAppBase< FRAG_T, CONTEXT_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
GPUAppBase is a base class for GPU apps. Users can process messages in a more flexible way in this kind of app. It contains an GPUMessageManager to process messages, which enables send/receive messages during computation. This strategy improves performance by overlapping the communication time and the evaluation time. + More...
+ +#include <gpu_app_base.h>
+Public Types | |
+using | message_manager_t = GPUMessageManager |
+Public Member Functions | |
virtual void | PEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0 |
Partial evaluation to implement. More... | |
virtual void | IncEval (const FRAG_T &graph, CONTEXT_T &context, message_manager_t &messages)=0 |
Incremental evaluation to implement. More... | |
+Static Public Attributes | |
+static constexpr bool | need_split_edges = false |
+static constexpr bool | need_build_device_vm = false |
static constexpr grape::MessageStrategy | message_strategy |
static constexpr grape::LoadStrategy | load_strategy |
GPUAppBase is a base class for GPU apps. Users can process messages in a more flexible way in this kind of app. It contains an GPUMessageManager to process messages, which enables send/receive messages during computation. This strategy improves performance by overlapping the communication time and the evaluation time.
+FRAG_T | |
CONTEXT_T |
+
|
+ +pure virtual | +
Incremental evaluation to implement.
+graph | |
context | |
messages |
+
|
+ +pure virtual | +
Partial evaluation to implement.
+graph | |
context | |
messages |
+
|
+ +staticconstexpr | +
+
|
+ +staticconstexpr | +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::GPUBatchShuffleWorker< APP_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | fragment_t = typename APP_T::fragment_t |
+using | context_t = typename APP_T::context_t |
+using | message_manager_t = BatchShuffleMessageManager |
+Public Member Functions | |
+ | GPUBatchShuffleWorker (std::shared_ptr< APP_T > app, std::shared_ptr< fragment_t > graph) |
+template<class... Args> | |
void | Init (const grape::CommSpec &comm_spec, Args &&... args) |
+void | Finalize () |
+void | Query () |
+std::shared_ptr< context_t > | GetContext () |
+void | Output (std::ostream &os) |
+Private Attributes | |
+std::shared_ptr< APP_T > | app_ |
+std::shared_ptr< context_t > | context_ |
+message_manager_t | messages_ |
+grape::CommSpec | comm_spec_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::GPUMessageManager, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
void | Init (const grape::CommSpec &comm_spec) |
Initialize message manager. More... | |
+void | InitBuffer (size_t send_buffer_capacity, size_t recv_buffer_capacity) |
+void | DropBuffer () |
+void | Start () |
This function will be called before Init step of applications. | |
+void | StartARound () |
This function will be called before each evaluation step of applications. | |
+void | FinishARound () |
This function will be called after each evaluation step of applications. | |
+void | Finalize () const |
This function will be called after the evaluation of applications. | |
bool | ToTerminate () const |
This function will be called by worker after a step to determine whether evaluation is terminated. More... | |
size_t | GetMsgSize () const |
Get size of messages sent by this message manager instance. The return value is valid only after FinishARound is called. StartARound will reset the value to zero. More... | |
void | ForceContinue () |
Force continue to evaluate one more round even if all workers stop sending message. More... | |
+double | GetAccumulatedCommTime () const |
+dev::MessageManager | DeviceObject () |
void | DeviceWarmup (size_t np) |
For some GPU servers, the first kernel always takes a long time. This is a Dummy function to warm up the device. More... | |
+template<typename GRAPH_T , typename MESSAGE_T = grape::EmptyType, typename FUNC_T > | |
void | ParallelProcess (const GRAPH_T &frag, FUNC_T func) |
+template<typename MESSAGE_T = grape::EmptyType, typename FUNC_T > | |
void | ParallelProcess (FUNC_T func) |
+Stream & | stream () |
+ncclComm_t | nccl_comm () |
+Private Member Functions | |
+bool | syncLengths () |
+Private Attributes | |
+InArchiveGroup | to_send_ |
+OutArchiveGroup | to_recv_ |
+pinned_vector< dev::OutArchive > | pinned_to_recv_ |
+thrust::device_vector< dev::InArchive > | d_to_send_ |
+thrust::device_vector< dev::OutArchive > | d_to_recv_ |
+Event | computation_finished_ |
+grape::CommSpec | comm_spec_ |
+std::shared_ptr< ncclComm_t > | nccl_comm_ |
+Stream | compute_stream_ |
+Stream | comm_stream_ |
+std::vector< size_t > | lengths_out_ |
+std::vector< size_t > | lengths_in_ |
+size_t | sent_size_ {} |
+double | total_memcpy_time_ {} |
+bool | to_terminate_ {} |
+bool | force_continue_ {} |
+fid_t | fid_ |
+fid_t | fnum_ |
+
|
+ +inline | +
For some GPU servers, the first kernel always takes a long time. This is a Dummy function to warm up the device.
+This function can be called by applications.
+ +
+
|
+ +inline | +
Force continue to evaluate one more round even if all workers stop sending message.
+This function can be called by applications.
+ +
+
|
+ +inline | +
Get size of messages sent by this message manager instance. The return value is valid only after FinishARound is called. StartARound will reset the value to zero.
+
+
|
+ +inline | +
Initialize message manager.
+comm | MPI_Comm object. |
+
|
+ +inline | +
This function will be called by worker after a step to determine whether evaluation is terminated.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::GPUWorker< APP_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | fragment_t = typename APP_T::fragment_t |
+using | context_t = typename APP_T::context_t |
+using | message_manager_t = GPUMessageManager |
+Public Member Functions | |
+ | GPUWorker (std::shared_ptr< APP_T > app, std::shared_ptr< fragment_t > graph) |
+template<class... Args> | |
void | Init (const grape::CommSpec &comm_spec, Args &&... args) |
+void | Finalize () |
+void | Query () |
+std::shared_ptr< context_t > | GetContext () |
+void | Output (std::ostream &os) |
+Private Attributes | |
+std::shared_ptr< APP_T > | app_ |
+std::shared_ptr< context_t > | context_ |
+message_manager_t | messages_ |
+grape::CommSpec | comm_spec_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::HostFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | base_t = ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy, VERTEX_MAP_T > |
+using | internal_vertex_t = typename base_t::internal_vertex_t |
+using | edge_t = typename base_t::edge_t |
+using | nbr_t = typename base_t::nbr_t |
+using | vertex_t = typename base_t::vertex_t |
+using | const_adj_list_t = typename base_t::const_adj_list_t |
+using | adj_list_t = typename base_t::adj_list_t |
+using | traits_t = typename base_t::traits_t |
+using | vid_t = VID_T |
+using | oid_t = OID_T |
+using | vdata_t = VDATA_T |
+using | edata_t = EDATA_T |
+using | vertex_range_t = typename base_t::vertex_range_t |
+using | vertex_map_t = typename base_t::vertex_map_t |
+using | dev_vertex_map_t = cuda::DeviceVertexMap< vertex_map_t > |
+using | inner_vertices_t = typename base_t::inner_vertices_t |
+using | outer_vertices_t = typename base_t::outer_vertices_t |
+using | device_t = dev::DeviceFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy > |
+using | coo_t = COOFragment< oid_t, vid_t, vdata_t, edata_t > |
+using | IsEdgeCut = std::true_type |
+using | IsVertexCut = std::false_type |
![]() | |
+using | traits_t = ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > |
+using | base_t = CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, traits_t > |
+using | internal_vertex_t = internal::Vertex< VID_T, VDATA_T > |
+using | edge_t = Edge< VID_T, EDATA_T > |
+using | nbr_t = Nbr< VID_T, EDATA_T > |
+using | vertex_t = Vertex< VID_T > |
+using | vid_t = VID_T |
+using | oid_t = OID_T |
+using | vdata_t = VDATA_T |
+using | edata_t = EDATA_T |
+using | vertex_map_t = typename traits_t::vertex_map_t |
+using | IsEdgeCut = std::true_type |
+using | IsVertexCut = std::false_type |
+using | vertex_range_t = VertexRange< VID_T > |
+using | inner_vertices_t = typename traits_t::inner_vertices_t |
+using | outer_vertices_t = typename traits_t::outer_vertices_t |
+using | vertices_t = typename traits_t::vertices_t |
+using | inner_vertex_array_t = VertexArray< inner_vertices_t, T > |
+using | outer_vertex_array_t = VertexArray< outer_vertices_t, T > |
+using | vertex_array_t = VertexArray< vertices_t, T > |
+using | adj_list_t = typename base_t::adj_list_t |
+using | const_adj_list_t = typename base_t::const_adj_list_t |
![]() | |
+using | nbr_t = Nbr< VID_T, EDATA_T > |
+using | vertex_t = Vertex< VID_T > |
+using | const_adj_list_t = ConstAdjList< VID_T, EDATA_T > |
+using | adj_list_t = AdjList< VID_T, EDATA_T > |
+using | base_t = EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T, GlobalVertexMap< OID_T, VID_T > > > |
![]() | |
+using | base_t = FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T > |
+using | vid_t = VID_T |
+using | vertex_t = Vertex< VID_T > |
+using | inner_vertices_t = typename TRAITS_T::inner_vertices_t |
+using | outer_vertices_t = typename TRAITS_T::outer_vertices_t |
+using | sub_vertices_t = typename TRAITS_T::sub_vertices_t |
+using | mirror_vertices_t = typename TRAITS_T::mirror_vertices_t |
![]() | |
+using | vertex_map_t = typename TRAITS_T::vertex_map_t |
+using | fragment_adj_list_t = typename TRAITS_T::fragment_adj_list_t |
+using | fragment_const_adj_list_t = typename TRAITS_T::fragment_const_adj_list_t |
+using | vertices_t = typename TRAITS_T::vertices_t |
+Public Member Functions | |
+ | HostFragment (std::shared_ptr< vertex_map_t > vm_ptr) |
+void | Init (fid_t fid, bool directed, std::vector< internal_vertex_t > &vertices, std::vector< edge_t > &edges) |
+template<typename IOADAPTOR_T > | |
void | Serialize (const std::string &prefix) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (const std::string &prefix, const fid_t fid) |
void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf) |
For some kind of applications, specific data structures will be generated. More... | |
+const vid_t * | GetOuterVerticesGid () const |
+bool | GetOuterVertex (const OID_T &oid, vertex_t &v) const |
+bool | Oid2Gid (const OID_T &oid, VID_T &gid) const |
+device_t | DeviceObject () const |
+void | __allocate_device_fragment__ () |
+void | OffloadTopology () const |
+void | ReloadTopology () const |
+void | ReleaseDeviceCSR () |
+std::shared_ptr< coo_t > | ConvertToCOO (bool release_csr=false) |
+void | __init_edges_splitter__ (const Stream &stream, grape::Array< nbr_t *, grape::Allocator< nbr_t * >> const &eoffset, std::vector< grape::VertexArray< inner_vertices_t, nbr_t * >> const &espliters, thrust::device_vector< nbr_t * > &d_eoffset, std::vector< thrust::device_vector< nbr_t * >> &d_espliters_holder, thrust::device_vector< ArrayView< nbr_t * >> &d_espliters) |
+void | __init_edges_splitter_by_fragment__ (const Stream &stream, grape::Array< nbr_t *, grape::Allocator< nbr_t * >> const &eoffset, std::vector< grape::VertexArray< inner_vertices_t, nbr_t * >> const &espliters, thrust::device_vector< nbr_t * > &d_eoffset, std::vector< thrust::device_vector< nbr_t * >> &d_espliters_holder, thrust::device_vector< ArrayView< nbr_t * >> &d_espliters) |
+const VDATA_T & | GetData (const vertex_t &v) const override |
+adj_list_t | GetIncomingAdjList (const vertex_t &v, fid_t src_fid) override |
+const_adj_list_t | GetIncomingAdjList (const vertex_t &v, fid_t src_fid) const override |
+adj_list_t | GetIncomingInnerVertexAdjList (const vertex_t &v) override |
+const_adj_list_t | GetIncomingInnerVertexAdjList (const vertex_t &v) const override |
+adj_list_t | GetIncomingOuterVertexAdjList (const vertex_t &v) override |
+const_adj_list_t | GetIncomingOuterVertexAdjList (const vertex_t &v) const override |
+adj_list_t | GetOutgoingAdjList (const vertex_t &v, fid_t dst_fid) override |
+const_adj_list_t | GetOutgoingAdjList (const vertex_t &v, fid_t dst_fid) const override |
+adj_list_t | GetOutgoingInnerVertexAdjList (const vertex_t &v) override |
+const_adj_list_t | GetOutgoingInnerVertexAdjList (const vertex_t &v) const override |
+adj_list_t | GetOutgoingOuterVertexAdjList (const vertex_t &v) override |
+const_adj_list_t | GetOutgoingOuterVertexAdjList (const vertex_t &v) const override |
+void | SetData (const vertex_t &v, const VDATA_T &val) override |
![]() | |
+ | ImmutableEdgecutFragment (std::shared_ptr< vertex_map_t > vm_ptr) |
+void | Init (fid_t fid, bool directed, std::vector< internal_vertex_t > &vertices, std::vector< edge_t > &edges) override |
+void | Serialize (const std::string &prefix) |
+void | Deserialize (const std::string &prefix, const fid_t fid) |
void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf) override |
For some kind of applications, specific data structures will be generated. More... | |
const VDATA_T & | GetData (const vertex_t &v) const override |
Get the data of a vertex. More... | |
void | SetData (const vertex_t &v, const VDATA_T &val) override |
Set the data of a vertex. More... | |
+bool | OuterVertexGid2Lid (VID_T gid, VID_T &lid) const override |
VID_T | GetOuterVertexGid (vertex_t v) const override |
Convert from inner vertex handle to its global id. More... | |
adj_list_t | GetIncomingInnerVertexAdjList (const vertex_t &v) override |
Returns the incoming adjacent inner vertices of v. More... | |
const_adj_list_t | GetIncomingInnerVertexAdjList (const vertex_t &v) const override |
Returns the incoming adjacent inner vertices of v. More... | |
adj_list_t | GetIncomingOuterVertexAdjList (const vertex_t &v) override |
Returns the incoming adjacent outer vertices of v. More... | |
const_adj_list_t | GetIncomingOuterVertexAdjList (const vertex_t &v) const override |
Returns the incoming adjacent outer vertices of v. More... | |
adj_list_t | GetOutgoingInnerVertexAdjList (const vertex_t &v) override |
Returns the outgoing adjacent inner vertices of v. More... | |
const_adj_list_t | GetOutgoingInnerVertexAdjList (const vertex_t &v) const override |
Returns the outgoing adjacent inner vertices of v. More... | |
adj_list_t | GetOutgoingOuterVertexAdjList (const vertex_t &v) override |
Returns the outgoing adjacent outer vertices of v. More... | |
const_adj_list_t | GetOutgoingOuterVertexAdjList (const vertex_t &v) const override |
Returns the outgoing adjacent outer vertices of v. More... | |
+adj_list_t | GetIncomingAdjList (const vertex_t &v, fid_t src_fid) override |
+const_adj_list_t | GetIncomingAdjList (const vertex_t &v, fid_t src_fid) const override |
virtual AdjList< VID_T, EDATA_T > | GetIncomingAdjList (const Vertex< VID_T > &v)=0 |
Returns the incoming adjacent vertices of v. More... | |
+virtual ConstAdjList< VID_T, EDATA_T > | GetIncomingAdjList (const Vertex< VID_T > &v) const =0 |
+virtual fragment_adj_list_t | GetIncomingAdjList (const Vertex< VID_T > &v, fid_t fid)=0 |
+virtual fragment_const_adj_list_t | GetIncomingAdjList (const Vertex< VID_T > &v, fid_t fid) const =0 |
+adj_list_t | GetOutgoingAdjList (const vertex_t &v, fid_t dst_fid) override |
+const_adj_list_t | GetOutgoingAdjList (const vertex_t &v, fid_t dst_fid) const override |
virtual AdjList< VID_T, EDATA_T > | GetOutgoingAdjList (const Vertex< VID_T > &v)=0 |
Returns the outgoing adjacent vertices of v. More... | |
+virtual ConstAdjList< VID_T, EDATA_T > | GetOutgoingAdjList (const Vertex< VID_T > &v) const =0 |
+virtual fragment_adj_list_t | GetOutgoingAdjList (const Vertex< VID_T > &v, fid_t fid)=0 |
+virtual fragment_const_adj_list_t | GetOutgoingAdjList (const Vertex< VID_T > &v, fid_t fid) const =0 |
+void | init (fid_t fid, bool directed) |
fid_t | GetFragId (const Vertex< VID_T > &u) const |
Get the ID of fragment the input vertex belongs to. More... | |
![]() | |
size_t | GetEdgeNum () const override |
Returns the number of edges in this fragment. More... | |
+size_t | GetOutgoingEdgeNum () const |
+size_t | GetIncomingEdgeNum () const |
bool | HasChild (const vertex_t &v) const override |
Check if vertex v has a child, that is, existing an edge v->u. More... | |
bool | HasParent (const vertex_t &v) const override |
Check if vertex v has a parent, that is, existing an edge u->v. More... | |
int | GetLocalOutDegree (const vertex_t &v) const override |
Returns the out-degree of vertex v in this fragment.<Paste> More... | |
int | GetLocalInDegree (const vertex_t &v) const override |
Returns the in-degree of vertex v in this fragment. More... | |
adj_list_t | GetIncomingAdjList (const vertex_t &v) override |
Returns the incoming adjacent vertices of v. More... | |
const_adj_list_t | GetIncomingAdjList (const vertex_t &v) const override |
Returns the incoming adjacent vertices of v. More... | |
adj_list_t | GetOutgoingAdjList (const vertex_t &v) override |
Returns the outgoing adjacent vertices of v. More... | |
const_adj_list_t | GetOutgoingAdjList (const vertex_t &v) const override |
Returns the outgoing adjacent vertices of v. More... | |
bool | IsIncomingBorderVertex (const vertex_t &v) const |
Check if inner vertex v is an incoming border vertex, that is, existing edge u->v, u is an outer vertex. More... | |
bool | IsOutgoingBorderVertex (const vertex_t &v) const |
Check if inner vertex v is an outgoing border vertex, that is, existing edge v->u, u is an outer vertex. More... | |
bool | IsBorderVertex (const vertex_t &v) const |
Check if inner vertex v is an border vertex, that is, existing edge v->u or u->v, u is an outer vertex. More... | |
DestList | IEDests (const vertex_t &v) const override |
Return the incoming edge destination fragment ID list of a inner vertex. More... | |
+size_t | IEDestsSize () const override |
DestList | OEDests (const vertex_t &v) const override |
Return the outgoing edge destination fragment ID list of a Vertex. More... | |
+size_t | OEDestsSize () const override |
DestList | IOEDests (const vertex_t &v) const override |
Return the edge destination fragment ID list of a inner vertex. More... | |
+size_t | IOEDestsSize () const override |
bool | IsInnerVertex (const Vertex< VID_T > &v) const |
Check if vertex v is inner vertex of this fragment. More... | |
bool | IsOuterVertex (const Vertex< VID_T > &v) const |
Check if vertex v is outer vertex of this fragment. More... | |
VID_T | GetInnerVerticesNum () const |
Returns the number of inner vertices in this fragment. More... | |
+void | initMirrorInfo (const CommSpec &comm_spec) |
![]() | |
VID_T | GetInnerVerticesNum () const |
Returns the number of inner vertices in this fragment. More... | |
VID_T | GetOuterVerticesNum () const |
Returns the number of outer vertices in this fragment. More... | |
const inner_vertices_t & | InnerVertices () const |
Returns the vertex range of inner vertices in this fragment. More... | |
const outer_vertices_t & | OuterVertices () const |
Returns the vertex range of outer vertices in this fragment. More... | |
+const sub_vertices_t & | OuterVertices (fid_t fid) const |
+const mirror_vertices_t & | MirrorVertices (fid_t fid) const |
bool | IsInnerVertex (const Vertex< VID_T > &v) const |
Check if vertex v is inner vertex of this fragment. More... | |
bool | IsOuterVertex (const Vertex< VID_T > &v) const |
Check if vertex v is outer vertex of this fragment. More... | |
bool | GetInnerVertex (const OID_T &oid, Vertex< VID_T > &v) const |
Get a inner vertex with original ID vid. More... | |
OID_T | GetInnerVertexId (vertex_t v) const |
Get the original ID of an inner vertex. More... | |
OID_T | GetOuterVertexId (vertex_t v) const |
Get the original ID of an outer vertex. More... | |
bool | InnerVertexGid2Vertex (VID_T gid, Vertex< VID_T > &v) const |
Convert from global id to an inner vertex handle. More... | |
bool | OuterVertexGid2Vertex (VID_T gid, Vertex< VID_T > &v) const |
Convert from global id to an outer vertex handle. More... | |
VID_T | GetInnerVertexGid (vertex_t v) const |
Convert from outer vertex handle to its global id. More... | |
bool | Gid2Vertex (const vid_t &gid, vertex_t &v) const override |
Convert from global id to a vertex handle. More... | |
vid_t | Vertex2Gid (const vertex_t &v) const override |
Convert from vertex handle to its global id. More... | |
fid_t | fid () const |
Returns the ID of this fragment. More... | |
fid_t | fnum () const |
Returns the number of fragments. More... | |
![]() | |
+ | FragmentBase (std::shared_ptr< vertex_map_t > vm_ptr) |
+std::shared_ptr< vertex_map_t > | GetVertexMap () |
+const std::shared_ptr< vertex_map_t > | GetVertexMap () const |
virtual void | Init (fid_t fid, bool directed, std::vector< internal::Vertex< VID_T, VDATA_T >> &vertices, std::vector< Edge< VID_T, EDATA_T >> &edges)=0 |
Construct a fragment with a set of vertices and edges. More... | |
bool | directed () const |
Returns true if the fragment is directed, false otherwise. More... | |
fid_t | fid () const |
Returns the ID of this fragment. More... | |
fid_t | fnum () const |
Returns the number of fragments. More... | |
VID_T | GetVerticesNum () const |
Returns the number of vertices in this fragment. More... | |
size_t | GetTotalVerticesNum () const |
Returns the number of vertices in the entire graph. More... | |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
bool | GetVertex (const OID_T &oid, Vertex< VID_T > &v) const |
Get a vertex with original ID vid. More... | |
OID_T | GetId (const Vertex< VID_T > &v) const |
Get the original ID of a vertex. More... | |
+OID_T | Gid2Oid (VID_T gid) const |
fid_t | GetFragId (const Vertex< VID_T > &u) const |
Get the ID of fragment the input vertex belongs to. More... | |
+Static Public Attributes | |
+static constexpr grape::LoadStrategy | load_strategy = _load_strategy |
![]() | |
+static constexpr LoadStrategy | load_strategy |
+Protected Member Functions | |
+void | __initMessageDestination (const Stream &stream, const grape::MessageStrategy &msg_strategy) |
+void | __initDestFidList (const Stream &stream, bool in_edge, bool out_edge, grape::Array< fid_t, grape::Allocator< fid_t >> const &fid_list, grape::Array< fid_t *, grape::Allocator< fid_t * >> const &fid_list_offset, thrust::device_vector< fid_t > &d_fid_list, thrust::device_vector< fid_t * > &d_fid_list_offset) |
+void | __initMirrorInfo (const CommSpec &comm_spec) |
![]() | |
+void | initOuterVerticesOfFragment () |
+void | splitEdges () |
+void | splitEdgesByFragment () |
![]() | |
+void | buildCSR (const typename csr_builder_t::vertex_range_t &vertex_range, std::vector< Edge< VID_T, EDATA_T >> &edges, LoadStrategy load_strategy) |
+void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+nbr_t * | get_ie_begin (const vertex_t &v) |
+const nbr_t * | get_ie_begin (const vertex_t &v) const |
+nbr_t * | get_ie_end (const vertex_t &v) |
+const nbr_t * | get_ie_end (const vertex_t &v) const |
+nbr_t * | get_oe_begin (const vertex_t &v) |
+const nbr_t * | get_oe_begin (const vertex_t &v) const |
+nbr_t * | get_oe_end (const vertex_t &v) |
+const nbr_t * | get_oe_end (const vertex_t &v) const |
+bool | Gid2Lid (VID_T gid, VID_T &lid) const |
+bool | InnerVertexGid2Lid (VID_T gid, VID_T &lid) const |
+bool | IsInnerVertexGid (VID_T gid) const |
+bool | IsInnerVertexLid (VID_T lid) const |
+virtual bool | OuterVertexGid2Lid (VID_T gid, VID_T &lid) const =0 |
![]() | |
+bool | IsInnerVertexGid (VID_T gid) const |
+bool | IsInnerVertexLid (VID_T lid) const |
+bool | Gid2Lid (VID_T gid, VID_T &lid) const |
+bool | InnerVertexGid2Lid (VID_T gid, VID_T &lid) const |
+void | initMirrorInfo (const CommSpec &comm_spec) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
![]() | |
+void | init (fid_t fid, bool directed) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+Protected Attributes | |
+std::shared_ptr< dev_vertex_map_t > | d_vm_ptr_ |
+std::shared_ptr< CUDASTL::HashMap< VID_T, VID_T > > | d_ovg2l_ |
+thrust::device_vector< VID_T > | d_ovgid_ |
+thrust::device_vector< nbr_t > | d_ie_ |
+thrust::device_vector< nbr_t > | d_oe_ |
+thrust::device_vector< nbr_t * > | d_ieoffset_ |
+thrust::device_vector< nbr_t * > | d_oeoffset_ |
+thrust::device_vector< VDATA_T > | d_vdata_ |
+thrust::device_vector< fid_t > | d_idst_ |
+thrust::device_vector< fid_t > | d_odst_ |
+thrust::device_vector< fid_t > | d_iodst_ |
+thrust::device_vector< fid_t * > | d_idoffset_ |
+thrust::device_vector< fid_t * > | d_odoffset_ |
+thrust::device_vector< fid_t * > | d_iodoffset_ |
+std::vector< thrust::device_vector< nbr_t * > > | d_iespliters_holder_ |
+std::vector< thrust::device_vector< nbr_t * > > | d_oespliters_holder_ |
+thrust::device_vector< ArrayView< nbr_t * > > | d_iespliters_ |
+thrust::device_vector< ArrayView< nbr_t * > > | d_oespliters_ |
+thrust::device_vector< vertex_range_t > | d_outer_vertices_of_frag_ |
+std::vector< thrust::device_vector< vertex_t > > | d_mirrors_of_frag_holder_ |
+thrust::device_vector< ArrayView< vertex_t > > | d_mirrors_of_frag_ |
+std::shared_ptr< coo_t > | coo_frag_ |
+VID_T | ovnum_ |
+ska::flat_hash_map< VID_T, VID_T, std::hash< VID_T >, std::equal_to< VID_T >, Allocator< std::pair< VID_T, VID_T > > > | ovg2l_ |
+Array< VID_T, Allocator< VID_T > > | ovgid_ |
+Array< VDATA_T, Allocator< VDATA_T > > | vdata_ |
+std::vector< VertexArray< inner_vertices_t, nbr_t * > > | iespliters_ |
+std::vector< VertexArray< inner_vertices_t, nbr_t * > > | oespliters_ |
![]() | |
+VID_T | ovnum_ |
+ska::flat_hash_map< VID_T, VID_T, std::hash< VID_T >, std::equal_to< VID_T >, Allocator< std::pair< VID_T, VID_T > > > | ovg2l_ |
+Array< VID_T, Allocator< VID_T > > | ovgid_ |
+Array< VDATA_T, Allocator< VDATA_T > > | vdata_ |
+std::vector< VertexArray< inner_vertices_t, nbr_t * > > | iespliters_ |
+std::vector< VertexArray< inner_vertices_t, nbr_t * > > | oespliters_ |
+bool | splited_edges_by_fragment_ |
+bool | splited_edges_ |
+VID_T | ivnum_ |
+bool | directed_ |
+fid_t | fid_ |
+fid_t | fnum_ |
+IdParser< VID_T > | id_parser_ |
![]() | |
+csr_t | ie_ |
+csr_t | oe_ |
+ImmutableCSR< VID_T, fid_t > | idst_ |
+ImmutableCSR< VID_T, fid_t > | odst_ |
+ImmutableCSR< VID_T, fid_t > | iodst_ |
+bool | idst_built_ |
+bool | odst_built_ |
+bool | iodst_built_ |
+bool | mirror_info_initialized_ |
![]() | |
+inner_vertices_t | inner_vertices_ |
+outer_vertices_t | outer_vertices_ |
+std::vector< sub_vertices_t > | outer_vertices_of_frag_ |
+std::vector< mirror_vertices_t > | mirrors_of_frag_ |
+IdParser< VID_T > | id_parser_ |
+std::shared_ptr< vertex_map_t > | vm_ptr_ |
![]() | |
+fid_t | fid_ |
+fid_t | fnum_ |
+bool | directed_ |
+VID_T | ivnum_ |
+vertices_t | vertices_ |
+std::shared_ptr< vertex_map_t > | vm_ptr_ |
+IdParser< VID_T > | id_parser_ |
+Additional Inherited Members | |
![]() | |
+static std::string | type_info () |
+
|
+ +inlinevirtual | +
For some kind of applications, specific data structures will be generated.
+strategy | |
need_split_edge |
Implements grape::FragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::InArchive, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | InArchive (uint32_t capacity) |
+dev::InArchive | DeviceObject () |
+void | Allocate (uint32_t capacity) |
+uint32_t | size () const |
+uint32_t | size (const Stream &stream) const |
+uint32_t | capacity () const |
+void | Clear () |
+void | Clear (const Stream &stream) |
+bool | Empty () const |
+bool | Empty (const Stream &stream) const |
+char * | data () |
+Private Attributes | |
+thrust::device_vector< char > | buffer_ |
+SharedValue< uint32_t > | size_ |
+Friends | |
+class | grape::cuda::OutArchive |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::InArchiveGroup, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | InArchiveGroup (size_t group_size) |
+void | Init (size_t size) |
+dev::InArchive | DeviceObject (size_t idx) |
+void | resize (size_t idx, uint32_t capacity) |
+const SharedArray< uint32_t >::host_t & | size (const Stream &stream) const |
+SharedArray< uint32_t >::host_t & | size (const Stream &stream) |
+void | Clear (const Stream &stream) |
+bool | Empty (size_t idx, const Stream &stream) const |
+char * | data (size_t idx) |
+Private Attributes | |
+std::vector< thrust::device_vector< char > > | buffers_ |
+SharedArray< uint32_t > | sizes_ |
+Friends | |
+class | grape::cuda::OutArchive |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::OutArchive, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | OutArchive (uint32_t capacity) |
+ | OutArchive (const InArchive &ia) |
+dev::OutArchive | DeviceObject () |
+void | Clear () |
+void | Clear (const Stream &stream) |
+void | Allocate (uint32_t capacity) |
+char * | data () |
+void | SetLimit (uint32_t limit) |
+uint32_t | AvailableBytes () const |
+uint32_t | AvailableBytes (const Stream &stream) const |
+Private Attributes | |
+thrust::device_vector< char > | buffer_ |
+uint32_t | limit_ |
+SharedValue< uint32_t > | pos_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::OutArchiveGroup, including all inherited members.
+buffers_ (defined in grape::cuda::OutArchiveGroup) | grape::cuda::OutArchiveGroup | private |
Clear(const Stream &stream) (defined in grape::cuda::OutArchiveGroup) | grape::cuda::OutArchiveGroup | inline |
data(size_t idx) (defined in grape::cuda::OutArchiveGroup) | grape::cuda::OutArchiveGroup | inline |
DeviceObject(size_t idx) (defined in grape::cuda::OutArchiveGroup) | grape::cuda::OutArchiveGroup | inline |
Init(size_t group_size) (defined in grape::cuda::OutArchiveGroup) | grape::cuda::OutArchiveGroup | inline |
limits_ (defined in grape::cuda::OutArchiveGroup) | grape::cuda::OutArchiveGroup | private |
OutArchiveGroup()=default (defined in grape::cuda::OutArchiveGroup) | grape::cuda::OutArchiveGroup | |
OutArchiveGroup(size_t group_size) (defined in grape::cuda::OutArchiveGroup) | grape::cuda::OutArchiveGroup | inlineexplicit |
pos_ (defined in grape::cuda::OutArchiveGroup) | grape::cuda::OutArchiveGroup | private |
resize(size_t idx, uint32_t size) (defined in grape::cuda::OutArchiveGroup) | grape::cuda::OutArchiveGroup | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | OutArchiveGroup (size_t group_size) |
+void | Init (size_t group_size) |
+dev::OutArchive | DeviceObject (size_t idx) |
+void | Clear (const Stream &stream) |
+void | resize (size_t idx, uint32_t size) |
+char * | data (size_t idx) |
+Private Attributes | |
+std::vector< DeviceBuffer< char > > | buffers_ |
+std::vector< size_t > | limits_ |
+SharedArray< uint32_t > | pos_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::ParallelEngine, including all inherited members.
+__calc_prefix_sum__(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
degree_ (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | private |
ForEachEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachEdgeCM(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachEdgeCMOld(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachEdgeCTA(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachEdgeNone(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachEdgeStrict(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachEdgeWarp(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachIncomingEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachIncomingEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachIncomingInnerVertexEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachIncomingInnerVertexEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachIncomingOuterVertexEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachIncomingOuterVertexEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachOutgoingEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachOutgoingEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachOutgoingInnerVertexEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachOutgoingInnerVertexEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachOutgoingOuterVertexEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ForEachOutgoingOuterVertexEdge(const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
ParallelEngine() (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inline |
prefix_sum_ (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | private |
~ParallelEngine() (defined in grape::cuda::ParallelEngine) | grape::cuda::ParallelEngine | inlinevirtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP , EdgeDirection ed> | |
void | ForEachEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP > | |
void | ForEachOutgoingEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename EDGE_OP > | |
void | ForEachOutgoingEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP > | |
void | ForEachOutgoingInnerVertexEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename EDGE_OP > | |
void | ForEachOutgoingInnerVertexEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP > | |
void | ForEachOutgoingOuterVertexEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename EDGE_OP > | |
void | ForEachOutgoingOuterVertexEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP > | |
void | ForEachIncomingEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename EDGE_OP > | |
void | ForEachIncomingEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP > | |
void | ForEachIncomingInnerVertexEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename EDGE_OP > | |
void | ForEachIncomingInnerVertexEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP > | |
void | ForEachIncomingOuterVertexEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename EDGE_OP > | |
void | ForEachIncomingOuterVertexEdge (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, EDGE_OP op, LoadBalancing lb) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP , EdgeDirection ed> | |
void | ForEachEdgeCM (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP , EdgeDirection ed> | |
void | ForEachEdgeCTA (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP , EdgeDirection ed> | |
void | ForEachEdgeCMOld (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP , EdgeDirection ed> | |
void | ForEachEdgeWarp (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP , EdgeDirection ed> | |
void | ForEachEdgeStrict (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) |
+template<typename FRAG_T , typename WORK_SOURCE_T , typename ASSIGN_OP , typename EDGE_OP , EdgeDirection ed> | |
void | ForEachEdgeNone (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws, ASSIGN_OP assign_op, EDGE_OP op) |
+template<typename FRAG_T , typename WORK_SOURCE_T , EdgeDirection ed> | |
void | __calc_prefix_sum__ (const Stream &stream, const FRAG_T &dev_frag, const WORK_SOURCE_T &ws) |
+Private Attributes | |
+thrust::device_vector< uint32_t > | degree_ |
+thrust::device_vector< size_t > | prefix_sum_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::Queue< T, SIZE_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | device_t = dev::Queue< T, SIZE_T > |
+Public Member Functions | |
+void | Init (SIZE_T capacity) |
+void | Clear () |
+void | Clear (const Stream &stream) |
+size_t | size () const |
+size_t | size (const Stream &stream) |
+T * | data () |
+const T * | data () const |
+device_t | DeviceObject () |
+void | Swap (Queue< T, SIZE_T > &rhs) |
+Private Attributes | |
+thrust::device_vector< T > | data_ |
+SharedValue< SIZE_T > | counter_ {} |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::SharedArray< T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | device_t = thrust::device_vector< T > |
+using | host_t = pinned_vector< T > |
+Public Member Functions | |
+ | SharedArray (size_t size) |
+void | resize (size_t size) |
+void | set (size_t idx, const T &t) |
+void | set (size_t idx, const T &t, const Stream &stream) |
+void | fill (const T &t) |
+void | fill (const T &t, const Stream &stream) |
+thrust::device_vector< T >::reference | get (size_t idx) |
+thrust::device_vector< T >::const_reference | get (size_t idx) const |
+T | get (size_t idx, const Stream &stream) const |
+const host_t & | get (const Stream &stream) const |
+host_t & | get (const Stream &stream) |
+T * | data () |
+const T * | data () const |
+T * | data (size_t idx) |
+const T * | data (size_t idx) const |
+void | Assign (const SharedArray< T > &rhs) |
+void | Assign (const SharedArray< T > &rhs, const Stream &stream) |
+void | Swap (SharedArray< T > &rhs) |
+Private Attributes | |
+device_t | d_buffer_ |
+host_t | h_buffer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::SharedValue< T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | set (const T &t) |
+void | set (const T &t, const Stream &stream) |
+thrust::device_vector< T >::reference | get () |
+thrust::device_vector< T >::const_reference | get () const |
+T | get (const Stream &stream) const |
+T * | data () |
+const T * | data () const |
+void | Assign (const SharedValue< T > &rhs) |
+void | Assign (const SharedValue< T > &rhs, const Stream &stream) |
+void | Swap (SharedValue< T > &rhs) |
+Private Attributes | |
+thrust::device_vector< T > | d_buffer_ |
+pinned_vector< T > | h_buffer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::Stream, including all inherited members.
+cuda_stream() const (defined in grape::cuda::Stream) | grape::cuda::Stream | inline |
cuda_stream_ (defined in grape::cuda::Stream) | grape::cuda::Stream | private |
operator=(const Stream &other)=delete (defined in grape::cuda::Stream) | grape::cuda::Stream | |
operator=(Stream &&other) noexcept (defined in grape::cuda::Stream) | grape::cuda::Stream | inline |
priority_ (defined in grape::cuda::Stream) | grape::cuda::Stream | private |
Stream(StreamPriority priority=StreamPriority::kDefault) (defined in grape::cuda::Stream) | grape::cuda::Stream | inlineexplicit |
Stream(const Stream &other)=delete (defined in grape::cuda::Stream) | grape::cuda::Stream | |
Stream(Stream &&other) noexcept (defined in grape::cuda::Stream) | grape::cuda::Stream | inline |
Sync() const (defined in grape::cuda::Stream) | grape::cuda::Stream | inline |
~Stream() (defined in grape::cuda::Stream) | grape::cuda::Stream | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | Stream (StreamPriority priority=StreamPriority::kDefault) |
+ | Stream (const Stream &other)=delete |
+ | Stream (Stream &&other) noexcept |
+Stream & | operator= (const Stream &other)=delete |
+Stream & | operator= (Stream &&other) noexcept |
+void | Sync () const |
+cudaStream_t | cuda_stream () const |
+Private Attributes | |
+StreamPriority | priority_ |
+cudaStream_t | cuda_stream_ {} |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::VertexArray< T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | VertexArray (const VertexRange< VID_T > &range) |
+ | VertexArray (const VertexRange< VID_T > &range, const T &value) |
+void | Init (const VertexRange< VID_T > &range) |
+void | Init (const VertexRange< VID_T > &range, const T &value) |
+void | SetValue (VertexRange< VID_T > &range, const T &value) |
+void | SetValue (const T &value) |
+T & | operator[] (Vertex< VID_T > &loc) |
+const T & | operator[] (const Vertex< VID_T > &loc) const |
+void | resize (size_t size) |
+void | Swap (VertexArray &rhs) |
+void | Clear () |
+const VertexRange< VID_T > & | GetVertexRange () const |
+dev::VertexArray< T, VID_T > | DeviceObject () |
+void | H2D () |
+void | H2D (const Stream &stream) |
+void | D2H () |
+void | D2H (const Stream &stream) |
![]() | |
+allocator_type | get_allocator () const noexcept |
+ | Array (const allocator_type &__a) noexcept |
+ | Array (size_type __n, const allocator_type &__a=allocator_type()) |
+ | Array (size_type __n, const value_type &__x, const allocator_type &__a=allocator_type()) |
+ | Array (const Array &__x) |
+ | Array (Array &&__x) noexcept |
+ | Array (const Array &__x, const allocator_type &__a) |
+ | Array (Array &&__x, const allocator_type &__a) |
+Array & | operator= (const Array &__x) |
+Array & | operator= (Array &&__x) |
+size_type | size () const noexcept |
+void | resize (size_type __new_size) |
+void | resize (size_type __new_size, const value_type &__x) |
+bool | empty () const noexcept |
+reference | operator[] (size_type __n) noexcept |
+const_reference | operator[] (size_type __n) const noexcept |
+reference | at (size_type __n) noexcept |
+const_reference | at (size_type __n) const noexcept |
+pointer | data () noexcept |
+const_pointer | data () const noexcept |
+iterator | begin () noexcept |
+const_iterator | begin () const noexcept |
+iterator | end () noexcept |
+const_iterator | end () const noexcept |
+void | swap (Array &__x) noexcept |
+void | clear () noexcept |
+Private Types | |
+using | Base = grape::Array< T, grape::Allocator< T > > |
+Private Attributes | |
+VertexRange< VID_T > | range_ |
+T * | fake_start_ |
+thrust::device_vector< T > | d_data_ |
+Additional Inherited Members | |
![]() | |
+using | pointer = T * |
+using | const_pointer = const T * |
+using | reference = T & |
+using | const_reference = const T & |
+using | size_type = size_t |
+using | value_type = T |
+using | allocator_type = grape::Allocator< T > |
+using | iterator = pointer |
+using | const_iterator = const_pointer |
+using | __alloc_traits = std::allocator_traits< grape::Allocator< T > > |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::Bitset< uint32_t >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+__host__ __device__ | Bitset (ArrayView< uint64_t > data, uint32_t size, uint32_t *positive_count) |
+__device__ __forceinline__ bool | set_bit (uint32_t pos) |
+__device__ __forceinline__ bool | set_bit_atomic (uint32_t pos) |
+__device__ __forceinline__ void | clear () |
+__device__ __forceinline__ bool | get_bit (uint32_t pos) const |
+__device__ __forceinline__ uint32_t | get_size () const |
+__device__ __forceinline__ uint32_t | get_positive_count () const |
+Private Member Functions | |
+__device__ __forceinline__ uint32_t | word_offset (uint32_t n) const |
+__device__ __forceinline__ uint32_t | bit_offset (uint32_t n) const |
+Private Attributes | |
+ArrayView< uint32_t > | data_ |
+uint32_t | size_ {} |
+uint32_t * | positive_count_ {} |
+Static Private Attributes | |
+static const uint32_t | kBitsPerWord = 32 |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::Bitset< uint64_t >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+__host__ __device__ | Bitset (ArrayView< uint64_t > data, uint64_t size, uint64_t *positive_count) |
+__device__ __forceinline__ bool | set_bit (uint64_t pos) |
+__device__ __forceinline__ bool | set_bit_atomic (uint64_t pos) |
+__device__ __forceinline__ void | clear () |
+__device__ __forceinline__ bool | get_bit (uint64_t pos) const |
+__device__ __forceinline__ uint64_t | get_size () const |
+__device__ __forceinline__ uint64_t | get_positive_count () const |
+Private Member Functions | |
+__device__ __forceinline__ uint64_t | word_offset (uint64_t n) const |
+__device__ __forceinline__ uint64_t | bit_offset (uint64_t n) const |
+Private Attributes | |
+ArrayView< uint64_t > | data_ |
+uint64_t | size_ {} |
+uint64_t * | positive_count_ {} |
+Static Private Attributes | |
+static const uint32_t | kBitsPerWord = 64 |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::COOFragment< OID_T, VID_T, VDATA_T, EDATA_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | oid_t = OID_T |
+using | vid_t = VID_T |
+using | vdata_t = VDATA_T |
+using | edata_t = EDATA_T |
+using | vertex_t = Vertex< vid_t > |
+using | edge_t = Edge< vid_t, EDATA_T > |
+Public Member Functions | |
+DEV_HOST | COOFragment (ArrayView< edge_t > edges) |
+DEV_INLINE const edge_t & | edge (size_t eid) const |
+DEV_INLINE edge_t & | edge (size_t eid) |
+DEV_INLINE edge_t & | operator[] (size_t eid) const |
+DEV_INLINE edge_t & | operator[] (size_t eid) |
+DEV_HOST_INLINE size_t | GetEdgeNum () const |
+Private Attributes | |
+ArrayView< edge_t > | edges_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::DenseVertexSet< VID_T >, including all inherited members.
+beg_ (defined in grape::cuda::dev::DenseVertexSet< VID_T >) | grape::cuda::dev::DenseVertexSet< VID_T > | private |
bitset_ (defined in grape::cuda::dev::DenseVertexSet< VID_T >) | grape::cuda::dev::DenseVertexSet< VID_T > | private |
Clear() (defined in grape::cuda::dev::DenseVertexSet< VID_T >) | grape::cuda::dev::DenseVertexSet< VID_T > | inline |
Count() (defined in grape::cuda::dev::DenseVertexSet< VID_T >) | grape::cuda::dev::DenseVertexSet< VID_T > | inline |
DenseVertexSet(VID_T beg, const Bitset< VID_T > &bitset) (defined in grape::cuda::dev::DenseVertexSet< VID_T >) | grape::cuda::dev::DenseVertexSet< VID_T > | inline |
Exist(Vertex< VID_T > v) const (defined in grape::cuda::dev::DenseVertexSet< VID_T >) | grape::cuda::dev::DenseVertexSet< VID_T > | inline |
Insert(Vertex< VID_T > v) (defined in grape::cuda::dev::DenseVertexSet< VID_T >) | grape::cuda::dev::DenseVertexSet< VID_T > | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | DenseVertexSet (VID_T beg, const Bitset< VID_T > &bitset) |
+DEV_INLINE bool | Insert (Vertex< VID_T > v) |
+DEV_INLINE bool | Exist (Vertex< VID_T > v) const |
+DEV_INLINE void | Clear () |
+DEV_INLINE size_t | Count () |
+Private Attributes | |
+VID_T | beg_ |
+Bitset< VID_T > | bitset_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::DeviceFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | vertex_t = Vertex< VID_T > |
+using | nbr_t = Nbr< VID_T, EDATA_T > |
+using | vertex_range_t = VertexRange< VID_T > |
+using | adj_list_t = AdjList< VID_T, EDATA_T > |
+using | const_adj_list_t = ConstAdjList< VID_T, EDATA_T > |
+using | vid_t = VID_T |
+using | oid_t = OID_T |
+using | vdata_t = VDATA_T |
+using | edata_t = EDATA_T |
+Public Member Functions | |
+DEV_HOST_INLINE vertex_range_t | Vertices () const |
+DEV_HOST_INLINE vertex_range_t | InnerVertices () const |
+DEV_HOST_INLINE vertex_range_t | OuterVertices () const |
+DEV_INLINE vertex_range_t | OuterVertices (fid_t fid) const |
+DEV_INLINE ArrayView< vertex_t > | MirrorVertices (fid_t fid) const |
+DEV_INLINE bool | GetVertex (const OID_T &oid, vertex_t &v) const |
+DEV_INLINE OID_T | GetId (const vertex_t &v) const |
+DEV_HOST_INLINE fid_t | GetFragId (const vertex_t &u) const |
+DEV_INLINE const VDATA_T & | GetData (const vertex_t &v) const |
+DEV_INLINE void | SetData (const vertex_t &v, const VDATA_T &val) |
+DEV_INLINE VID_T | GetLocalOutDegree (const vertex_t &v) const |
+DEV_INLINE VID_T | GetLocalInDegree (const vertex_t &v) const |
+DEV_INLINE bool | Gid2Vertex (const VID_T &gid, vertex_t &v) const |
+DEV_INLINE VID_T | Vertex2Gid (const vertex_t &v) const |
+DEV_HOST_INLINE VID_T | GetInnerVerticesNum () const |
+DEV_HOST_INLINE VID_T | GetOuterVerticesNum () const |
+DEV_HOST_INLINE bool | IsInnerVertex (const vertex_t &v) const |
+DEV_HOST_INLINE bool | IsOuterVertex (const vertex_t &v) const |
+DEV_INLINE bool | GetInnerVertex (const OID_T &oid, vertex_t &v) const |
+DEV_INLINE bool | GetOuterVertex (const OID_T &oid, vertex_t &v) const |
+DEV_INLINE OID_T | GetInnerVertexId (const vertex_t &v) const |
+DEV_INLINE OID_T | GetOuterVertexId (const vertex_t &v) const |
+DEV_INLINE OID_T | Gid2Oid (const VID_T &gid) const |
+DEV_INLINE bool | Oid2Gid (const OID_T &oid, VID_T &gid) const |
+DEV_HOST_INLINE bool | InnerVertexGid2Vertex (const VID_T &gid, vertex_t &v) const |
+DEV_INLINE bool | OuterVertexGid2Vertex (const VID_T &gid, vertex_t &v) const |
+DEV_INLINE VID_T | GetOuterVertexGid (const vertex_t &v) const |
+DEV_HOST_INLINE VID_T | GetInnerVertexGid (const vertex_t &v) const |
DEV_INLINE DestList | IEDests (const vertex_t &v) const |
Return the incoming edge destination fragment ID list of a inner vertex. More... | |
DEV_INLINE DestList | OEDests (const vertex_t &v) const |
Return the outgoing edge destination fragment ID list of a Vertex. More... | |
DEV_INLINE DestList | IOEDests (const vertex_t &v) const |
Return the edge destination fragment ID list of a inner vertex. More... | |
+DEV_INLINE adj_list_t | GetIncomingAdjList (const vertex_t &v) |
+DEV_INLINE const_adj_list_t | GetIncomingAdjList (const vertex_t &v) const |
DEV_INLINE adj_list_t | GetIncomingInnerVertexAdjList (const vertex_t &v) |
Returns the incoming adjacent inner vertices of v. More... | |
DEV_INLINE const_adj_list_t | GetIncomingInnerVertexAdjList (const vertex_t &v) const |
Returns the incoming adjacent inner vertices of v. More... | |
DEV_INLINE adj_list_t | GetIncomingOuterVertexAdjList (const vertex_t &v) |
Returns the incoming adjacent outer vertices of v. More... | |
DEV_INLINE const_adj_list_t | GetIncomingOuterVertexAdjList (const vertex_t &v) const |
Returns the incoming adjacent outer vertices of v. More... | |
DEV_INLINE adj_list_t | GetOutgoingInnerVertexAdjList (const vertex_t &v) |
Returns the outgoing adjacent inner vertices of v. More... | |
DEV_INLINE const_adj_list_t | GetOutgoingInnerVertexAdjList (const vertex_t &v) const |
Returns the outgoing adjacent inner vertices of v. More... | |
DEV_INLINE adj_list_t | GetOutgoingOuterVertexAdjList (const vertex_t &v) |
Returns the outgoing adjacent outer vertices of v. More... | |
DEV_INLINE const_adj_list_t | GetOutgoingOuterVertexAdjList (const vertex_t &v) const |
Returns the outgoing adjacent outer vertices of v. More... | |
+DEV_INLINE adj_list_t | GetOutgoingAdjList (const vertex_t &v) |
+DEV_INLINE const_adj_list_t | GetOutgoingAdjList (const vertex_t &v) const |
+DEV_INLINE size_t | GetIncomingEdgeIndex (const nbr_t &nbr) const |
+DEV_INLINE size_t | GetIncomingEdgeIndex (const vertex_t &u, const nbr_t &nbr) const |
+DEV_INLINE size_t | GetOutgoingEdgeIndex (const nbr_t &nbr) const |
+DEV_INLINE size_t | GetOutgoingEdgeIndex (const vertex_t &u, const nbr_t &nbr) const |
+Private Attributes | |
+DeviceVertexMap< OID_T, VID_T > | vm_ |
+size_t | ivnum_ {} |
+size_t | ovnum_ {} |
+size_t | tvnum_ {} |
+size_t | ienum_ {} |
+size_t | oenum_ {} |
+fid_t | fid_ {} |
+IdParser< VID_T > | id_parser_ |
+CUDASTL::HashMap< VID_T, VID_T > * | ovg2l_ {} |
+ArrayView< VID_T > | ovgid_ {} |
+ArrayView< nbr_t * > | ieoffset_ |
+ArrayView< nbr_t * > | oeoffset_ |
+ArrayView< nbr_t > | ie_ |
+ArrayView< nbr_t > | oe_ |
+ArrayView< VDATA_T > | vdata_ {} |
+ArrayView< fid_t > | idst_ |
+ArrayView< fid_t > | odst_ |
+ArrayView< fid_t > | iodst_ |
+ArrayView< fid_t * > | idoffset_ |
+ArrayView< fid_t * > | odoffset_ |
+ArrayView< fid_t * > | iodoffset_ |
+ArrayView< ArrayView< nbr_t * > > | iespliters_ |
+ArrayView< ArrayView< nbr_t * > > | oespliters_ |
+ArrayView< vertex_range_t > | outer_vertices_of_frag_ |
+ArrayView< ArrayView< vertex_t > > | mirrors_of_frag_ |
+Friends | |
+template<typename _OID_T , typename _VID_T , typename _VDATA_T , typename _EDATA_T , grape::LoadStrategy __load_strategy, typename _VERTEX_MAP_T > | |
class | grape::cuda::HostFragment |
+
|
+ +inline | +
Returns the incoming adjacent inner vertices of v.
+v | Input vertex. |
+
|
+ +inline | +
Returns the incoming adjacent inner vertices of v.
+v | Input vertex. |
+
|
+ +inline | +
Returns the incoming adjacent outer vertices of v.
+v | Input vertex. |
+
|
+ +inline | +
Returns the incoming adjacent outer vertices of v.
+v | Input vertex. |
+
|
+ +inline | +
Returns the outgoing adjacent inner vertices of v.
+v | Input vertex. |
+
|
+ +inline | +
Returns the outgoing adjacent inner vertices of v.
+v | Input vertex. |
+
|
+ +inline | +
Returns the outgoing adjacent outer vertices of v.
+v | Input vertex. |
+
|
+ +inline | +
Returns the outgoing adjacent outer vertices of v.
+v | Input vertex. |
+
|
+ +inline | +
Return the incoming edge destination fragment ID list of a inner vertex.
+v | Input vertex. |
+
|
+ +inline | +
Return the edge destination fragment ID list of a inner vertex.
+v | Input vertex. |
+
|
+ +inline | +
Return the outgoing edge destination fragment ID list of a Vertex.
+v | Input vertex. |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::InArchive, including all inherited members.
+AddBytes(const T &elem) (defined in grape::cuda::dev::InArchive) | grape::cuda::dev::InArchive | inline |
AddBytesWarp(const T &elem) (defined in grape::cuda::dev::InArchive) | grape::cuda::dev::InArchive | inline |
AddBytesWarpOpt(int fid, const T &elem) (defined in grape::cuda::dev::InArchive) | grape::cuda::dev::InArchive | inline |
buffer_ (defined in grape::cuda::dev::InArchive) | grape::cuda::dev::InArchive | private |
InArchive()=default (defined in grape::cuda::dev::InArchive) | grape::cuda::dev::InArchive | |
InArchive(const ArrayView< char > &buffer, uint32_t *size) (defined in grape::cuda::dev::InArchive) | grape::cuda::dev::InArchive | inline |
size_ (defined in grape::cuda::dev::InArchive) | grape::cuda::dev::InArchive | private |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | InArchive (const ArrayView< char > &buffer, uint32_t *size) |
+template<typename T > | |
DEV_INLINE void | AddBytes (const T &elem) |
+template<typename T > | |
DEV_INLINE void | AddBytesWarpOpt (int fid, const T &elem) |
+template<typename T > | |
DEV_INLINE void | AddBytesWarp (const T &elem) |
+Private Attributes | |
+ArrayView< char > | buffer_ |
+uint32_t * | size_ {} |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::MFLCounter< T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::MessageManager, including all inherited members.
+MessageManager(const ArrayView< InArchive > &to_send) (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | inlineexplicit |
SendMsgThroughEdges(const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | inline |
SendMsgThroughIEdges(const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | inline |
SendMsgThroughOEdges(const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | inline |
SendMsgThroughOEdges(const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v) (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | inline |
SendToFragment(fid_t dst_fid, const MESSAGE_T &msg) (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | inline |
SendToFragmentWarpOpt(fid_t dst_fid, const MESSAGE_T &msg) (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | inline |
SyncStateOnOuterVertex(const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | inline |
SyncStateOnOuterVertex(const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v) (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | inline |
SyncStateOnOuterVertexWarpOpt(const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | inline |
SyncStateOnOuterVertexWarpOpt(const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v) (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | inline |
to_send_ (defined in grape::cuda::dev::MessageManager) | grape::cuda::dev::MessageManager | private |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | MessageManager (const ArrayView< InArchive > &to_send) |
+template<typename GRAPH_T , typename MESSAGE_T > | |
DEV_INLINE void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
+template<typename GRAPH_T > | |
DEV_INLINE void | SyncStateOnOuterVertex (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v) |
+template<typename GRAPH_T , typename MESSAGE_T > | |
DEV_INLINE void | SyncStateOnOuterVertexWarpOpt (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
+template<typename GRAPH_T > | |
DEV_INLINE void | SyncStateOnOuterVertexWarpOpt (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v) |
+template<typename GRAPH_T , typename MESSAGE_T > | |
DEV_INLINE void | SendMsgThroughIEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
+template<typename GRAPH_T , typename MESSAGE_T > | |
DEV_INLINE void | SendMsgThroughOEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
+template<typename GRAPH_T > | |
DEV_INLINE void | SendMsgThroughOEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v) |
+template<typename GRAPH_T , typename MESSAGE_T > | |
DEV_INLINE void | SendMsgThroughEdges (const GRAPH_T &frag, const typename GRAPH_T::vertex_t &v, const MESSAGE_T &msg) |
+template<typename MESSAGE_T > | |
DEV_INLINE void | SendToFragment (fid_t dst_fid, const MESSAGE_T &msg) |
+template<typename MESSAGE_T > | |
DEV_INLINE void | SendToFragmentWarpOpt (fid_t dst_fid, const MESSAGE_T &msg) |
+Private Attributes | |
+ArrayView< InArchive > | to_send_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::OutArchive, including all inherited members.
+buffer_ (defined in grape::cuda::dev::OutArchive) | grape::cuda::dev::OutArchive | private |
data() (defined in grape::cuda::dev::OutArchive) | grape::cuda::dev::OutArchive | inline |
Empty() const (defined in grape::cuda::dev::OutArchive) | grape::cuda::dev::OutArchive | inline |
GetBytes(T &elem) (defined in grape::cuda::dev::OutArchive) | grape::cuda::dev::OutArchive | inline |
GetBytesWarp(T &elem) (defined in grape::cuda::dev::OutArchive) | grape::cuda::dev::OutArchive | inline |
OutArchive()=default (defined in grape::cuda::dev::OutArchive) | grape::cuda::dev::OutArchive | |
OutArchive(const ArrayView< char > &data, uint32_t *offset) (defined in grape::cuda::dev::OutArchive) | grape::cuda::dev::OutArchive | inline |
pos_ (defined in grape::cuda::dev::OutArchive) | grape::cuda::dev::OutArchive | private |
size() const (defined in grape::cuda::dev::OutArchive) | grape::cuda::dev::OutArchive | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | OutArchive (const ArrayView< char > &data, uint32_t *offset) |
+template<typename T > | |
DEV_INLINE bool | GetBytes (T &elem) |
+template<typename T > | |
DEV_INLINE bool | GetBytesWarp (T &elem) |
+DEV_INLINE bool | Empty () const |
+DEV_INLINE uint32_t | size () const |
+DEV_INLINE char * | data () |
+Private Attributes | |
+ArrayView< char > | buffer_ |
+uint32_t * | pos_ {} |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::Queue< T, uint32_t >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+DEV_HOST | Queue (const ArrayView< T > &data, uint32_t *last_pos) |
+DEV_INLINE void | Append (const T &item) |
+DEV_INLINE void | AppendWarp (const T &item) |
+DEV_INLINE void | Clear () const |
+DEV_INLINE T & | operator[] (uint32_t i) |
+DEV_INLINE const T & | operator[] (uint32_t i) const |
+DEV_INLINE uint32_t | size () const |
+DEV_INLINE void | Swap (Queue< T, uint32_t > &rhs) |
+Private Attributes | |
+ArrayView< T > | data_ |
+uint32_t * | last_pos_ {} |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::Queue< T, uint64_t >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+DEV_HOST | Queue (const ArrayView< T > &data, uint64_t *last_pos) |
+DEV_INLINE void | Append (const T &item) |
+DEV_INLINE void | AppendWarp (const T &item) |
+DEV_INLINE void | Clear () const |
+DEV_INLINE T & | operator[] (uint64_t i) |
+DEV_INLINE const T & | operator[] (uint64_t i) const |
+DEV_INLINE uint64_t | size () const |
+DEV_INLINE void | Swap (Queue< T, uint64_t > &rhs) |
+Private Attributes | |
+ArrayView< T > | data_ |
+uint64_t * | last_pos_ {} |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::ShmHashTable< T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Attributes | |
+T * | bin_count |
+T * | cache |
+T * | data |
+int | offset |
+int | bucket_size |
+int | cached_size |
+int | bucket_num |
+int | bucket_stride |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::cuda::dev::VertexArray< T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+DEV_HOST | VertexArray (VertexRange< VID_T > range, T *data) |
+DEV_INLINE T & | operator[] (const Vertex< VID_T > &loc) |
+DEV_INLINE const T & | operator[] (const Vertex< VID_T > &loc) const |
+DEV_HOST_INLINE T * | data () |
+DEV_HOST_INLINE size_t | size () const |
+Private Attributes | |
+VertexRange< VID_T > | range_ |
+T * | data_ {} |
+T * | fake_start_ {} |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::mutable_csr_impl::Blob< VID_T, T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | Blob (size_t size) |
+ | Blob (Blob &&rhs) |
+void | resize (size_t size) |
+T * | data () |
+const T * | data () const |
+T & | operator[] (VID_T index) |
+const T & | operator[] (VID_T index) const |
+size_t | size () const |
+Private Attributes | |
+Array< T, Allocator< T > > | buffer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::sync_comm::WorkerIterator, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | WorkerIterator (int cur, int num) noexcept |
+WorkerIterator & | operator++ () noexcept |
+WorkerIterator | operator++ (int) noexcept |
+int | operator* () const noexcept |
+bool | operator== (const WorkerIterator &rhs) noexcept |
+bool | operator!= (const WorkerIterator &rhs) noexcept |
+Private Attributes | |
+int | cur_ |
+int | num_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Directories | |
directory | cuda |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Files | |
file | atomic_ops.h |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
▼ grape | |
▼ utils | |
atomic_ops.h |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
A C++ library for parallel graph processing
+ +libgrape-lite is a C++ library from Alibaba for parallel graph processing. It differs from prior systems in its ability to parallelize sequential graph algorithms as a whole by following the PIE programming model from GRAPE. Sequential algorithms can be easily "plugged into" libgrape-lite with only minor changes and get parallelized to handle large graphs efficiently. In addition to the ease of programming, libgrape-lite is designed to be highly efficient and flexible, to cope the scale, variety and complexity from real-life graph applications.
+libgrape-lite is developed and tested on CentOS 7. It should also work on other unix-like distributions. Building libgrape-lite requires the following softwares installed as dependencies.
+Here are the dependencies for optional features:
+Extra dependencies are required by examples:
+Once the required dependencies have been installed, go to the root directory of libgrape-lite and do a out-of-source build using CMake.
+The building targets include a shared/static library, and two sets of examples: analytical_apps and a gnn_sampler.
+Alternatively, you can build a particular target with command:
+libgrape-lite supports deploying graph algorithms to GPUs. When CUDA is detected on the machine and NCCL >= 2.7, GPU support will be enabled automatically.
+The input of libgrape-lite is formatted following the LDBC Graph Analytics benchmark, with two files for each graph, a .v
file for vertices with 1 or 2 columns, which are a vertex_id and optionally followed by the data assigned to the vertex; and a .e
file for edges with 2 or 3 columns, representing source, destination and optionally the data on the edge, correspondingly. See sample files p2p-31.v
and p2p-31.e
under the dataset directory.
libgrape-lite provides six algorithms from the LDBC benchmark as examples. The deterministic algorithms are, single-source shortest path(SSSP), connected component(WCC), PageRank, local clustering coefficient(LCC), community detection of label propagation(CDLP), and breadth first search(BFS).
+
To run a specific analytical application, users may use command like this:
+The analytical applications support the LDBC Analytical Benchmark suite with the provided ldbc_driver
. Please refer to ldbc_driver for more details. The benchmark results for libgrape-lite and other state-of-the-art systems could be found here.
In addition to offline graph analytics, libgrape-lite could also be utilized to handle more complex graph tasks. A sampler for GNN training/inference on dynamic graphs (taking graph changes and queries, and producing results via Kafka) is included as an example. Please refer to examples/gnn_sampler for more details.
+libgrape-lite also supports graph analytics on multi-GPU servers. Unlike CPUs, GPUs have more-but-weaker cores, making load balancing the key to high-performance sparse graph processing on GPUs. libgrape-lite provides multiple load balancing strategies on GPUs (wm
, cm
, cta
, and strict
). libgrape-lite adopts NCCL to handle communication between multiple GPUs. With GPU acceleration, libgrape-lite can obtain similar performance for a 4-node CPU cluster with a single GPU. The detailed benchmark results of libgrape-lite on GPUs could also be found here.
Documentation is generated using Doxygen. Users can build doxygen documentation in the build directory using:
+The latest version of online documentation can be found at https://alibaba.github.io/libgrape-lite
+libgrape-lite is distributed under Apache License 2.0. Please note that third-party libraries may not have the same license as libgrape-lite.
+Please cite the following paper in your publications if GRAPE or this repo helps your research.
+Thank you in advance for your contributions!
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
Copyright 2020 Alibaba Group Holding Limited.
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 +
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
+