@@ -43,15 +43,14 @@ limitations under the License.
4343using namespace osp ;
4444
4545
46- BOOST_AUTO_TEST_CASE (test_dag_vector_adapter ) {
46+ BOOST_AUTO_TEST_CASE (test_dag_vector_adapter_edge ) {
4747
4848 std::vector<std::vector<int >> out_neighbors{{1 , 2 , 3 }, {4 , 6 }, {4 , 5 }, {7 }, {7 }, {}, {}, {}};
4949
5050 std::vector<std::vector<int >> in_neighbors{{}, {0 }, {0 }, {0 }, {1 , 2 }, {2 }, {1 }, {4 , 3 }};
5151
5252 using v_impl = cdag_vertex_impl<unsigned , int , int , int , unsigned >;
5353 using graph_t = dag_vector_adapter<v_impl,int >;
54- // using graph_constr_t = computational_dag_vector_impl<v_impl>;
5554 using graph_constr_t = computational_dag_edge_idx_vector_impl<v_impl, cdag_edge_impl_int>;
5655 using CoarseGraphType = Compact_Sparse_Graph<true , true , true , true , true , vertex_idx_t <graph_t >, std::size_t , v_workw_t <graph_t >, v_workw_t <graph_t >, v_workw_t <graph_t >, v_type_t <graph_t >>;
5756
@@ -83,7 +82,69 @@ BOOST_AUTO_TEST_CASE(test_dag_vector_adapter) {
8382 ComboScheduler<graph_constr_t > children_kl (children, kl);
8483
8584 GreedyMetaScheduler<graph_constr_t > scheduler;
86- // scheduler.addScheduler(growlocal_kl);
85+ scheduler.addScheduler (locking_kl);
86+ scheduler.addScheduler (children_kl);
87+ scheduler.addSerialScheduler ();
88+
89+ IsomorphicSubgraphScheduler<graph_t , graph_constr_t > iso_scheduler (scheduler);
90+
91+ auto partition = iso_scheduler.compute_partition (instance);
92+
93+ graph_constr_t corase_graph;
94+ coarser_util::construct_coarse_dag (instance.getComputationalDag (), corase_graph, partition);
95+ bool acyc = is_acyclic (corase_graph);
96+ BOOST_CHECK (acyc);
97+
98+ SarkarMul<graph_t , CoarseGraphType> coarser;
99+
100+ CoarseGraphType coarse_dag;
101+ std::vector<unsigned > reverse_vertex_map;
102+ coarser.coarsenDag (graph, coarse_dag, reverse_vertex_map);
103+
104+ acyc = is_acyclic (coarse_dag);
105+ BOOST_CHECK (acyc);
106+ }
107+
108+
109+ BOOST_AUTO_TEST_CASE (test_dag_vector_adapter) {
110+
111+ std::vector<std::vector<int >> out_neighbors{{1 , 2 , 3 }, {4 , 6 }, {4 , 5 }, {7 }, {7 }, {}, {}, {}};
112+
113+ std::vector<std::vector<int >> in_neighbors{{}, {0 }, {0 }, {0 }, {1 , 2 }, {2 }, {1 }, {4 , 3 }};
114+
115+ using v_impl = cdag_vertex_impl<unsigned , int , int , int , unsigned >;
116+ using graph_t = dag_vector_adapter<v_impl,int >;
117+ using graph_constr_t = computational_dag_vector_impl<v_impl>;
118+ using CoarseGraphType = Compact_Sparse_Graph<true , true , true , true , true , vertex_idx_t <graph_t >, std::size_t , v_workw_t <graph_t >, v_workw_t <graph_t >, v_workw_t <graph_t >, v_type_t <graph_t >>;
119+
120+ graph_t graph (out_neighbors, in_neighbors);
121+
122+ for (auto v : graph.vertices ()) {
123+ graph.set_vertex_work_weight (v, 10 );
124+ }
125+
126+ BspInstance<graph_t > instance;
127+ instance.getComputationalDag () = graph;
128+
129+ instance.getArchitecture ().setProcessorsWithTypes ({0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 });
130+ instance.setDiagonalCompatibilityMatrix (2 );
131+ instance.setSynchronisationCosts (1000 );
132+ instance.setCommunicationCosts (1 );
133+
134+
135+
136+ // Set up the scheduler
137+ GrowLocalAutoCores<graph_constr_t > growlocal;
138+ BspLocking<graph_constr_t > locking;
139+ GreedyChildren<graph_constr_t > children;
140+ kl_total_lambda_comm_improver<graph_constr_t > kl (42 );
141+ kl.setSuperstepRemoveStrengthParameter (2.0 );
142+ kl.setTimeQualityParameter (5.0 );
143+ ComboScheduler<graph_constr_t > growlocal_kl (growlocal, kl);
144+ ComboScheduler<graph_constr_t > locking_kl (locking, kl);
145+ ComboScheduler<graph_constr_t > children_kl (children, kl);
146+
147+ GreedyMetaScheduler<graph_constr_t > scheduler;
87148 scheduler.addScheduler (locking_kl);
88149 scheduler.addScheduler (children_kl);
89150 scheduler.addSerialScheduler ();
0 commit comments