1818 */
1919
2020#include " galois/Galois.h"
21+ #include " galois/worklists/AdaptiveObim.h"
2122#include " galois/AtomicHelpers.h"
2223#include " galois/Reduction.h"
2324#include " galois/PriorityQueue.h"
@@ -59,6 +60,7 @@ enum Algo {
5960 deltaTile = 0 ,
6061 deltaStep,
6162 deltaStepBarrier,
63+ deltaStepAdaptive,
6264 serDeltaTile,
6365 serDelta,
6466 dijkstraTile,
@@ -69,15 +71,17 @@ enum Algo {
6971};
7072
7173const char * const ALGO_NAMES[] = {
72- " deltaTile" , " deltaStep" , " deltaStepBarrier" , " serDeltaTile" ,
73- " serDelta" , " dijkstraTile" , " dijkstra" , " topo" ,
74- " topoTile" , " Auto" };
74+ " deltaTile" , " deltaStep" , " deltaStepBarrier" ,
75+ " deltaStepAdaptive" , " serDeltaTile" , " serDelta" ,
76+ " dijkstraTile" , " dijkstra" , " topo" ,
77+ " topoTile" , " Auto" };
7578
7679static cll::opt<Algo> algo (
7780 " algo" , cll::desc(" Choose an algorithm (default value auto):" ),
7881 cll::values(clEnumVal(deltaTile, " deltaTile" ),
7982 clEnumVal(deltaStep, " deltaStep" ),
8083 clEnumVal(deltaStepBarrier, " deltaStepBarrier" ),
84+ clEnumVal(deltaStepAdaptive, " deltaStepAdaptive" ),
8185 clEnumVal(serDeltaTile, " serDeltaTile" ),
8286 clEnumVal(serDelta, " serDelta" ),
8387 clEnumVal(dijkstraTile, " dijkstraTile" ),
@@ -111,9 +115,9 @@ using TileRangeFn = SSSP::TileRangeFn;
111115namespace gwl = galois::worklists;
112116using PSchunk = gwl::PerSocketChunkFIFO<CHUNK_SIZE>;
113117using OBIM = gwl::OrderedByIntegerMetric<UpdateRequestIndexer, PSchunk>;
114- using OBIM_Barrier =
115- gwl::OrderedByIntegerMetric <UpdateRequestIndexer,
116- PSchunk> ::with_barrier<true >::type;
118+ using OBIM_Adaptive =
119+ gwl::AdaptiveOrderedByIntegerMetric <UpdateRequestIndexer, PSchunk>;
120+ using OBIM_Barrier = OBIM ::with_barrier<true >::type;
117121
118122template <typename T, typename OBIMTy = OBIM, typename P, typename R>
119123void deltaStepAlgo (Graph& graph, GNode source, const P& pushWrap,
@@ -450,6 +454,10 @@ int main(int argc, char** argv) {
450454 topoTileAlgo (graph, source);
451455 break ;
452456
457+ case deltaStepAdaptive:
458+ deltaStepAlgo<UpdateRequest, OBIM_Adaptive>(graph, source, ReqPushWrap (),
459+ OutEdgeRangeFn{graph});
460+
453461 case deltaStepBarrier:
454462 deltaStepAlgo<UpdateRequest, OBIM_Barrier>(graph, source, ReqPushWrap (),
455463 OutEdgeRangeFn{graph});
0 commit comments