|
| 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>