Main Galois namespace. More...
Namespaces | |
namespace | AtomicImpl |
namespace | Graph |
Parallel graph data structures. | |
namespace | GraphChi |
Implementation of GraphChi DSL in Galois. | |
namespace | GraphLab |
Implementation of GraphLab v2/PowerGraph DSL in Galois. | |
namespace | HIDDEN |
namespace | Ligra |
Implementation of Ligra DSL in Galois. | |
namespace | LigraGraphChi |
Implementation of combination of Ligra and GraphChi DSL in Galois. | |
namespace | ParallelSTL |
Parallel versions of STL library algorithms. | |
namespace | Runtime |
Internal Galois functionality - Use at your own risk. | |
namespace | TwoLevelIteratorImpl |
namespace | WorkList |
Scheduling policies for Galois iterators. | |
Classes | |
class | GReducible |
GReducible stores per thread values of a variable of type T. More... | |
struct | gmax |
Operator form of max. More... | |
struct | gmin |
Operator form of min. More... | |
struct | ReduceAssignWrap |
Turns binary functions over values into functions over references. More... | |
struct | ReduceVectorWrap |
Turns binary functions over item references into functions over vectors of items. More... | |
struct | ReduceMapWrap |
Turns binary functions over item (value) references into functions over maps of items. More... | |
struct | ReduceCollectionWrap |
Turns functions over elements of a range into functions over collections. More... | |
class | GSimpleReducible |
Simplification of GReducible where BinFunc calculates results by value, i.e., BinFunc conforms to:. More... | |
class | GAccumulator |
Accumulator for T where accumulation is sum. More... | |
class | GCollectionAccumulator |
General accumulator for collections following STL interface where accumulate means collection union. More... | |
class | GSetAccumulator |
Accumulator for set where accumulation is union. More... | |
class | GVectorAccumulator |
Accumulator for vector where accumulation is concatenation. More... | |
class | GVectorElementAccumulator |
Accumulator for vector where a vector is treated as a map and accumulate does element-wise addition among all entries. More... | |
class | GMapElementAccumulator |
Accumulator for map where accumulate does element-wise addition among all entries. More... | |
class | GReduceMax |
Accumulator for T where accumulation is max. More... | |
class | GReduceMin |
Accumulator for T where accumulation is min. More... | |
class | GAtomic |
An atomic wrapper that provides sensible atomic behavior for most primative data types. More... | |
class | GAtomicPadded |
Cache-line padded version of GAtomic. More... | |
class | InsertBag |
Bag for only concurrent insertions. More... | |
class | GChecked |
Conflict-checking wrapper for any type. More... | |
class | GChecked< void > |
class | FixedSizeBag |
Unordered collection of bounded size. More... | |
class | FixedSizeRing |
Ordered collection of bounded size. More... | |
class | flat_map |
Simple map data structure, based off a single array. More... | |
struct | loopname |
Specify name to appear in statistics. More... | |
struct | do_all_steal |
Specify whether link do_all()} loops should perform work-stealing. More... | |
struct | wl_tag |
struct | wl |
Specify worklist to use. More... | |
class | gdeque |
Like std::deque but use Galois memory management functionality. More... | |
class | GraphNodeBag |
Stores graph nodes to execute for Ligra executor. More... | |
class | GraphNodeBagPair |
Stores graph nodes to execute for Ligra executor. More... | |
class | gslist |
Singly linked list. More... | |
class | LargeArray |
Large array of objects with proper specialization for void type and supporting various allocation and construction policies. More... | |
class | LargeArray< void > |
Void specialization. More... | |
class | LazyArray |
This is a container that encapsulates space for a constant size array. More... | |
class | StrictObject |
Single object with specialization for void type. More... | |
struct | StrictObject< void > |
class | LazyObject |
Single (uninitialized) object with specialization for void type. More... | |
struct | LazyObject< void > |
struct | GFixedAllocator |
Scalable fixed-sized allocator for T that conforms to STL allocator interface but does not support variable sized allocations. More... | |
struct | NoDerefIterator |
Modify an iterator so that *it == it. More... | |
class | optional |
Galois version of boost::optional . More... | |
class | ThreadSafeOrderedSet |
Thread-safe ordered set. More... | |
class | MinHeap |
class | ThreadSafeMinHeap |
Thread-safe min heap. More... | |
struct | SparseBitVector |
Concurrent version of sparse bit vector. More... | |
class | Statistic |
Basic per-thread statistics counter. More... | |
class | StatManager |
Controls lifetime of stats. More... | |
struct | start_now_t |
Flag type for StatTimer. More... | |
class | StatTimer |
Provides statistic interface around timer. More... | |
class | Timer |
A simple timer. More... | |
class | TimeAccumulator |
A multi-start time accumulator. More... | |
class | TwoLevelIterBase |
Common functionality of TwoLevelIterators. More... | |
class | TwoLevelFwdIter |
Two-Level forward iterator. More... | |
class | TwoLevelBiDirIter |
Two-Level bidirectional iterator. More... | |
class | TwoLevelRandIter |
Two-Level random access iterator. More... | |
struct | ChooseTwoLevelIterator |
Type function to select appropriate two-level iterator. More... | |
struct | ChooseStlTwoLevelIterator |
Type function to select appropriate two-level iterator. More... | |
class | TwoLevelIteratorA |
Alternate implementation of ChooseTwoLevelIterator. More... | |
struct | GetBegin |
Helper functor, returns t.end() . More... | |
struct | GetEnd |
Helper functor, returns t.end() . More... | |
struct | has_deterministic_parallel_break |
Indicates the operator has a member function that allows a Galois::for_each loop to be exited deterministically. More... | |
struct | has_deterministic_id |
Indicates the operator has a member function that optimizes the generation of unique ids for active elements. More... | |
struct | has_deterministic_local_state |
Indicates the operator has a member type that encapsulates state that is passed between the suspension and resumpsion of an operator during deterministic scheduling. More... | |
struct | needs_parallel_break |
Indicates the operator may request the parallel loop to be suspended and a given function run in serial. More... | |
struct | does_not_need_push |
Indicates the operator does not generate new work and push it on the worklist. More... | |
struct | needs_per_iter_alloc |
Indicates the operator may request the access to a per-iteration allocator. More... | |
struct | does_not_need_stats |
Indicates the operator doesn't need its execution stats recorded. More... | |
struct | does_not_need_aborts |
Indicates the operator doesn't need abort support. More... | |
struct | has_fixed_neighborhood |
Indicates that the neighborhood set does not change through out i.e. More... | |
struct | has_known_trivial_constructor |
Temporary type trait for pre-C++11 compilers, which don't support exact std::is_trivially_constructible. More... | |
class | UnionFindNode |
Intrusive union-find implementation. More... | |
class | UserContext |
This is the object passed to the user's parallel loop. More... | |
Typedefs | |
typedef Galois::Runtime::MM::SimpleBumpPtrWithMallocFallback < Galois::Runtime::MM::FreeListHeap < Galois::Runtime::MM::SystemBaseAlloc > > | IterAllocBaseTy |
Base allocator for per-iteration allocator. | |
typedef Galois::Runtime::MM::ExternRefGaloisAllocator < char, IterAllocBaseTy > | PerIterAllocTy |
Per-iteration allocator that conforms to STL allocator interface. | |
Enumerations | |
enum | MethodFlag { NONE = 0, CHECK_CONFLICT = 1, SAVE_UNDO = 2, ALL = 3, WRITE = 4 } |
What should the runtime do when executing a method. More... | |
Functions | |
static uint64_t | convert_le64 (uint64_t x) |
static uint32_t | convert_le32 (uint32_t x) |
template<typename _Key , typename _Tp , typename _Compare , typename _Alloc > | |
bool | operator== (const flat_map< _Key, _Tp, _Compare, _Alloc > &__x, const flat_map< _Key, _Tp, _Compare, _Alloc > &__y) |
template<typename _Key , typename _Tp , typename _Compare , typename _Alloc > | |
bool | operator< (const flat_map< _Key, _Tp, _Compare, _Alloc > &__x, const flat_map< _Key, _Tp, _Compare, _Alloc > &__y) |
template<typename _Key , typename _Tp , typename _Compare , typename _Alloc > | |
bool | operator!= (const flat_map< _Key, _Tp, _Compare, _Alloc > &__x, const flat_map< _Key, _Tp, _Compare, _Alloc > &__y) |
Based on operator==. | |
template<typename _Key , typename _Tp , typename _Compare , typename _Alloc > | |
bool | operator> (const flat_map< _Key, _Tp, _Compare, _Alloc > &__x, const flat_map< _Key, _Tp, _Compare, _Alloc > &__y) |
Based on operator<. | |
template<typename _Key , typename _Tp , typename _Compare , typename _Alloc > | |
bool | operator<= (const flat_map< _Key, _Tp, _Compare, _Alloc > &__x, const flat_map< _Key, _Tp, _Compare, _Alloc > &__y) |
Based on operator<. | |
template<typename _Key , typename _Tp , typename _Compare , typename _Alloc > | |
bool | operator>= (const flat_map< _Key, _Tp, _Compare, _Alloc > &__x, const flat_map< _Key, _Tp, _Compare, _Alloc > &__y) |
Based on operator<. | |
template<typename IterTy , class Distance > | |
IterTy | safe_advance_dispatch (IterTy b, IterTy e, Distance n, std::random_access_iterator_tag) |
template<typename IterTy , class Distance > | |
IterTy | safe_advance_dispatch (IterTy b, IterTy e, Distance n, std::input_iterator_tag) |
template<typename IterTy , class Distance > | |
IterTy | safe_advance (IterTy b, IterTy e, Distance n) |
Like std::advance but returns end if end is closer than the advance amount. | |
template<typename IterTy > | |
IterTy | split_range (IterTy b, IterTy e) |
Finds the midpoint of a range. | |
template<typename IterTy > | |
std::pair< IterTy, IterTy > | block_range (IterTy b, IterTy e, unsigned id, unsigned num) |
Returns a continuous block from the range based on the number of divisions and the id of the block requested. | |
template<class InputIterator > | |
void | uninitialized_destroy (InputIterator first, InputIterator last) |
Destroy a range. | |
MethodFlag | operator& (MethodFlag x, MethodFlag y) |
Bitwise & for method flags. | |
MethodFlag | operator| (MethodFlag x, MethodFlag y) |
Bitwise | for method flags. | |
template<typename Iterator > | |
NoDerefIterator< Iterator > | make_no_deref_iterator (Iterator it) |
Convenience function to create NoDerefIterator. | |
template<typename IterTy , typename Function1Ty , typename Function2Ty > | |
static void | for_each_det (IterTy b, IterTy e, Function1Ty prefix, Function2Ty fn, const char *loopname=0) |
Deterministic execution with prefix operator. | |
template<typename T , typename Function1Ty , typename Function2Ty > | |
static void | for_each_det (T i, Function1Ty prefix, Function2Ty fn, const char *loopname=0) |
Deterministic execution with prefix operator. | |
template<typename IterTy , typename FunctionTy > | |
static void | for_each_det (IterTy b, IterTy e, FunctionTy fn, const char *loopname=0) |
Deterministic execution with single operator. | |
template<typename T , typename FunctionTy > | |
static void | for_each_det (T i, FunctionTy fn, const char *loopname=0) |
Deterministic execution with single operator. | |
unsigned int | setActiveThreads (unsigned int num) |
Sets the number of threads to use when running any Galois iterator. | |
unsigned int | getActiveThreads () |
Returns the number of threads in use. | |
template<typename Outer , typename InnerBegFn , typename InnerEndFn > | |
ChooseTwoLevelIterator< Outer, typename InnerBegFn::result_type, InnerBegFn, InnerEndFn >::type | make_two_level_begin (Outer beg, Outer end, InnerBegFn innerBegFn, InnerEndFn innerEndFn) |
Creates two level iterator. | |
template<typename Outer , typename InnerBegFn , typename InnerEndFn > | |
ChooseTwoLevelIterator< Outer, typename InnerBegFn::result_type, InnerBegFn, InnerEndFn >::type | make_two_level_end (Outer beg, Outer end, InnerBegFn innerBegFn, InnerEndFn innerEndFn) |
Creates two level iterator. | |
template<typename Outer > | |
TwoLevelIteratorImpl::StlInnerIsIterator < Outer >::type | stl_two_level_begin (Outer beg, Outer end) |
template<typename Outer > | |
TwoLevelIteratorImpl::StlInnerIsIterator < Outer >::type | stl_two_level_end (Outer beg, Outer end) |
template<typename Outer > | |
TwoLevelIteratorImpl::StlInnerIsConstIterator < Outer >::type | stl_two_level_cbegin (Outer beg, Outer end) |
template<typename Outer > | |
TwoLevelIteratorImpl::StlInnerIsConstIterator < Outer >::type | stl_two_level_cend (Outer beg, Outer end) |
template<typename Outer > | |
TwoLevelIteratorImpl::StlInnerIsRvrsIterator < Outer >::type | stl_two_level_rbegin (Outer beg, Outer end) |
template<typename Outer > | |
TwoLevelIteratorImpl::StlInnerIsRvrsIterator < Outer >::type | stl_two_level_rend (Outer beg, Outer end) |
template<typename Outer > | |
TwoLevelIteratorImpl::StlInnerIsConstRvrsIterator < Outer >::type | stl_two_level_crbegin (Outer beg, Outer end) |
template<typename Outer > | |
TwoLevelIteratorImpl::StlInnerIsConstRvrsIterator < Outer >::type | stl_two_level_crend (Outer beg, Outer end) |
template<class CategoryOrTraversal , class OuterIter , class InnerIter , class InnerBeginFn , class InnerEndFn > | |
std::pair< TwoLevelIteratorA < OuterIter, InnerIter, CategoryOrTraversal, InnerBeginFn, InnerEndFn > , TwoLevelIteratorA< OuterIter, InnerIter, CategoryOrTraversal, InnerBeginFn, InnerEndFn > > | make_two_level_iterator (OuterIter outer_begin, OuterIter outer_end) |
GALOIS_HAS_MEM_FUNC (galoisDeterministicParallelBreak, tf_deterministic_parallel_break) | |
GALOIS_HAS_MEM_FUNC_ANY (galoisDeterministicId, tf_deterministic_id) | |
GALOIS_HAS_MEM_TYPE (GaloisDeterministicLocalState, tf_deterministic_local_state) | |
template<typename IterTy , typename FunctionTy , typename... Args> | |
void | for_each (IterTy b, IterTy e, FunctionTy fn, Args...args) |
Galois unordered set iterator. | |
template<typename ItemTy , typename FunctionTy , typename... Args> | |
void | for_each (ItemTy i, FunctionTy fn, Args...args) |
Galois unordered set iterator. | |
template<typename ConTy , typename FunctionTy , typename... Args> | |
void | for_each_local (ConTy &c, FunctionTy fn, Args...args) |
Galois unordered set iterator with locality-aware container. | |
template<typename IterTy , typename FunctionTy , typename... Args> | |
FunctionTy | do_all (const IterTy &b, const IterTy &e, FunctionTy fn, Args...args) |
Standard do-all loop. | |
template<typename ConTy , typename FunctionTy , typename... Args> | |
FunctionTy | do_all_local (ConTy &c, FunctionTy fn, Args...args) |
Standard do-all loop with locality-aware container. | |
template<typename FunctionTy > | |
static void | on_each (FunctionTy fn, const char *loopname=0) |
Low-level parallel loop. | |
static void | preAlloc (int num) |
Preallocates pages on each thread. | |
static void | reportPageAlloc (const char *label) |
Reports number of pages allocated by the Galois system so far. | |
template<typename Iter , typename Cmp , typename NhFunc , typename OpFunc > | |
void | for_each_ordered (Iter b, Iter e, const Cmp &cmp, const NhFunc &nhFunc, const OpFunc &fn, const char *loopname=0) |
Galois ordered set iterator for stable source algorithms. | |
template<typename Iter , typename Cmp , typename NhFunc , typename OpFunc , typename StableTest > | |
void | for_each_ordered (Iter b, Iter e, const Cmp &cmp, const NhFunc &nhFunc, const OpFunc &fn, const StableTest &stabilityTest, const char *loopname=0) |
Galois ordered set iterator for unstable source algorithms. | |
Variables | |
constexpr start_now_t | start_now = start_now_t() |
Main Galois namespace.
All the core Galois functionality will be found in here.
typedef Galois::Runtime::MM::SimpleBumpPtrWithMallocFallback<Galois::Runtime::MM::FreeListHeap<Galois::Runtime::MM::SystemBaseAlloc> > Galois::IterAllocBaseTy |
Base allocator for per-iteration allocator.
Per-iteration allocator that conforms to STL allocator interface.
enum Galois::MethodFlag |
What should the runtime do when executing a method.
Various methods take an optional parameter indicating what actions the runtime should do on the user's behalf: (1) checking for conflicts, and/or (2) saving undo information. By default, both are performed (ALL).
std::pair<IterTy, IterTy> Galois::block_range | ( | IterTy | b, | |
IterTy | e, | |||
unsigned | id, | |||
unsigned | num | |||
) | [inline] |
Returns a continuous block from the range based on the number of divisions and the id of the block requested.
static uint32_t Galois::convert_le32 | ( | uint32_t | x | ) | [inline, static] |
static uint64_t Galois::convert_le64 | ( | uint64_t | x | ) | [inline, static] |
FunctionTy Galois::do_all | ( | const IterTy & | b, | |
const IterTy & | e, | |||
FunctionTy | fn, | |||
Args... | args | |||
) | [inline] |
Standard do-all loop.
All iterations should be independent. Operator should conform to fn(item)
where item is a value from the iteration range.
b | beginning of range of items | |
e | end of range of items | |
fn | operator | |
args | optional arguments to loop |
FunctionTy Galois::do_all_local | ( | ConTy & | c, | |
FunctionTy | fn, | |||
Args... | args | |||
) | [inline] |
Standard do-all loop with locality-aware container.
All iterations should be independent. Operator should conform to fn(item)
where item is an element of c.
c | locality-aware container | |
fn | operator | |
args | optional arguments to loop |
void Galois::for_each | ( | ItemTy | i, | |
FunctionTy | fn, | |||
Args... | args | |||
) | [inline] |
Galois unordered set iterator.
Operator should conform to fn(item, UserContext<T>&)
where item is i and T is the type of item.
WLTy | Worklist policy Galois::WorkList |
i | initial item | |
fn | operator | |
args | optional arguments to loop |
void Galois::for_each | ( | IterTy | b, | |
IterTy | e, | |||
FunctionTy | fn, | |||
Args... | args | |||
) | [inline] |
Galois unordered set iterator.
Operator should conform to fn(item, UserContext<T>&)
where item is a value from the iteration range and T is the type of item.
WLTy | Worklist policy { |
b | begining of range of initial items | |
e | end of range of initial items | |
fn | operator | |
args | optional arguments to loop, e.g., { |
static void Galois::for_each_det | ( | T | i, | |
FunctionTy | fn, | |||
const char * | loopname = 0 | |||
) | [inline, static] |
Deterministic execution with single operator.
The operator fn is used both for the prefix computation and for the continuation of computation, c.f., the prefix operator version which uses two different functions. The operator can distinguish between the two uses by querying UserContext.getLocalState().
i | initial item | |
fn | operator | |
loopname | string to identify loop in statistics output |
static void Galois::for_each_det | ( | IterTy | b, | |
IterTy | e, | |||
FunctionTy | fn, | |||
const char * | loopname = 0 | |||
) | [inline, static] |
Deterministic execution with single operator.
The operator fn is used both for the prefix computation and for the continuation of computation, c.f., the prefix operator version which uses two different functions. The operator can distinguish between the two uses by querying UserContext.getLocalState().
b | begining of range of initial items | |
e | end of range of initial items | |
fn | operator | |
loopname | string to identify loop in statistics output |
static void Galois::for_each_det | ( | T | i, | |
Function1Ty | prefix, | |||
Function2Ty | fn, | |||
const char * | loopname = 0 | |||
) | [inline, static] |
Deterministic execution with prefix operator.
The prefix of the operator should be exactly the same as the operator but with execution returning at the failsafe point. The operator should conform to a standard Galois unordered set operator for_each().
i | initial item | |
prefix | prefix of operator | |
fn | operator | |
loopname | string to identify loop in statistics output |
static void Galois::for_each_det | ( | IterTy | b, | |
IterTy | e, | |||
Function1Ty | prefix, | |||
Function2Ty | fn, | |||
const char * | loopname = 0 | |||
) | [inline, static] |
Deterministic execution with prefix operator.
The prefix of the operator should be exactly the same as the operator but with execution returning at the failsafe point. The operator should conform to a standard Galois unordered set operator for_each().
b | begining of range of initial items | |
e | end of range of initial items | |
prefix | prefix of operator | |
fn | operator | |
loopname | string to identify loop in statistics output |
void Galois::for_each_local | ( | ConTy & | c, | |
FunctionTy | fn, | |||
Args... | args | |||
) | [inline] |
Galois unordered set iterator with locality-aware container.
Operator should conform to fn(item, UserContext<T>&)
where item is an element of c and T is the type of item.
WLTy | Worklist policy Galois::WorkList |
c | locality-aware container | |
fn | operator | |
args | optional arguments to loop |
void Galois::for_each_ordered | ( | Iter | b, | |
Iter | e, | |||
const Cmp & | cmp, | |||
const NhFunc & | nhFunc, | |||
const OpFunc & | fn, | |||
const StableTest & | stabilityTest, | |||
const char * | loopname = 0 | |||
) | [inline] |
Galois ordered set iterator for unstable source algorithms.
Operator should conform to fn(item, UserContext<T>&)
where item is a value from the iteration range and T is the type of item. Comparison function should conform to bool r = cmp(item1, item2)
where r is true if item1 is less than or equal to item2. Neighborhood function should conform to nhFunc(item)
and should visit every element in the neighborhood of active element item. The stability test should conform to bool r = stabilityTest(item)
where r is true if item is a stable source.
b | begining of range of initial items | |
e | end of range of initial items | |
cmp | comparison function | |
nhFunc | neighborhood function | |
fn | operator | |
stabilityTest | stability test | |
loopname | string to identity loop in statistics output |
void Galois::for_each_ordered | ( | Iter | b, | |
Iter | e, | |||
const Cmp & | cmp, | |||
const NhFunc & | nhFunc, | |||
const OpFunc & | fn, | |||
const char * | loopname = 0 | |||
) | [inline] |
Galois ordered set iterator for stable source algorithms.
Operator should conform to fn(item, UserContext<T>&)
where item is a value from the iteration range and T is the type of item. Comparison function should conform to bool r = cmp(item1, item2)
where r is true if item1 is less than or equal to item2. Neighborhood function should conform to nhFunc(item)
and should visit every element in the neighborhood of active element item.
b | begining of range of initial items | |
e | end of range of initial items | |
cmp | comparison function | |
nhFunc | neighborhood function | |
fn | operator | |
loopname | string to identity loop in statistics output |
Galois::GALOIS_HAS_MEM_FUNC | ( | galoisDeterministicParallelBreak | , | |
tf_deterministic_parallel_break | ||||
) |
Galois::GALOIS_HAS_MEM_FUNC_ANY | ( | galoisDeterministicId | , | |
tf_deterministic_id | ||||
) |
Galois::GALOIS_HAS_MEM_TYPE | ( | GaloisDeterministicLocalState | , | |
tf_deterministic_local_state | ||||
) |
unsigned int Galois::getActiveThreads | ( | ) |
Returns the number of threads in use.
NoDerefIterator<Iterator> Galois::make_no_deref_iterator | ( | Iterator | it | ) | [inline] |
Convenience function to create NoDerefIterator.
ChooseTwoLevelIterator<Outer, typename InnerBegFn::result_type, InnerBegFn, InnerEndFn>::type Galois::make_two_level_begin | ( | Outer | beg, | |
Outer | end, | |||
InnerBegFn | innerBegFn, | |||
InnerEndFn | innerEndFn | |||
) | [inline] |
Creates two level iterator.
ChooseTwoLevelIterator<Outer, typename InnerBegFn::result_type, InnerBegFn, InnerEndFn>::type Galois::make_two_level_end | ( | Outer | beg, | |
Outer | end, | |||
InnerBegFn | innerBegFn, | |||
InnerEndFn | innerEndFn | |||
) | [inline] |
Creates two level iterator.
std::pair< TwoLevelIteratorA<OuterIter, InnerIter, CategoryOrTraversal, InnerBeginFn, InnerEndFn>, TwoLevelIteratorA<OuterIter, InnerIter, CategoryOrTraversal, InnerBeginFn, InnerEndFn> > Galois::make_two_level_iterator | ( | OuterIter | outer_begin, | |
OuterIter | outer_end | |||
) | [inline] |
static void Galois::on_each | ( | FunctionTy | fn, | |
const char * | loopname = 0 | |||
) | [inline, static] |
Low-level parallel loop.
Operator is applied for each running thread. Operator should confirm to fn(tid, numThreads)
where tid is the id of the current thread and numThreads is the total number of running threads.
fn | operator | |
loopname | string to identify loop in statistics output |
bool Galois::operator!= | ( | const flat_map< _Key, _Tp, _Compare, _Alloc > & | __x, | |
const flat_map< _Key, _Tp, _Compare, _Alloc > & | __y | |||
) | [inline] |
Based on operator==.
MethodFlag Galois::operator& | ( | MethodFlag | x, | |
MethodFlag | y | |||
) | [inline] |
Bitwise & for method flags.
bool Galois::operator< | ( | const flat_map< _Key, _Tp, _Compare, _Alloc > & | __x, | |
const flat_map< _Key, _Tp, _Compare, _Alloc > & | __y | |||
) | [inline] |
bool Galois::operator<= | ( | const flat_map< _Key, _Tp, _Compare, _Alloc > & | __x, | |
const flat_map< _Key, _Tp, _Compare, _Alloc > & | __y | |||
) | [inline] |
Based on operator<.
bool Galois::operator== | ( | const flat_map< _Key, _Tp, _Compare, _Alloc > & | __x, | |
const flat_map< _Key, _Tp, _Compare, _Alloc > & | __y | |||
) | [inline] |
bool Galois::operator> | ( | const flat_map< _Key, _Tp, _Compare, _Alloc > & | __x, | |
const flat_map< _Key, _Tp, _Compare, _Alloc > & | __y | |||
) | [inline] |
Based on operator<.
bool Galois::operator>= | ( | const flat_map< _Key, _Tp, _Compare, _Alloc > & | __x, | |
const flat_map< _Key, _Tp, _Compare, _Alloc > & | __y | |||
) | [inline] |
Based on operator<.
MethodFlag Galois::operator| | ( | MethodFlag | x, | |
MethodFlag | y | |||
) | [inline] |
Bitwise | for method flags.
static void Galois::preAlloc | ( | int | num | ) | [inline, static] |
Preallocates pages on each thread.
num | number of pages to allocate of size Galois::Runtime::MM::pageSize |
static void Galois::reportPageAlloc | ( | const char * | label | ) | [inline, static] |
Reports number of pages allocated by the Galois system so far.
The value is printing using the statistics infrastructure.
label | Label to associated with report at this program point |
IterTy Galois::safe_advance | ( | IterTy | b, | |
IterTy | e, | |||
Distance | n | |||
) | [inline] |
Like std::advance but returns end if end is closer than the advance amount.
IterTy Galois::safe_advance_dispatch | ( | IterTy | b, | |
IterTy | e, | |||
Distance | n, | |||
std::input_iterator_tag | ||||
) | [inline] |
IterTy Galois::safe_advance_dispatch | ( | IterTy | b, | |
IterTy | e, | |||
Distance | n, | |||
std::random_access_iterator_tag | ||||
) | [inline] |
unsigned int Galois::setActiveThreads | ( | unsigned int | num | ) |
Sets the number of threads to use when running any Galois iterator.
Returns the actual value of threads used, which could be less than the requested value. System behavior is undefined if this function is called during parallel execution or after the first parallel execution.
IterTy Galois::split_range | ( | IterTy | b, | |
IterTy | e | |||
) | [inline] |
Finds the midpoint of a range.
The first half is always be bigger than the second half if the range has an odd length.
TwoLevelIteratorImpl::StlInnerIsIterator<Outer>::type Galois::stl_two_level_begin | ( | Outer | beg, | |
Outer | end | |||
) | [inline] |
TwoLevelIteratorImpl::StlInnerIsConstIterator<Outer>::type Galois::stl_two_level_cbegin | ( | Outer | beg, | |
Outer | end | |||
) | [inline] |
TwoLevelIteratorImpl::StlInnerIsConstIterator<Outer>::type Galois::stl_two_level_cend | ( | Outer | beg, | |
Outer | end | |||
) | [inline] |
TwoLevelIteratorImpl::StlInnerIsConstRvrsIterator<Outer>::type Galois::stl_two_level_crbegin | ( | Outer | beg, | |
Outer | end | |||
) | [inline] |
TwoLevelIteratorImpl::StlInnerIsConstRvrsIterator<Outer>::type Galois::stl_two_level_crend | ( | Outer | beg, | |
Outer | end | |||
) | [inline] |
TwoLevelIteratorImpl::StlInnerIsIterator<Outer>::type Galois::stl_two_level_end | ( | Outer | beg, | |
Outer | end | |||
) | [inline] |
TwoLevelIteratorImpl::StlInnerIsRvrsIterator<Outer>::type Galois::stl_two_level_rbegin | ( | Outer | beg, | |
Outer | end | |||
) | [inline] |
TwoLevelIteratorImpl::StlInnerIsRvrsIterator<Outer>::type Galois::stl_two_level_rend | ( | Outer | beg, | |
Outer | end | |||
) | [inline] |
void Galois::uninitialized_destroy | ( | InputIterator | first, | |
InputIterator | last | |||
) | [inline] |
Destroy a range.
constexpr start_now_t Galois::start_now = start_now_t() |