diff --git a/annotated.html b/annotated.html new file mode 100644 index 00000000..8245d5c3 --- /dev/null +++ b/annotated.html @@ -0,0 +1,379 @@ + + +
+ + + + +
+ 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::BasicEFileFragmentLoader< FRAG_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | BasicEFileFragmentLoader (const CommSpec &comm_spec, const LoadGraphSpec &spec) |
+void | AddVertex (const oid_t &id, const vdata_t &data) override |
+void | ConstructVertices () override |
+void | AddEdge (const oid_t &src, const oid_t &dst, const edata_t &data) override |
+void | ConstructFragment (std::shared_ptr< fragment_t > &fragment) override |
![]() | |
+ | BasicFragmentLoaderBase (const CommSpec &comm_spec, const LoadGraphSpec &spec) |
+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 |
+Private Member Functions | |
+void | edgeRecvRoutine () |
+Private Attributes | |
+std::unique_ptr< HashPartitioner< oid_t > > | partitioner_ |
+std::vector< ShuffleOut< internal_oid_t, internal_oid_t, edata_t > > | edges_to_frag_ |
+std::thread | edge_recv_thread_ |
+bool | recv_thread_running_ |
+std::vector< ShuffleBufferTuple< internal_oid_t, internal_oid_t, edata_t > > | got_edges_ |
+int | concurrency_ |
+Additional Inherited Members | |
![]() | |
+void | InitOuterVertexData (std::shared_ptr< fragment_t > fragment) |
+void | ShuffleVertex (const std::vector< oid_t > &added_vertices_id, std::vector< std::vector< oid_t >> &local_vertices_id, const IPartitioner< oid_t > &partitioner) |
+void | ShuffleVertexData (const std::vector< oid_t > &added_vertices_id, const std::vector< vdata_t > &added_vertices_data, std::vector< std::vector< oid_t >> &local_vertices_id, std::vector< std::vector< vdata_t >> &local_vertices_data, const IPartitioner< oid_t > &partitioner) |
![]() | |
+CommSpec | comm_spec_ |
+LoadGraphSpec | spec_ |
+IdParser< vid_t > | id_parser_ |
![]() | |
+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::BasicFragmentLoader< FRAG_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | BasicFragmentLoader (const CommSpec &comm_spec, const LoadGraphSpec &spec) |
+void | AddVertex (const oid_t &id, const vdata_t &data) override |
+void | ConstructVertices () override |
+void | AddEdge (const oid_t &src, const oid_t &dst, const edata_t &data) override |
+void | ConstructFragment (std::shared_ptr< fragment_t > &fragment) override |
![]() | |
+ | BasicFragmentLoaderBase (const CommSpec &comm_spec, const LoadGraphSpec &spec) |
+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 |
+Private Member Functions | |
+void | edgeRecvRoutine () |
+Private Attributes | |
+std::vector< oid_t > | vertices_ |
+std::vector< vdata_t > | vdata_ |
+std::vector< internal::Vertex< vid_t, vdata_t > > | processed_vertices_ |
+std::unique_ptr< VertexMap< oid_t, vid_t > > | vertex_map_ |
+std::vector< ShuffleOut< vid_t, vid_t, edata_t > > | edges_to_frag_ |
+std::thread | edge_recv_thread_ |
+bool | recv_thread_running_ |
+std::vector< ShuffleBufferTuple< vid_t, vid_t, edata_t > > | got_edges_ |
+std::vector< vid_t > | src_gid_list_ |
+std::vector< vid_t > | dst_gid_list_ |
+std::vector< edata_t > | edata_ |
+Additional Inherited Members | |
![]() | |
+void | InitOuterVertexData (std::shared_ptr< fragment_t > fragment) |
+void | ShuffleVertex (const std::vector< oid_t > &added_vertices_id, std::vector< std::vector< oid_t >> &local_vertices_id, const IPartitioner< oid_t > &partitioner) |
+void | ShuffleVertexData (const std::vector< oid_t > &added_vertices_id, const std::vector< vdata_t > &added_vertices_data, std::vector< std::vector< oid_t >> &local_vertices_id, std::vector< std::vector< vdata_t >> &local_vertices_data, const IPartitioner< oid_t > &partitioner) |
![]() | |
+CommSpec | comm_spec_ |
+LoadGraphSpec | spec_ |
+IdParser< vid_t > | id_parser_ |
![]() | |
+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::BasicFragmentLoaderBase< FRAG_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | BasicFragmentLoaderBase (const CommSpec &comm_spec, const LoadGraphSpec &spec) |
+virtual void | AddVertex (const oid_t &id, const vdata_t &data)=0 |
+virtual void | ConstructVertices ()=0 |
+virtual void | AddEdge (const oid_t &src, const oid_t &dst, const edata_t &data)=0 |
+virtual void | ConstructFragment (std::shared_ptr< fragment_t > &fragment)=0 |
+Protected Member Functions | |
+void | InitOuterVertexData (std::shared_ptr< fragment_t > fragment) |
+void | ShuffleVertex (const std::vector< oid_t > &added_vertices_id, std::vector< std::vector< oid_t >> &local_vertices_id, const IPartitioner< oid_t > &partitioner) |
+void | ShuffleVertexData (const std::vector< oid_t > &added_vertices_id, const std::vector< vdata_t > &added_vertices_data, std::vector< std::vector< oid_t >> &local_vertices_id, std::vector< std::vector< vdata_t >> &local_vertices_data, const IPartitioner< oid_t > &partitioner) |
+Protected Attributes | |
+CommSpec | comm_spec_ |
+LoadGraphSpec | spec_ |
+IdParser< vid_t > | id_parser_ |
+Static Protected Attributes | |
+static constexpr int | vertex_tag = 5 |
+static constexpr int | edge_tag = 6 |
+Private Types | |
+using | fragment_t = FRAG_T |
+using | oid_t = typename fragment_t::oid_t |
+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 | internal_oid_t = typename InternalOID< oid_t >::type |
+ 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 | 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 | 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 > |
+Private Member Functions | |
+void | recvThreadRoutine () |
+Private Attributes | |
+CommSpec | comm_spec_ |
+std::shared_ptr< fragment_t > | fragment_ |
+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_ |
+VertexMap< oid_t, vid_t > & | vm_ |
+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::BasicLocalFragmentLoader< FRAG_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | BasicLocalFragmentLoader (const CommSpec &comm_spec, const LoadGraphSpec &spec) |
+void | AddVertex (const oid_t &id, const vdata_t &data) override |
+void | ConstructVertices () override |
+void | AddEdge (const oid_t &src, const oid_t &dst, const edata_t &data) override |
+void | ConstructFragment (std::shared_ptr< fragment_t > &fragment) override |
![]() | |
+ | BasicFragmentLoaderBase (const CommSpec &comm_spec, const LoadGraphSpec &spec) |
+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 |
+Private Member Functions | |
+void | vertexRecvRoutine () |
+void | edgeRecvRoutine () |
+Private Attributes | |
+std::unique_ptr< HashPartitioner< oid_t > > | partitioner_ |
+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_ |
+bool | vertex_recv_thread_running_ |
+std::thread | edge_recv_thread_ |
+bool | edge_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_ |
+Additional Inherited Members | |
![]() | |
+void | InitOuterVertexData (std::shared_ptr< fragment_t > fragment) |
+void | ShuffleVertex (const std::vector< oid_t > &added_vertices_id, std::vector< std::vector< oid_t >> &local_vertices_id, const IPartitioner< oid_t > &partitioner) |
+void | ShuffleVertexData (const std::vector< oid_t > &added_vertices_id, const std::vector< vdata_t > &added_vertices_data, std::vector< std::vector< oid_t >> &local_vertices_id, std::vector< std::vector< vdata_t >> &local_vertices_data, const IPartitioner< oid_t > &partitioner) |
![]() | |
+CommSpec | comm_spec_ |
+LoadGraphSpec | spec_ |
+IdParser< vid_t > | id_parser_ |
![]() | |
+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::BasicRbFragmentLoader< FRAG_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | BasicRbFragmentLoader (const CommSpec &comm_spec, const LoadGraphSpec &spec) |
+void | AddVertex (const oid_t &id, const vdata_t &data) override |
+void | ConstructVertices () override |
+void | AddEdge (const oid_t &src, const oid_t &dst, const edata_t &data) override |
+void | ConstructFragment (std::shared_ptr< fragment_t > &fragment) override |
![]() | |
+ | BasicFragmentLoaderBase (const CommSpec &comm_spec, const LoadGraphSpec &spec) |
+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 |
+Private Attributes | |
+std::vector< oid_t > | vertices_ |
+std::vector< vdata_t > | vdata_ |
+std::vector< oid_t > | edges_src_ |
+std::vector< oid_t > | edges_dst_ |
+std::vector< edata_t > | edges_data_ |
+std::unique_ptr< VertexMap< oid_t, vid_t > > | vertex_map_ |
+Additional Inherited Members | |
![]() | |
+void | InitOuterVertexData (std::shared_ptr< fragment_t > fragment) |
+void | ShuffleVertex (const std::vector< oid_t > &added_vertices_id, std::vector< std::vector< oid_t >> &local_vertices_id, const IPartitioner< oid_t > &partitioner) |
+void | ShuffleVertexData (const std::vector< oid_t > &added_vertices_id, const std::vector< vdata_t > &added_vertices_data, std::vector< std::vector< oid_t >> &local_vertices_id, std::vector< std::vector< vdata_t >> &local_vertices_data, const IPartitioner< oid_t > &partitioner) |
![]() | |
+CommSpec | comm_spec_ |
+LoadGraphSpec | spec_ |
+IdParser< vid_t > | id_parser_ |
![]() | |
+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::BasicVCDSFragmentLoader< FRAG_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | BasicVCDSFragmentLoader (const CommSpec &comm_spec, int64_t vnum, int load_concurrency) |
+void | RecordEdge (const oid_t &src, const oid_t &dst) |
+void | AllocateBuffers () |
+void | AddEdge (const oid_t &src, const oid_t &dst, const edata_t &data) |
+void | ConstructFragment (std::shared_ptr< fragment_t > &fragment) |
+Private Member Functions | |
+void | edgeRecvRoutine () |
+Private Attributes | |
+std::vector< std::vector< size_t > > | partition_bucket_edge_num_ |
+CommSpec | comm_spec_ |
+VCPartitioner< oid_t > | partitioner_ |
+int | bucket_num_ |
+std::unique_ptr< VCEdgeBucketer< oid_t > > | bucketer_ |
+int64_t | vnum_ |
+int | load_concurrency_ |
+std::vector< std::atomic< size_t > > | bucket_cursor_ |
+std::vector< edge_t > | edges_ |
+std::vector< ShuffleOut< oid_t, oid_t, edata_t > > | edges_to_frag_ |
+std::thread | edge_recv_thread_ |
+bool | recv_thread_running_ |
+BlockingQueue< ShuffleBufferTuple< oid_t, oid_t, edata_t > > | got_edges_ |
+std::vector< std::thread > | edge_move_threads_ |
+Static Private Attributes | |
+static constexpr size_t | shuffle_out_size = 4096000 |
+static constexpr int | edge_tag = 6 |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::BasicVCFragmentLoader< FRAG_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | BasicVCFragmentLoader (const CommSpec &comm_spec, int64_t vnum, int load_concurrency) |
+void | AddEdge (const oid_t &src, const oid_t &dst, const edata_t &data) |
+void | ConstructFragment (std::shared_ptr< fragment_t > &fragment) |
+Private Member Functions | |
+void | edgeRecvRoutine () |
+int | edgeBucketId (const oid_t &src, const oid_t &dst) const |
+Private Attributes | |
+CommSpec | comm_spec_ |
+VCPartitioner< oid_t > | partitioner_ |
+int | bucket_num_ |
+oid_t | src_start_ |
+oid_t | dst_start_ |
+oid_t | src_chunk_ |
+oid_t | dst_chunk_ |
+int64_t | vnum_ |
+int | load_concurrency_ |
+std::vector< ShuffleBufferTuple< oid_t, oid_t, edata_t > > | got_edges_ |
+std::vector< ShuffleOut< oid_t, oid_t, edata_t > > | edges_to_frag_ |
+std::thread | edge_recv_thread_ |
+bool | recv_thread_running_ |
+Static Private Attributes | |
+static constexpr size_t | shuffle_out_size = 4096000 |
+static constexpr int | edge_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... | |
+bool | TryGetAll (std::deque< T > &items) |
+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, VDATA_T, EDATA_T > |
+using | vid_t = VID_T |
+using | vertex_t = Vertex< VID_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 |
+using | internal_id_t = typename InternalOID< OID_T >::type |
+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 |
+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, const ParallelEngineSpec &pe_spec) 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... | |
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 |
VID_T | GetInnerVerticesNum () const |
Returns the number of inner vertices in this fragment. More... | |
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 | initMirrorInfo (const CommSpec &comm_spec) |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
![]() | |
+VertexMap< OID_T, VID_T > & | GetVertexMap () |
+const VertexMap< OID_T, VID_T > & | GetVertexMap () const |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
size_t | GetVerticesNum () const override |
Returns the number of vertices in this fragment. More... | |
size_t | GetTotalVerticesNum () const override |
Returns the number of vertices in the entire graph. 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... | |
+internal_id_t | GetInternalId (const Vertex< VID_T > &v) const |
+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 |
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 |
Convert from global id to a vertex handle. More... | |
vid_t | Vertex2Gid (const vertex_t &v) const |
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... | |
![]() | |
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... | |
+Protected Types | |
+using | vertices_t = typename TRAITS_T::vertices_t |
+Protected Member Functions | |
+void | buildCSR (const vertices_t &vertex_range, std::vector< Edge< VID_T, EDATA_T >> &edges, LoadStrategy load_strategy, int concurrency=1) |
+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 |
![]() | |
+void | init (fid_t fid, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr) |
+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, fid_t fnum, 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 |
![]() | |
+VID_T | ivnum_ |
+inner_vertices_t | inner_vertices_ |
+outer_vertices_t | outer_vertices_ |
+vertices_t | vertices_ |
+std::vector< sub_vertices_t > | outer_vertices_of_frag_ |
+std::vector< mirror_vertices_t > | mirrors_of_frag_ |
+std::unique_ptr< VertexMap< OID_T, VID_T > > | vm_ptr_ |
+IdParser< VID_T > | id_parser_ |
![]() | |
+fid_t | fid_ |
+fid_t | fnum_ |
+bool | directed_ |
+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) |
+Additional Inherited Members | |
![]() | |
+static constexpr FragmentType | fragment_type = FragmentType::kEdgeCut |
+
|
+ +inlineoverridevirtual | +
Returns the number of edges in this fragment.
+Implements grape::FragmentBase< OID_T, VDATA_T, EDATA_T >.
+ +
+
|
+ +inline | +
Get the ID of fragment the input vertex belongs to.
+u | Input vertex. |
virtual AdjList<VID_T, EDATA_T> grape::EdgecutFragmentBase< 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 vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the incoming adjacent vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< 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::EdgecutFragmentBase< 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::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +virtual AdjList<VID_T, EDATA_T> grape::EdgecutFragmentBase< 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 vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the outgoing adjacent vertices of v.
+v | Input vertex. |
Implements grape::EdgecutFragmentBase< 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::EdgecutFragmentBase< 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::EdgecutFragmentBase< 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, VDATA_T, EDATA_T >.
+ +Reimplemented in grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +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::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, int concurrency) |
+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 |
+bool | OverlapWith (const VertexRange< VID_T > &rhs) const |
+VID_T | size () const |
+std::string | to_string () 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_ |
+std::unique_ptr< BasicFragmentLoaderBase< fragment_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::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, VDATA_T, EDATA_T > |
+using | vid_t = VID_T |
+using | vertex_t = Vertex< VID_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 |
+using | internal_id_t = typename InternalOID< OID_T >::type |
+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 |
+Public Member Functions | |
+VertexMap< OID_T, VID_T > & | GetVertexMap () |
+const VertexMap< OID_T, VID_T > & | GetVertexMap () const |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
size_t | GetVerticesNum () const override |
Returns the number of vertices in this fragment. More... | |
size_t | GetTotalVerticesNum () const override |
Returns the number of vertices in the entire graph. 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... | |
+internal_id_t | GetInternalId (const Vertex< VID_T > &v) const |
+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 |
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 |
Convert from global id to a vertex handle. More... | |
vid_t | Vertex2Gid (const vertex_t &v) const |
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... | |
![]() | |
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... | |
virtual void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf, const ParallelEngineSpec &pe_spec)=0 |
For some kind of applications, specific data structures will be generated. More... | |
+Static Public Attributes | |
+static constexpr FragmentType | fragment_type = FragmentType::kEdgeCut |
+Protected Member Functions | |
+void | init (fid_t fid, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr) |
+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, fid_t fnum, 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 | ivnum_ |
+inner_vertices_t | inner_vertices_ |
+outer_vertices_t | outer_vertices_ |
+vertices_t | vertices_ |
+std::vector< sub_vertices_t > | outer_vertices_of_frag_ |
+std::vector< mirror_vertices_t > | mirrors_of_frag_ |
+std::unique_ptr< VertexMap< OID_T, VID_T > > | vm_ptr_ |
+IdParser< VID_T > | id_parser_ |
![]() | |
+fid_t | fid_ |
+fid_t | fnum_ |
+bool | directed_ |
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 | +
Get the data of a vertex.
+v | Input vertex. |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +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 >, grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >.
+ +
+
|
+ +pure virtual | +
Returns the incoming adjacent inner vertices of v.
+v | Input vertex. |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +pure virtual | +
Returns the incoming adjacent inner vertices of v.
+v | Input vertex. |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +pure virtual | +
Returns the incoming adjacent outer vertices of v.
+v | Input vertex. |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +pure virtual | +
Returns the incoming adjacent outer vertices of v.
+v | Input vertex. |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +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 | +
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 >, grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_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 >, grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >.
+ +
+
|
+ +pure virtual | +
Convert from inner vertex handle to its global id.
+v | Input vertex handle. |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +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 vertices of v.
+v | Input vertex. |
Implemented in 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 > >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >.
+ +
+
|
+ +pure virtual | +
Returns the outgoing adjacent inner vertices of v.
+v | Input vertex. |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +pure virtual | +
Returns the outgoing adjacent inner vertices of v.
+v | Input vertex. |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +pure virtual | +
Returns the outgoing adjacent outer vertices of v.
+v | Input vertex. |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +pure virtual | +
Returns the outgoing adjacent outer vertices of v.
+v | Input vertex. |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the number of vertices in the entire graph.
+Implements grape::FragmentBase< OID_T, VDATA_T, EDATA_T >.
+ +
+
|
+ +inline | +
Get a vertex with original ID vid.
+vid | Original ID. |
v | Got vertex. |
+
|
+ +inlineoverridevirtual | +
Returns the number of vertices in this fragment.
+Implements grape::FragmentBase< OID_T, VDATA_T, EDATA_T >.
+ +
+
|
+ +inline | +
Convert from global id to a vertex handle.
+gid | Input global id. |
v | Output vertex handle. |
+
|
+ +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 >, grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_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 >, grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_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 >, grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_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 >, grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_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 >, grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, ImmutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_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.
+
+
|
+ +pure virtual | +
Set the data of a vertex.
+v | Input vertex. |
val | Data to write. |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, and grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >.
+ +
+
|
+ +inline | +
Convert from vertex handle to its global id.
+v | Input vertex handle. |
+
|
+ +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::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, VDATA_T, EDATA_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 | |
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... | |
virtual size_t | GetVerticesNum () const =0 |
Returns the number of vertices in this fragment. More... | |
virtual size_t | GetTotalVerticesNum () const =0 |
Returns the number of vertices in the entire graph. More... | |
virtual void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf, const ParallelEngineSpec &pe_spec)=0 |
For some kind of applications, specific data structures will be generated. More... | |
+Protected Member Functions | |
+void | init (fid_t fid, fid_t fnum, 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_ |
FragmentBase is the base class for fragments.
+OID_T | |
VDATA_T | |
EDATA_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 | +
Returns the number of edges in this fragment.
+Implemented in grape::ImmutableVertexcutFragment< uint64_t, EmptyType, EmptyType >, 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 > >, and grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >.
+ +
+
|
+ +pure virtual | +
Returns the number of vertices in the entire graph.
+Implemented in grape::ImmutableVertexcutFragment< uint64_t, EmptyType, EmptyType >, and grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +pure virtual | +
Returns the number of vertices in this fragment.
+Implemented in grape::ImmutableVertexcutFragment< uint64_t, EmptyType, EmptyType >, and grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_T >.
+ +
+
|
+ +pure virtual | +
For some kind of applications, specific data structures will be generated.
+strategy | |
need_split_edge |
Implemented in grape::MutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableVertexcutFragment< uint64_t, EmptyType, EmptyType >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >, grape::ImmutableEdgecutFragment< OID_T, VID_T, VDATA_T, EDATA_T, grape::LoadStrategy::kOnlyOut >, 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 > >, grape::CSREdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > >, and grape::cuda::HostFragment< OID_T, VID_T, VDATA_T, EDATA_T, _load_strategy >.
+ +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::GatherScatterAppBase< FRAG_T, CONTEXT_T, MESSAGE_MANAGER_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | message_manager_t = MESSAGE_MANAGER_T |
+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 |
+
|
+ +staticconstexpr | +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::GatherScatterMessageManager, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
void | Init (MPI_Comm comm) override |
Initialize message manager. More... | |
+void | Start () override |
This function will be called before Init step of applications. | |
+void | StartARound () override |
This function will be called before each evaluation step of applications. | |
+void | FinishARound () override |
This function will be called after each evaluation step of applications. | |
bool | ToTerminate () override |
This function will be called by worker after a step to determine whether evaluation is terminated. More... | |
+void | Finalize () override |
This function will be called after the evaluation of applications. | |
void | ForceContinue () override |
Force continue to evaluate one more round even if all workers stop sending message. More... | |
void | ForceTerminate (const std::string &terminate_info="") override |
Force all workers terminate after this round of evaluation. More... | |
const TerminateInfo & | GetTerminateInfo () const override |
This function is called to get gathered termination info after evaluation finished. More... | |
size_t | GetMsgSize () const override |
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... | |
+template<typename FRAG_T , typename MESSAGE_T > | |
void | AllocateGatherBuffers (const FRAG_T &frag) |
+template<typename GRAPH_T , typename MESSAGE_T , typename AGGR_T > | |
void | GatherMasterVertices (const GRAPH_T &frag, const typename GRAPH_T::template both_vertex_array_t< MESSAGE_T > &input, typename GRAPH_T::template vertex_array_t< MESSAGE_T > &output) |
+template<typename GRAPH_T , typename MESSAGE_T > | |
void | ScatterMasterVertices (const GRAPH_T &frag, const typename GRAPH_T::template vertex_array_t< MESSAGE_T > &input, typename GRAPH_T::template both_vertex_array_t< MESSAGE_T > &output) |
+Private Member Functions | |
+bool | takeFromPool (std::vector< char > &buffer, size_t size) |
+void | returnToPool (std::vector< char > &&buffer) |
+Private Attributes | |
+fid_t | fid_ |
+fid_t | fnum_ |
+CommSpec | comm_spec_ |
+MPI_Comm | comm_ |
+int | round_ |
+size_t | sent_size_ |
+bool | force_terminate_ |
+TerminateInfo | terminate_info_ |
+bool | vote_terminate_ |
+std::map< size_t, std::queue< std::vector< char > > > | gather_pools_ |
+
|
+ +inlineoverridevirtual | +
Force continue to evaluate one more round even if all workers stop sending message.
+This function can be called by applications.
+ +Implements grape::MessageManagerBase.
+ +
+
|
+ +inlineoverridevirtual | +
Force all workers terminate after this round of evaluation.
+This function can be called by applications.
info | Termination info. |
Implements grape::MessageManagerBase.
+ +
+
|
+ +inlineoverridevirtual | +
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.
+Implements grape::MessageManagerBase.
+ +
+
|
+ +inlineoverridevirtual | +
This function is called to get gathered termination info after evaluation finished.
+Implements grape::MessageManagerBase.
+ +
+
|
+ +inlineoverridevirtual | +
Initialize message manager.
+comm | MPI_Comm object. |
Implements grape::MessageManagerBase.
+ +
+
|
+ +inlineoverridevirtual | +
This function will be called by worker after a step to determine whether evaluation is terminated.
+Implements grape::MessageManagerBase.
+ +
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::HashMapIdxer< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | HashMapIdxer (IdIndexer< internal_oid_t, VID_T > &&indexer) |
+bool | get_key (VID_T vid, internal_oid_t &oid) const override |
+bool | get_index (const internal_oid_t &oid, VID_T &vid) const override |
+IdxerType | type () const override |
+void | serialize (std::unique_ptr< IOAdaptorBase > &writer) override |
+void | deserialize (std::unique_ptr< IOAdaptorBase > &reader) override |
+size_t | size () const override |
+void | add (const internal_oid_t &oid) |
+size_t | memory_usage () const override |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Attributes | |
+IdIndexer< internal_oid_t, VID_T > | indexer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::HashMapIdxerBuilder< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Public Member Functions | |
+void | add (const internal_oid_t &oid) override |
+std::unique_ptr< IdxerBase< OID_T, VID_T > > | finish () override |
+void | sync_request (const CommSpec &comm_spec, int target, int tag) override |
+void | sync_response (const CommSpec &comm_spec, int source, int tag) override |
+Private Attributes | |
+IdIndexer< internal_oid_t, VID_T > | indexer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::HashMapIdxerDummyBuilder< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Public Member Functions | |
+void | add (const internal_oid_t &oid) override |
+std::unique_ptr< IdxerBase< OID_T, VID_T > > | finish () override |
+void | sync_request (const CommSpec &comm_spec, int target, int tag) override |
+void | sync_response (const CommSpec &comm_spec, int source, int tag) override |
+Private Attributes | |
+IdIndexer< internal_oid_t, VID_T > | indexer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::HashMapIdxerView< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | HashMapIdxerView (Array< char, Allocator< char >> &&buf) |
+bool | get_key (VID_T vid, internal_oid_t &oid) const override |
+bool | get_index (const internal_oid_t &oid, VID_T &vid) const override |
+IdxerType | type () const override |
+void | serialize (std::unique_ptr< IOAdaptorBase > &writer) override |
+void | deserialize (std::unique_ptr< IOAdaptorBase > &reader) override |
+size_t | size () const override |
+size_t | memory_usage () const override |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Attributes | |
+IdIndexerView< internal_oid_t, VID_T > | indexer_ |
+Array< char, Allocator< char > > | buffer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::HashMapIdxerViewBuilder< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | add (const internal_oid_t &oid) override |
+std::unique_ptr< IdxerBase< OID_T, VID_T > > | finish () override |
+void | sync_request (const CommSpec &comm_spec, int target, int tag) override |
+void | sync_response (const CommSpec &comm_spec, int source, int tag) override |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Attributes | |
+IdIndexer< internal_oid_t, VID_T > | indexer_ |
+std::vector< char > | buffer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::HashMapIdxerViewDummyBuilder< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Public Member Functions | |
+void | add (const internal_oid_t &oid) override |
+std::unique_ptr< IdxerBase< OID_T, VID_T > > | finish () override |
+void | sync_request (const CommSpec &comm_spec, int target, int tag) override |
+void | sync_response (const CommSpec &comm_spec, int source, int tag) override |
+Private Attributes | |
+Array< char, Allocator< char > > | buffer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::HashPartitioner< OID_T, HASH_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
![]() | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Public Member Functions | |
+ | HashPartitioner (size_t frag_num) |
+fid_t | GetPartitionId (const internal_oid_t &oid) const override |
+void | SetPartitionId (const internal_oid_t &oid, fid_t fid) override |
+void | serialize (std::unique_ptr< IOAdaptorBase > &writer) override |
+void | deserialize (std::unique_ptr< IOAdaptorBase > &reader) override |
+PartitionerType | type () const override |
+size_t | memory_usage () const override |
+Private Attributes | |
+HASH_T | hash_ |
+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::IPartitioner< OID_T >, including all inherited members.
+deserialize(std::unique_ptr< IOAdaptorBase > &reader)=0 (defined in grape::IPartitioner< OID_T >) | grape::IPartitioner< OID_T > | pure virtual |
GetPartitionId(const internal_oid_t &oid) const =0 (defined in grape::IPartitioner< OID_T >) | grape::IPartitioner< OID_T > | pure virtual |
internal_oid_t typedef (defined in grape::IPartitioner< OID_T >) | grape::IPartitioner< OID_T > | |
memory_usage() const =0 (defined in grape::IPartitioner< OID_T >) | grape::IPartitioner< OID_T > | pure virtual |
serialize(std::unique_ptr< IOAdaptorBase > &writer)=0 (defined in grape::IPartitioner< OID_T >) | grape::IPartitioner< OID_T > | pure virtual |
SetPartitionId(const internal_oid_t &oid, fid_t fid)=0 (defined in grape::IPartitioner< OID_T >) | grape::IPartitioner< OID_T > | pure virtual |
type() const =0 (defined in grape::IPartitioner< OID_T >) | grape::IPartitioner< OID_T > | pure virtual |
~IPartitioner()=default (defined in grape::IPartitioner< OID_T >) | grape::IPartitioner< OID_T > | virtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Public Member Functions | |
+virtual fid_t | GetPartitionId (const internal_oid_t &oid) const =0 |
+virtual void | SetPartitionId (const internal_oid_t &oid, fid_t fid)=0 |
+virtual void | serialize (std::unique_ptr< IOAdaptorBase > &writer)=0 |
+virtual void | deserialize (std::unique_ptr< IOAdaptorBase > &reader)=0 |
+virtual size_t | memory_usage () const =0 |
+virtual PartitionerType | type () const =0 |
+ 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 > |
+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 | |
+ | IdIndexer (IdIndexer &&rhs) |
+IdIndexer & | operator= (IdIndexer &&rhs) |
+size_t | entry_num () const |
+size_t | memory_usage () 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) |
+void | serialize_to_mem (std::vector< char > &buf) const |
+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::IdIndexerView< KEY_T, INDEX_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Private Attributes | |
+id_indexer_impl::KeyBufferView< KEY_T > | keys_ |
+ref_vector< INDEX_T > | indices_ |
+ref_vector< int8_t > | distances_ |
+ska::ska::prime_number_hash_policy | hash_policy_ |
+int8_t | max_lookups_ = id_indexer_impl::min_lookups - 1 |
+size_t | num_elements_ = 0 |
+size_t | num_slots_minus_one_ = 0 |
+std::hash< KEY_T > | hasher_ |
+ 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::IdxerBase< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+virtual bool | get_key (VID_T vid, internal_oid_t &oid) const =0 |
+virtual bool | get_index (const internal_oid_t &oid, VID_T &vid) const =0 |
+virtual IdxerType | type () const =0 |
+virtual size_t | size () const =0 |
+virtual size_t | memory_usage () const =0 |
+virtual void | serialize (std::unique_ptr< IOAdaptorBase > &writer)=0 |
+virtual void | deserialize (std::unique_ptr< IOAdaptorBase > &reader)=0 |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::IdxerBuilderBase< OID_T, VID_T >, including all inherited members.
+add(const internal_oid_t &oid)=0 (defined in grape::IdxerBuilderBase< OID_T, VID_T >) | grape::IdxerBuilderBase< OID_T, VID_T > | pure virtual |
finish()=0 (defined in grape::IdxerBuilderBase< OID_T, VID_T >) | grape::IdxerBuilderBase< OID_T, VID_T > | pure virtual |
internal_oid_t typedef (defined in grape::IdxerBuilderBase< OID_T, VID_T >) | grape::IdxerBuilderBase< OID_T, VID_T > | private |
sync_request(const CommSpec &comm_spec, int target, int tag)=0 (defined in grape::IdxerBuilderBase< OID_T, VID_T >) | grape::IdxerBuilderBase< OID_T, VID_T > | pure virtual |
sync_response(const CommSpec &comm_spec, int source, int tag)=0 (defined in grape::IdxerBuilderBase< OID_T, VID_T >) | grape::IdxerBuilderBase< OID_T, VID_T > | pure virtual |
~IdxerBuilderBase()=default (defined in grape::IdxerBuilderBase< OID_T, VID_T >) | grape::IdxerBuilderBase< OID_T, VID_T > | virtual |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+virtual void | add (const internal_oid_t &oid)=0 |
+virtual std::unique_ptr< IdxerBase< OID_T, VID_T > > | finish ()=0 |
+virtual void | sync_request (const CommSpec &comm_spec, int target, int tag)=0 |
+virtual void | sync_response (const CommSpec &comm_spec, int source, int tag)=0 |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+ 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 |
+using | vertex_range_t = VertexRange< VID_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 () |
+size_t | memory_usage () 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) |
+Private Attributes | |
+Array< nbr_t, Allocator< nbr_t > > | edges_ |
+Array< nbr_t *, Allocator< nbr_t * > > | offsets_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::ImmutableCSRBuilder< 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, int concurrency) |
+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::ImmutableCSRParallelBuilder< 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, int concurrency) |
+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< std::atomic< int > > | degree_ |
+std::vector< std::atomic< int > > | 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, int concurrency) (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, int concurrency) |
+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 >, 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 > |
+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 | 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 > > |
![]() | |
+using | base_t = FragmentBase< OID_T, VDATA_T, EDATA_T > |
+using | vid_t = VID_T |
+using | vertex_t = Vertex< VID_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 |
+using | internal_id_t = typename InternalOID< OID_T >::type |
+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 |
+Public Member Functions | |
+void | Init (const CommSpec &comm_spec, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr, std::vector< internal_vertex_t > &vertices, std::vector< edge_t > &edges) |
+void | ParallelInit (const CommSpec &comm_spec, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr, std::vector< internal_vertex_t > &vertices, std::vector< edge_t > &edges, int concurrency) |
+template<typename IOADAPTOR_T > | |
void | Serialize (const std::string &prefix) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (const CommSpec &comm_spec, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr, const std::string &prefix) |
void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf, const ParallelEngineSpec &pe_spec) 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, fid_t fnum, bool directed) |
![]() | |
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... | |
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) 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... | |
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 |
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, const ParallelEngineSpec &pe_spec) 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... | |
fid_t | GetFragId (const Vertex< VID_T > &u) const |
Get the ID of fragment the input vertex belongs to. More... | |
VID_T | GetInnerVerticesNum () const |
Returns the number of inner vertices in this fragment. More... | |
+void | initMirrorInfo (const CommSpec &comm_spec) |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
![]() | |
+VertexMap< OID_T, VID_T > & | GetVertexMap () |
+const VertexMap< OID_T, VID_T > & | GetVertexMap () const |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
size_t | GetVerticesNum () const override |
Returns the number of vertices in this fragment. More... | |
size_t | GetTotalVerticesNum () const override |
Returns the number of vertices in the entire graph. 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... | |
+internal_id_t | GetInternalId (const Vertex< VID_T > &v) const |
+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... | |
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 |
Convert from global id to a vertex handle. More... | |
vid_t | Vertex2Gid (const vertex_t &v) const |
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... | |
![]() | |
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... | |
+Static Public Member Functions | |
+static std::string | type_info () |
+Static Public Attributes | |
+static constexpr LoadStrategy | load_strategy = _load_strategy |
![]() | |
+static constexpr FragmentType | fragment_type = FragmentType::kEdgeCut |
+Protected Member Functions | |
+void | initOuterVerticesOfFragment () |
+void | splitEdges () |
+void | splitEdgesByFragment () |
![]() | |
+void | buildCSR (const vertices_t &vertex_range, std::vector< Edge< VID_T, EDATA_T >> &edges, LoadStrategy load_strategy, int concurrency=1) |
+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 |
![]() | |
+void | init (fid_t fid, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr) |
+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, fid_t fnum, 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 |
+bool | directed_ |
+fid_t | fid_ |
+fid_t | fnum_ |
![]() | |
+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_ |
![]() | |
+VID_T | ivnum_ |
+inner_vertices_t | inner_vertices_ |
+outer_vertices_t | outer_vertices_ |
+vertices_t | vertices_ |
+std::vector< sub_vertices_t > | outer_vertices_of_frag_ |
+std::vector< mirror_vertices_t > | mirrors_of_frag_ |
+std::unique_ptr< VertexMap< OID_T, VID_T > > | vm_ptr_ |
+IdParser< VID_T > | id_parser_ |
![]() | |
+fid_t | fid_ |
+fid_t | fnum_ |
+bool | directed_ |
+Additional Inherited Members | |
![]() | |
+using | vertices_t = typename TRAITS_T::vertices_t |
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::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 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 >.
+ +
+
|
+ +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, VDATA_T, EDATA_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Set the data of a vertex.
+v | Input vertex. |
val | Data to write. |
Implements grape::EdgecutFragmentBase< OID_T, VID_T, VDATA_T, EDATA_T, TRAITS_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::ImmutableVertexcutFragment< uint64_t, EmptyType, EmptyType >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Classes | |
struct | edge_bucket_t |
+Public Types | |
+using | oid_t = uint64_t |
+using | vid_t = uint64_t |
+using | edata_t = EmptyType |
+using | vdata_t = EmptyType |
+using | vertex_t = Vertex< vid_t > |
+using | vertices_t = VertexRange< oid_t > |
+using | vertex_range_t = VertexRange< vid_t > |
+using | both_vertices_t = DualVertexRange< oid_t > |
+using | edge_t = Edge< oid_t, edata_t > |
+using | base_t = FragmentBase< oid_t, vdata_t, edata_t > |
+template<typename T > | |
using | vertex_array_t = VertexArray< vertices_t, T > |
+template<typename T > | |
using | both_vertex_array_t = VertexArray< both_vertices_t, T > |
+Public Member Functions | |
+const EmptyType & | GetData (const vertex_t &v) const |
+void | Init (const CommSpec &comm_spec, int64_t vnum, std::vector< edge_t > &&edges, int bucket_num=1, std::vector< size_t > &&bucket_edge_offsets={}) |
void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf, const ParallelEngineSpec &pe_spec) override |
For some kind of applications, specific data structures will be generated. More... | |
+const vertices_t & | SourceVertices () const |
+const vertices_t & | DestinationVertices () const |
+const both_vertices_t & | Vertices () const |
+const vertices_t & | InnerVertices () const |
+const vertices_t & | MasterVertices () const |
+const std::vector< edge_t > & | GetEdges () const |
+template<typename IOADAPTOR_T > | |
void | Serialize (const std::string &prefix) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (const CommSpec &comm_spec, const std::string &prefix) |
size_t | GetTotalVerticesNum () const override |
Returns the number of vertices in the entire graph. More... | |
size_t | GetEdgeNum () const override |
Returns the number of edges in this fragment. More... | |
size_t | GetVerticesNum () const override |
Returns the number of vertices in this fragment. More... | |
+const VCPartitioner< oid_t > & | GetPartitioner () const |
+edge_bucket_t | GetEdgesOfBucket (int src_bucket_id, int dst_bucket_id) const |
+int | GetBucketNum () const |
+oid_t | GetId (const Vertex< oid_t > &v) const |
![]() | |
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... | |
+Public Attributes | |
+fid_t | fid_ |
+fid_t | fnum_ |
+Static Public Attributes | |
+static constexpr FragmentType | fragment_type = FragmentType::kVertexCut |
+static constexpr LoadStrategy | load_strategy = LoadStrategy::kOnlyOut |
+Private Member Functions | |
+void | buildBucket (int thread_num) |
+Private Attributes | |
+VCPartitioner< oid_t > | partitioner_ |
+vertices_t | src_vertices_ |
+vertices_t | dst_vertices_ |
+both_vertices_t | vertices_ |
+vertices_t | master_vertices_ |
+std::vector< edge_t > | edges_ |
+int | bucket_num_ |
+std::vector< size_t > | bucket_edge_offsets_ |
+EmptyType | data_ |
+Additional Inherited Members | |
![]() | |
+void | init (fid_t fid, fid_t fnum, bool directed) |
+void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) |
+void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
![]() | |
+fid_t | fid_ |
+fid_t | fnum_ |
+bool | directed_ |
+
|
+ +inlineoverridevirtual | +
Returns the number of edges in this fragment.
+Implements grape::FragmentBase< uint64_t, EmptyType, EmptyType >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the number of vertices in the entire graph.
+Implements grape::FragmentBase< uint64_t, EmptyType, EmptyType >.
+ +
+
|
+ +inlineoverridevirtual | +
Returns the number of vertices in this fragment.
+Implements grape::FragmentBase< uint64_t, EmptyType, EmptyType >.
+ +
+
|
+ +inlineoverridevirtual | +
For some kind of applications, specific data structures will be generated.
+strategy | |
need_split_edge |
Implements grape::FragmentBase< uint64_t, EmptyType, EmptyType >.
+ +
+ 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::LocalIdxer< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | LocalIdxer (IdIndexer< internal_oid_t, VID_T > &&oid_indexer, IdIndexer< VID_T, VID_T > &&lid_indexer) |
+bool | get_key (VID_T vid, internal_oid_t &oid) const override |
+bool | get_index (const internal_oid_t &oid, VID_T &vid) const override |
+IdxerType | type () const override |
+void | serialize (std::unique_ptr< IOAdaptorBase > &writer) override |
+void | deserialize (std::unique_ptr< IOAdaptorBase > &reader) override |
+size_t | size () const override |
+void | add (const internal_oid_t &oid, VID_T vid) |
+size_t | memory_usage () const override |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Attributes | |
+IdIndexer< internal_oid_t, VID_T > | oid_indexer_ |
+IdIndexer< VID_T, VID_T > | lid_indexer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::LocalIdxerBuilder< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Public Member Functions | |
+void | add (const internal_oid_t &oid) override |
+std::unique_ptr< IdxerBase< OID_T, VID_T > > | finish () override |
+void | sync_request (const CommSpec &comm_spec, int target, int tag) override |
+void | sync_response (const CommSpec &comm_spec, int source, int tag) override |
+Private Attributes | |
+IdIndexer< internal_oid_t, VID_T > | oid_indexer_ |
+IdIndexer< VID_T, VID_T > | lid_indexer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::MapPartitioner< OID_T >, including all inherited members.
+deserialize(std::unique_ptr< IOAdaptorBase > &reader) override (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | inlinevirtual |
fnum_ (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | private |
GetPartitionId(const internal_oid_t &oid) const override (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | inlinevirtual |
Init(fid_t fnum, const std::vector< OID_T > &oid_list) (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | inline |
Init(const std::vector< std::vector< OID_T >> &oid_lists) (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | inline |
internal_oid_t typedef (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | |
MapPartitioner() (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | inline |
MapPartitioner(fid_t fnum) (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | inlineexplicit |
MapPartitioner(fid_t fnum, const std::vector< OID_T > &oid_list) (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | inline |
memory_usage() const override (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | inlinevirtual |
o2f_ (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | private |
serialize(std::unique_ptr< IOAdaptorBase > &writer) override (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | inlinevirtual |
SetPartitionId(const internal_oid_t &oid, fid_t fid) override (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | inlinevirtual |
type() const override (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > | inlinevirtual |
~IPartitioner()=default (defined in grape::IPartitioner< OID_T >) | grape::IPartitioner< OID_T > | virtual |
~MapPartitioner()=default (defined in grape::MapPartitioner< OID_T >) | grape::MapPartitioner< OID_T > |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
![]() | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Public Member Functions | |
+ | MapPartitioner (fid_t fnum) |
+ | MapPartitioner (fid_t fnum, const std::vector< OID_T > &oid_list) |
+void | Init (fid_t fnum, const std::vector< OID_T > &oid_list) |
+void | Init (const std::vector< std::vector< OID_T >> &oid_lists) |
+fid_t | GetPartitionId (const internal_oid_t &oid) const override |
+void | SetPartitionId (const internal_oid_t &oid, fid_t fid) override |
+void | serialize (std::unique_ptr< IOAdaptorBase > &writer) override |
+void | deserialize (std::unique_ptr< IOAdaptorBase > &reader) override |
+PartitionerType | type () const override |
+size_t | memory_usage () const override |
+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::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::GatherScatterMessageManager, 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::GatherScatterMessageManager, 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::GatherScatterMessageManager, 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::GatherScatterMessageManager, grape::DefaultMessageManager, and grape::BatchShuffleMessageManager.
+ +
+
|
+ +pure virtual | +
Initialize message manager.
+comm | MPI_Comm object. |
Implemented in grape::ParallelMessageManagerOpt, grape::ParallelMessageManager, grape::GatherScatterMessageManager, 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::GatherScatterMessageManager, 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, int concurrency) |
+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 >, 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 > |
+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 | 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 |
![]() | |
+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, MutableEdgecutFragmentTraits< OID_T, VID_T, VDATA_T, EDATA_T > > |
![]() | |
+using | base_t = FragmentBase< OID_T, VDATA_T, EDATA_T > |
+using | vid_t = VID_T |
+using | vertex_t = Vertex< VID_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 |
+using | internal_id_t = typename InternalOID< OID_T >::type |
+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 |
+Public Member Functions | |
+void | Init (const CommSpec &comm_spec, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr, std::vector< internal_vertex_t > &vertices, std::vector< edge_t > &edges) |
+void | ParallelInit (const CommSpec &comm_spec, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr, std::vector< internal_vertex_t > &vertices, std::vector< edge_t > &edges, int concurrency) |
+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 CommSpec &comm_spec, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr, const std::string &prefix) |
void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf, const ParallelEngineSpec &pe_spec) 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... | |
+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 |
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... | |
+void | init (fid_t fid, fid_t fnum, bool directed) |
![]() | |
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... | |
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) 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... | |
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 |
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, const ParallelEngineSpec &pe_spec) 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... | |
fid_t | GetFragId (const Vertex< VID_T > &u) const |
Get the ID of fragment the input vertex belongs to. More... | |
VID_T | GetInnerVerticesNum () const |
Returns the number of inner vertices in this fragment. More... | |
+void | initMirrorInfo (const CommSpec &comm_spec) |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
![]() | |
+VertexMap< OID_T, VID_T > & | GetVertexMap () |
+const VertexMap< OID_T, VID_T > & | GetVertexMap () const |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
size_t | GetVerticesNum () const override |
Returns the number of vertices in this fragment. More... | |
size_t | GetTotalVerticesNum () const override |
Returns the number of vertices in the entire graph. 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... | |
+internal_id_t | GetInternalId (const Vertex< VID_T > &v) const |
+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... | |
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 |
Convert from global id to a vertex handle. More... | |
vid_t | Vertex2Gid (const vertex_t &v) const |
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... | |
![]() | |
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... | |
+Static Public Member Functions | |
+static std::string | type_info () |
+Static Public Attributes | |
+static constexpr LoadStrategy | load_strategy = _load_strategy |
![]() | |
+static constexpr FragmentType | fragment_type = FragmentType::kEdgeCut |
+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_ |
+bool | directed_ |
+fid_t | fid_ |
+fid_t | fnum_ |
+Additional Inherited Members | |
![]() | |
+using | vertices_t = typename TRAITS_T::vertices_t |
![]() | |
+void | buildCSR (const vertices_t &vertex_range, std::vector< Edge< VID_T, EDATA_T >> &edges, LoadStrategy load_strategy, int concurrency=1) |
+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 |
![]() | |
+void | init (fid_t fid, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr) |
+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, fid_t fnum, 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) |
![]() | |
+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_ |
![]() | |
+VID_T | ivnum_ |
+inner_vertices_t | inner_vertices_ |
+outer_vertices_t | outer_vertices_ |
+vertices_t | vertices_ |
+std::vector< sub_vertices_t > | outer_vertices_of_frag_ |
+std::vector< mirror_vertices_t > | mirrors_of_frag_ |
+std::unique_ptr< VertexMap< OID_T, VID_T > > | vm_ptr_ |
+IdParser< VID_T > | id_parser_ |
![]() | |
+fid_t | fid_ |
+fid_t | fnum_ |
+bool | directed_ |
+
|
+ +inlineoverridevirtual | +
Get the data of a vertex.
+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 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 >.
+ +
+
|
+ +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, VDATA_T, EDATA_T >.
+ +
+
|
+ +inlineoverridevirtual | +
Set the data of a vertex.
+v | Input vertex. |
val | Data to write. |
Implements grape::EdgecutFragmentBase< 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::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::PHIndexerView< KEY_T, INDEX_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Private Attributes | |
+SinglePHFView< murmurhasher > | phf_view_ |
+id_indexer_impl::KeyBufferView< KEY_T > | keys_view_ |
+const void * | buffer_ |
+size_t | buffer_size_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::PTHashIdxer< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | PTHashIdxer (Array< char, Allocator< char >> &&buf) |
+void | Init (void *buffer, size_t size) |
+bool | get_key (VID_T vid, internal_oid_t &oid) const override |
+bool | get_index (const internal_oid_t &oid, VID_T &vid) const override |
+IdxerType | type () const override |
+void | serialize (std::unique_ptr< IOAdaptorBase > &writer) override |
+void | deserialize (std::unique_ptr< IOAdaptorBase > &reader) override |
+size_t | size () const override |
+size_t | memory_usage () const override |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Attributes | |
+Array< char, Allocator< char > > | buffer_ |
+PHIndexerView< internal_oid_t, VID_T > | idxer_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::PTHashIdxerBuilder< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+void | add (const internal_oid_t &oid) override |
+void | buildPhf () |
+size_t | getSerializeSize () |
+void | finishInplace (void *buffer, size_t size, PTHashIdxer< OID_T, VID_T > &idxer) |
+std::unique_ptr< IdxerBase< OID_T, VID_T > > | finish () override |
+void | sync_request (const CommSpec &comm_spec, int target, int tag) override |
+void | sync_response (const CommSpec &comm_spec, int source, int tag) override |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Attributes | |
+std::vector< OID_T > | keys_ |
+id_indexer_impl::KeyBuffer< internal_oid_t > | key_buffer_ |
+pthash::single_phf< murmurhasher, pthash::dictionary_dictionary, true > | phf_ |
+Array< char, Allocator< char > > | buffer_ |
+bool | build_phf_ = false |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::PTHashIdxerDummyBuilder< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Public Member Functions | |
+void | add (const internal_oid_t &oid) override |
+void | sync_request (const CommSpec &comm_spec, int target, int tag) override |
+void | sync_response (const CommSpec &comm_spec, int source, int tag) override |
+std::unique_ptr< IdxerBase< OID_T, VID_T > > | finish () override |
+Private Attributes | |
+Array< char, Allocator< char > > | buffer_ |
+ 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(int from, int to, 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 > | |
void | ForEach (int from, int to, const ITER_FUNC_T &iter_func) |
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::Rebalancer< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | Rebalancer (int vertex_factor, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vertex_map) |
+void | inc_degree (const OID_T &oid) |
+void | finish (const CommSpec &comm_spec, VertexMap< OID_T, VID_T > &new_vertex_map) |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+using | vid_t = VID_T |
+Private Attributes | |
+int | vertex_factor_ |
+std::unique_ptr< VertexMap< OID_T, VID_T > > | vertex_map_ |
+IdParser< VID_T > | id_parser_ |
+std::vector< std::vector< int > > | degree_ |
+ 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
+ |
+
+Public Member Functions | |
+ | SegmentedPartitioner (fid_t fnum, const std::vector< OID_T > &sorted_oid_list) |
+ | SegmentedPartitioner (const std::vector< OID_T > &boundaries) |
+void | Init (fid_t fnum, const std::vector< OID_T > &boundaries) |
+fid_t | GetPartitionId (const internal_oid_t &oid) const override |
+void | SetPartitionId (const internal_oid_t &oid, fid_t fid) override |
+PartitionerType | type () const override |
+void | serialize (std::unique_ptr< IOAdaptorBase > &writer) override |
+void | deserialize (std::unique_ptr< IOAdaptorBase > &reader) override |
+size_t | memory_usage () const override |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Attributes | |
+fid_t | fnum_ |
+std::vector< OID_T > | boundaries_ |
+Additional Inherited Members | |
![]() | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+ 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::SortedArrayIdxer< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | SortedArrayIdxer (Array< OID_T, Allocator< OID_T >> &&id_list) |
+bool | get_key (VID_T vid, internal_oid_t &oid) const override |
+bool | get_index (const internal_oid_t &oid, VID_T &vid) const override |
+IdxerType | type () const override |
+void | serialize (std::unique_ptr< IOAdaptorBase > &writer) override |
+void | deserialize (std::unique_ptr< IOAdaptorBase > &reader) override |
+size_t | size () const override |
+size_t | memory_usage () const override |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Attributes | |
+Array< OID_T, Allocator< OID_T > > | id_list_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::SortedArrayIdxerBuilder< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Public Member Functions | |
+void | add (const internal_oid_t &oid) override |
+std::unique_ptr< IdxerBase< OID_T, VID_T > > | finish () override |
+void | sync_request (const CommSpec &comm_spec, int target, int tag) override |
+void | sync_response (const CommSpec &comm_spec, int source, int tag) override |
+Private Attributes | |
+std::vector< OID_T > | keys_ |
+bool | sorted_ = false |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::SortedArrayIdxerBuilder< std::string, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< std::string >::type |
+Public Member Functions | |
+void | add (const internal_oid_t &oid) override |
+std::unique_ptr< IdxerBase< std::string, VID_T > > | finish () override |
+void | sync_request (const CommSpec &comm_spec, int target, int tag) override |
+void | sync_response (const CommSpec &comm_spec, int source, int tag) override |
+Private Attributes | |
+std::vector< std::string > | keys_ |
+StringViewVector | id_list_ |
+bool | sorted_ = false |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::SortedArrayIdxerDummyBuilder< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Public Member Functions | |
+void | add (const internal_oid_t &oid) override |
+std::unique_ptr< IdxerBase< OID_T, VID_T > > | finish () override |
+void | sync_request (const CommSpec &comm_spec, int target, int tag) override |
+void | sync_response (const CommSpec &comm_spec, int source, int tag) override |
+Private Attributes | |
+Array< OID_T, Allocator< OID_T > > | id_list_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::SortedArrayIdxerDummyBuilder< std::string, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Types | |
+using | internal_oid_t = typename InternalOID< std::string >::type |
+Public Member Functions | |
+void | add (const internal_oid_t &oid) override |
+std::unique_ptr< IdxerBase< std::string, VID_T > > | finish () override |
+void | sync_request (const CommSpec &comm_spec, int target, int tag) override |
+void | sync_response (const CommSpec &comm_spec, int source, int tag) override |
+Private Attributes | |
+StringViewVector | id_list_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::SortedArrayIdxer< std::string, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | SortedArrayIdxer (StringViewVector &&id_list) |
+bool | get_key (VID_T vid, internal_oid_t &oid) const override |
+bool | get_index (const internal_oid_t &oid, VID_T &vid) const override |
+IdxerType | type () const override |
+void | serialize (std::unique_ptr< IOAdaptorBase > &writer) override |
+void | deserialize (std::unique_ptr< IOAdaptorBase > &reader) override |
+size_t | size () const override |
+size_t | memory_usage () const override |
+Private Types | |
+using | internal_oid_t = typename InternalOID< std::string >::type |
+Private Attributes | |
+StringViewVector | id_list_ |
+ 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.
+buffer_ (defined in grape::StringViewVector) | grape::StringViewVector | private |
clear() (defined in grape::StringViewVector) | grape::StringViewVector | inline |
content_buffer() (defined in grape::StringViewVector) | grape::StringViewVector | inline |
content_buffer() const (defined in grape::StringViewVector) | grape::StringViewVector | inline |
deserialize(std::unique_ptr< IOADAPTOR_T > &reader) (defined in grape::StringViewVector) | grape::StringViewVector | inline |
emplace_back(const nonstd::string_view &val) (defined in grape::StringViewVector) | grape::StringViewVector | inline |
offset_buffer() (defined in grape::StringViewVector) | grape::StringViewVector | inline |
offset_buffer() const (defined in grape::StringViewVector) | grape::StringViewVector | inline |
offsets_ (defined in grape::StringViewVector) | grape::StringViewVector | private |
operator[](size_t index) const (defined in grape::StringViewVector) | grape::StringViewVector | inline |
push_back(const nonstd::string_view &val) (defined in grape::StringViewVector) | grape::StringViewVector | inline |
serialize(std::unique_ptr< IOADAPTOR_T > &writer) const (defined in grape::StringViewVector) | grape::StringViewVector | inline |
serialize_to_mem(std::vector< char > &buf) const (defined in grape::StringViewVector) | grape::StringViewVector | inline |
size() const (defined in grape::StringViewVector) | grape::StringViewVector | inline |
StringViewVector() (defined in grape::StringViewVector) | grape::StringViewVector | inline |
swap(StringViewVector &rhs) (defined in grape::StringViewVector) | grape::StringViewVector | inline |
~StringViewVector() (defined in grape::StringViewVector) | grape::StringViewVector | inline |
+ 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) |
+template<typename IOADAPTOR_T > | |
void | serialize (std::unique_ptr< IOADAPTOR_T > &writer) const |
+template<typename IOADAPTOR_T > | |
void | deserialize (std::unique_ptr< IOADAPTOR_T > &reader) |
+void | serialize_to_mem (std::vector< char > &buf) const |
+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::VCEdgeBucketer< OID_T >, including all inherited members.
+bucket_infos_ (defined in grape::VCEdgeBucketer< OID_T >) | grape::VCEdgeBucketer< OID_T > | private |
bucket_num_ (defined in grape::VCEdgeBucketer< OID_T >) | grape::VCEdgeBucketer< OID_T > | private |
get_bucket_id(const OID_T &src, const OID_T &dst) const (defined in grape::VCEdgeBucketer< OID_T >) | grape::VCEdgeBucketer< OID_T > | inline |
get_partition_bucket_id(const OID_T &src, const OID_T &dst) const (defined in grape::VCEdgeBucketer< OID_T >) | grape::VCEdgeBucketer< OID_T > | inline |
partitioner_ (defined in grape::VCEdgeBucketer< OID_T >) | grape::VCEdgeBucketer< OID_T > | private |
VCEdgeBucketer(const VCPartitioner< OID_T > &partitioner, int bucket_num) (defined in grape::VCEdgeBucketer< OID_T >) | grape::VCEdgeBucketer< OID_T > | inline |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Classes | |
struct | bucket_info |
+Public Member Functions | |
+ | VCEdgeBucketer (const VCPartitioner< OID_T > &partitioner, int bucket_num) |
+int | get_bucket_id (const OID_T &src, const OID_T &dst) const |
+std::pair< fid_t, int > | get_partition_bucket_id (const OID_T &src, const OID_T &dst) const |
+Private Attributes | |
+const VCPartitioner< OID_T > & | partitioner_ |
+int | bucket_num_ |
+std::vector< bucket_info > | bucket_infos_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VCFragmentLoader< FRAG_T, IOADAPTOR_T, LINE_PARSER_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | VCFragmentLoader (const CommSpec &comm_spec) |
+std::shared_ptr< fragment_t > | LoadFragment (int64_t vnum, const std::string &efile, const LoadGraphSpec &spec) |
+Private Member Functions | |
+std::shared_ptr< fragment_t > | loadFragmentSingleScan (int64_t vnum, const std::string &efile, const LoadGraphSpec &spec) |
+std::shared_ptr< fragment_t > | loadFragmentDoubleScan (int64_t vnum, const std::string &efile, const LoadGraphSpec &spec) |
+Private Attributes | |
+CommSpec | comm_spec_ |
+line_parser_t | line_parser_ |
+ 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) |
+DualVertexRange< VID_T > | GetVertexRange () const |
+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
+ |
+
+ 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::VertexDataContext< FRAG_T, DATA_T, typename std::enable_if< is_edge_cut_fragment< FRAG_T >::value >::type >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VertexDataContext< FRAG_T, DATA_T, typename std::enable_if< is_vertex_cut_fragment< FRAG_T >::value >::type >, 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) |
+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_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::VertexMap< OID_T, VID_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 | internal_oid_t = typename InternalOID< OID_T >::type |
+Public Member Functions | |
+ | VertexMap (const VertexMap &)=delete |
+fid_t | GetFragmentNum () const |
+fid_t | GetFragmentId (const OID_T &oid) const |
+const IdParser< VID_T > & | GetIdParser () const |
+const IPartitioner< OID_T > & | GetPartitioner () 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 |
+size_t | GetTotalVertexSize () const |
+size_t | GetInnerVertexSize (fid_t fid) const |
+void | UpdateToBalance (const CommSpec &comm_spec, const std::vector< VID_T > &vnum_list, const std::vector< std::vector< VID_T >> &gid_maps) |
+bool | GetOid (const VID_T &gid, OID_T &oid) const |
+bool | GetInternalOid (const VID_T &gid, internal_oid_t &oid) const |
+bool | GetOid (fid_t fid, const VID_T &lid, OID_T &oid) const |
+bool | GetInternalOid (fid_t fid, const VID_T &lid, internal_oid_t &oid) const |
+bool | GetGid (fid_t fid, const OID_T &oid, VID_T &gid) const |
+bool | GetGid (const OID_T &oid, VID_T &gid) const |
+bool | GetGidFromInternalOid (fid_t fid, const internal_oid_t &oid, VID_T &gid) const |
+bool | GetGidFromInternalOid (const internal_oid_t &oid, VID_T &gid) const |
+void | reset () |
+void | ExtendVertices (const CommSpec &comm_spec, std::vector< OID_T > &&local_vertices_to_add) |
+template<typename IOADAPTOR_T > | |
void | Serialize (const std::string &prefix, const CommSpec &comm_spec) |
+template<typename IOADAPTOR_T > | |
void | Deserialize (const std::string &prefix, const CommSpec &comm_spec) |
+VertexMap & | operator= (VertexMap &&other) |
+PartitionerType | partitioner_type () const |
+IdxerType | idxer_type () const |
+Private Member Functions | |
+template<typename IOADAPTOR > | |
void | serialize_impl (const std::string &path) |
+template<typename IOADAPTOR > | |
void | deserialize_impl (const std::string &path) |
+Private Attributes | |
+fid_t | fid_ |
+fid_t | fnum_ |
+IdxerType | idxer_type_ |
+size_t | total_vertex_size_ |
+std::vector< size_t > | inner_vertex_size_ |
+std::unique_ptr< IPartitioner< OID_T > > | partitioner_ |
+std::vector< std::unique_ptr< IdxerBase< OID_T, VID_T > > > | idxers_ |
+IdParser< VID_T > | id_parser_ |
+Friends | |
+template<typename _OID_T , typename _VID_T > | |
class | VertexMapBuilder |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VertexMapBuilder< OID_T, VID_T >, including all inherited members.
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Public Member Functions | |
+ | VertexMapBuilder (fid_t fid, fid_t fnum, std::unique_ptr< IPartitioner< OID_T >> &&partitioner, IdxerType idxer_type) |
+fid_t | get_fragment_id (const internal_oid_t &oid) const |
+void | add_vertex (const internal_oid_t &id) |
+void | finish (const CommSpec &comm_spec, VertexMap< OID_T, VID_T > &vertex_map) |
+Private Types | |
+using | internal_oid_t = typename InternalOID< OID_T >::type |
+Private Attributes | |
+fid_t | fid_ |
+fid_t | fnum_ |
+IdxerType | idxer_type_ |
+std::unique_ptr< IPartitioner< OID_T > > | partitioner_ |
+std::vector< std::unique_ptr< IdxerBuilderBase< OID_T, VID_T > > > | idxer_builders_ |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
This is the complete list of members for grape::VertexRange< T >, including all inherited members.
+begin() const (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
begin_ (defined in grape::VertexRange< T >) | grape::VertexRange< T > | private |
begin_value() const (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
Contain(const Vertex< T > &v) const (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
end() const (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
end_ (defined in grape::VertexRange< T >) | grape::VertexRange< T > | private |
end_value() const (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
IsSubsetOf(const VertexRange< T > &rhs) const (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
IsSubsetOf(const DualVertexRange< T > &rhs) const (defined in grape::VertexRange< T >) | grape::VertexRange< T > | |
operator<< (defined in grape::VertexRange< T >) | grape::VertexRange< T > | friend |
operator>> (defined in grape::VertexRange< T >) | grape::VertexRange< T > | friend |
OverlapWith(const VertexRange< T > &rhs) const (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
OverlapWith(const DualVertexRange< T > &rhs) const (defined in grape::VertexRange< T >) | grape::VertexRange< T > | |
SetRange(const T &begin, const T &end) (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
size() const (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
Swap(VertexRange &rhs) (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
to_string() const (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
vertex_t typedef (defined in grape::VertexRange< T >) | grape::VertexRange< T > | |
VertexRange() (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
VertexRange(const T &begin, const T &end) (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
VertexRange(const VertexRange &r) (defined in grape::VertexRange< T >) | grape::VertexRange< T > | inline |
+ 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 |
+bool | IsSubsetOf (const VertexRange< T > &rhs) const |
+bool | IsSubsetOf (const DualVertexRange< T > &rhs) const |
+bool | OverlapWith (const VertexRange< T > &rhs) const |
+bool | OverlapWith (const DualVertexRange< T > &rhs) const |
+std::string | to_string () 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_ |
+ParallelEngineSpec | pe_spec_ |
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 >, 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 > |
+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 | dev_vertex_map_t = cuda::DeviceVertexMap< VertexMap< OID_T, VID_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 > |
+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 | 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 > > |
![]() | |
+using | base_t = FragmentBase< OID_T, VDATA_T, EDATA_T > |
+using | vid_t = VID_T |
+using | vertex_t = Vertex< VID_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 |
+using | internal_id_t = typename InternalOID< OID_T >::type |
+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 |
+Public Member Functions | |
+void | Init (const CommSpec &comm_spec, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr, 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 CommSpec &comm_spec, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr, const std::string &prefix) |
void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf, const ParallelEngineSpec &engine_spec) |
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__ (int local_id) |
+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 |
![]() | |
+void | Init (const CommSpec &comm_spec, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr, std::vector< internal_vertex_t > &vertices, std::vector< edge_t > &edges) |
+void | ParallelInit (const CommSpec &comm_spec, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr, std::vector< internal_vertex_t > &vertices, std::vector< edge_t > &edges, int concurrency) |
+void | Serialize (const std::string &prefix) |
+void | Deserialize (const CommSpec &comm_spec, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr, const std::string &prefix) |
void | PrepareToRunApp (const CommSpec &comm_spec, PrepareConf conf, const ParallelEngineSpec &pe_spec) 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, fid_t fnum, bool directed) |
![]() | |
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... | |
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) 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... | |
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 |
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... | |
fid_t | GetFragId (const Vertex< VID_T > &u) const |
Get the ID of fragment the input vertex belongs to. More... | |
VID_T | GetInnerVerticesNum () const |
Returns the number of inner vertices in this fragment. More... | |
+void | initMirrorInfo (const CommSpec &comm_spec) |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
![]() | |
+VertexMap< OID_T, VID_T > & | GetVertexMap () |
+const VertexMap< OID_T, VID_T > & | GetVertexMap () const |
const vertices_t & | Vertices () const |
Get all vertices referenced to this fragment. More... | |
size_t | GetVerticesNum () const override |
Returns the number of vertices in this fragment. More... | |
size_t | GetTotalVerticesNum () const override |
Returns the number of vertices in the entire graph. 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... | |
+internal_id_t | GetInternalId (const Vertex< VID_T > &v) const |
+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... | |
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 |
Convert from global id to a vertex handle. More... | |
vid_t | Vertex2Gid (const vertex_t &v) const |
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... | |
![]() | |
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... | |
+Static Public Attributes | |
+static constexpr grape::LoadStrategy | load_strategy = _load_strategy |
![]() | |
+static constexpr LoadStrategy | load_strategy |
![]() | |
+static constexpr FragmentType | fragment_type = FragmentType::kEdgeCut |
+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 vertices_t &vertex_range, std::vector< Edge< VID_T, EDATA_T >> &edges, LoadStrategy load_strategy, int concurrency=1) |
+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 |
![]() | |
+void | init (fid_t fid, bool directed, std::unique_ptr< VertexMap< OID_T, VID_T >> &&vm_ptr) |
+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, fid_t fnum, 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_ |
+bool | directed_ |
+fid_t | fid_ |
+fid_t | fnum_ |
![]() | |
+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_ |
![]() | |
+VID_T | ivnum_ |
+inner_vertices_t | inner_vertices_ |
+outer_vertices_t | outer_vertices_ |
+vertices_t | vertices_ |
+std::vector< sub_vertices_t > | outer_vertices_of_frag_ |
+std::vector< mirror_vertices_t > | mirrors_of_frag_ |
+std::unique_ptr< VertexMap< OID_T, VID_T > > | vm_ptr_ |
+IdParser< VID_T > | id_parser_ |
![]() | |
+fid_t | fid_ |
+fid_t | fnum_ |
+bool | directed_ |
+Additional Inherited Members | |
![]() | |
+static std::string | type_info () |
![]() | |
+using | vertices_t = typename TRAITS_T::vertices_t |
+
|
+ +inlinevirtual | +
For some kind of applications, specific data structures will be generated.
+strategy | |
need_split_edge |
Implements grape::FragmentBase< OID_T, VDATA_T, EDATA_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> | |
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
+ |
+
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Directories | |
directory | cuda |
+ libgrape-lite
+
+ A C++ library for parallel graph processing
+ |
+
+Directories |
+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
+ |
+
+ 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.
+