|
template<typename _T > |
using | retype = OrderedByIntegerMetric< Indexer, typename Container::template retype< _T >, BlockPeriod, BSP, _T, typename std::result_of< Indexer(_T)>::type, UseBarrier, UseMonotonic, UseDescending, Concurrent > |
|
template<bool _b> |
using | rethread = OrderedByIntegerMetric< Indexer, Container, BlockPeriod, BSP, T, Index, UseBarrier, UseMonotonic, UseDescending, _b > |
|
typedef T | value_type |
|
typedef Index | index_type |
|
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
struct galois::worklists::OrderedByIntegerMetric< Indexer, Container, BlockPeriod, BSP, T, Index, UseBarrier, UseMonotonic, UseDescending, Concurrent >
Approximate priority scheduling.
Indexer is a default-constructable class whose instances conform to R r = indexer(item)
where R is some type with a total order defined by operator<
and operator==
and item is an element from the Galois set iterator.
An example:
struct Item { int index; };
struct Indexer {
};
- Template Parameters
-
Indexer | Indexer class |
Container | Scheduler for each bucket |
BlockPeriod | Check for higher priority work every 2^BlockPeriod iterations |
BSP | Use back-scan prevention |
UseBarrier | Eliminate priority inversions by placing a barrier between priority levels |
UseMonotonic | Assume that an activity at priority p will not schedule work at priority p or any priority p1 where p1 < p. |
UseDescending | Use descending order instead |
- Examples:
- lonestar/tutorial_examples/SSSPPushSimple.cpp.
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<bool _b>
using galois::worklists::OrderedByIntegerMetric< Indexer, Container, BlockPeriod, BSP, T, Index, UseBarrier, UseMonotonic, UseDescending, Concurrent >::rethread = OrderedByIntegerMetric<Indexer, Container, BlockPeriod, BSP, T, Index, UseBarrier, UseMonotonic, UseDescending, _b> |
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<typename _T >
using galois::worklists::OrderedByIntegerMetric< Indexer, Container, BlockPeriod, BSP, T, Index, UseBarrier, UseMonotonic, UseDescending, Concurrent >::retype = OrderedByIntegerMetric< Indexer, typename Container::template retype<_T>, BlockPeriod, BSP, _T, typename std::result_of<Indexer(_T)>::type, UseBarrier, UseMonotonic, UseDescending, Concurrent> |
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<bool Barrier = UseBarrier>
auto galois::worklists::OrderedByIntegerMetric< Indexer, Container, BlockPeriod, BSP, T, Index, UseBarrier, UseMonotonic, UseDescending, Concurrent >::empty |
( |
void |
| ) |
-> typename std::enable_if<Barrier, bool>::type |
|
inline |
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<typename Iter >
void galois::worklists::OrderedByIntegerMetric< Indexer, Container, BlockPeriod, BSP, T, Index, UseBarrier, UseMonotonic, UseDescending, Concurrent >::push |
( |
Iter |
b, |
|
|
Iter |
e |
|
) |
| |
|
inline |
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>
template<typename RangeTy >
template<class Indexer = DummyIndexer<int>, typename Container = PerSocketChunkFIFO<>, unsigned BlockPeriod = 0, bool BSP = true, typename T = int, typename Index = int, bool UseBarrier = false, bool UseMonotonic = false, bool UseDescending = false, bool Concurrent = true>