Commit 0e85111d authored by tonynsyde's avatar tonynsyde

Distributed Graph and DistParmetisDistribution test

parent 544e4014
......@@ -131,6 +131,11 @@ echo -e "Installing requirements into: $i_dir "
## call the configure script
if [ x"$MPI_valid" == x"yes" ]; then
configure_options="$configure_options CXX=mpic++ "
fi
MPI_installed=0
METIS_installed=0
BOOST_installed=0
......
openfpm_io @ d5d69140
Subproject commit 136310cb5b8b776eb405f58d5721c879a8d013b5
Subproject commit d5d691407e392ca64094d1b2a6008b5ca33eefe9
openfpm_vcluster @ 104ee3d6
Subproject commit b3cffbf7e1dc64466fd38342d696da8b6d494acd
Subproject commit 104ee3d6f6992d8fad992f3405b5b2514a1cd25c
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
......@@ -224,19 +224,19 @@ else
minor=$(mpirun --version 2>&1 | grep mpirun | sed 's/.*\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\3/g')
if [ $major -gt 1 ]; then
echo -e "mpirun $major.$middle.$minor \033[92;1m SUCCESS \033[0m"
MPI_valid=yes
elif [ $major -lt 1 ]; then
echo -e "mpirun $major.$middle.$minor \033[91;5;1m FAILED \033[0m is too old, 1.8.1 at least required"
MPI_installation_required=yes
elif [ $middle -gt 8 ]; then
echo -e "mpirun $major.$middle.$minor \033[92;1m SUCCESS \033[0m"
MPI_valid=yes
elif [ $middle -lt 8 ]; then
echo -e "mpirun $major.$middle.$minor \033[91;5;1m FAILED \033[0m is too old, 1.8.1 at least required"
MPI_installation_required=yes
elif [ $minor -gt 0 ]; then
echo -e "mpirun $major.$middle.$minor \033[92;1m SUCCESS \033[0m"
MPI_valid=yes
else
echo -e "mpirun $major.$middle.$minor \033[91;5;1m FAILED \033[0m is too old, 1.8.1 at least required"
MPI_installation_required=yes
fi
fi
}
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
......@@ -131,12 +131,6 @@ private:
::Box<dim,T> bbox;
// Heap memory receiver
HeapMemory hp_recv;
// vector v_proc
openfpm::vector<size_t> v_proc;
// reference counter of the object in case is shared between object
long int ref_cnt;
......@@ -155,9 +149,6 @@ private:
// Receive counter
size_t recv_cnt;
// reference counter of the object in case is shared between object
long int ref_cnt;
/*! \brief Constructor, it decompose and distribute the sub-domains across the processors
*
* \param v_cl Virtual cluster, used internally for communications
......
......@@ -6,7 +6,7 @@
BOOST_AUTO_TEST_SUITE( CartDecomposition_test )
#define SUB_UNIT_FACTOR 64
#define SUB_UNIT_FACTOR 1024
void setComputationCosts(CartDecomposition<2, float> &dec, size_t n_v, Point<2, float> center, float radius, size_t weight_h, size_t weight_l)
{
......
......@@ -83,7 +83,7 @@ public:
* /param grid Grid
* /param dom Domain
*/
void init(grid_sm<dim, void> & grid, Box<dim, T> dom)
void createCartGraph(grid_sm<dim, void> & grid, Box<dim, T> dom)
{
//! Set grid and domain
gr = grid;
......@@ -175,7 +175,7 @@ public:
v_cl.sum(sum);
v_cl.execute();
unbalance = ((float) (max - min)) / (((float) sum) / v_cl.getProcessingUnits());
unbalance = ((float) (max - min)) / (float) (sum / v_cl.getProcessingUnits());
return unbalance * 100;
}
......@@ -186,7 +186,7 @@ public:
* \param pos vector that will contain x, y, z
*
*/
void getVertexPosition(size_t id, T (&pos)[dim])
void getSubSubDomainPosition(size_t id, T (&pos)[dim])
{
if (id >= sub_g.getNVertex())
std::cerr << "Position - Such vertex doesn't exist (id = " << id << ", " << "total size = " << sub_g.getNVertex() << ")\n";
......@@ -203,7 +203,7 @@ public:
* \param weight to give to the vertex
*
*/
inline void setVertexWeight(size_t id, size_t weight)
inline void setComputationCost(size_t id, size_t weight)
{
verticesGotWeights = true;
......@@ -325,13 +325,13 @@ public:
* \param id to attach to the filename
*
*/
void printCurrentDecomposition(int id)
void write(const std::string & file)
{
VTKWriter<DistGraph_CSR<nm_v, nm_e>, DIST_GRAPH> gv2(sub_g);
gv2.write("test_dist_graph_" + std::to_string(id) + ".vtk");
gv2.write(file);
}
const DistParMetisDistribution<dim,T> & operator=(const DistParMetisDistribution<dim,T> & dist)
const DistParMetisDistribution<dim, T> & operator=(const DistParMetisDistribution<dim, T> & dist)
{
v_cl = dist.v_cl;
gr = dist.gr;
......@@ -345,7 +345,7 @@ public:
return *this;
}
const DistParMetisDistribution<dim,T> & operator=(const DistParMetisDistribution<dim,T> && dist)
const DistParMetisDistribution<dim, T> & operator=(const DistParMetisDistribution<dim, T> && dist)
{
v_cl = dist.v_cl;
gr = dist.gr;
......@@ -358,6 +358,7 @@ public:
return *this;
}
};
}
;
#endif /* SRC_DECOMPOSITION_PARMETISDISTRIBUTION_HPP_ */
......@@ -18,63 +18,63 @@
* \param min_l minimum load of the processor
*
*/
template<unsigned int dim, typename Distribution> void setSphereComputationCosts(Distribution & dist, grid_sm<dim,void> & gr, Point<3, float> center, float radius, size_t max_l, size_t min_l)
template<unsigned int dim, typename Distribution> void setSphereComputationCosts(Distribution & dist, grid_sm<dim, void> & gr, Point<3, float> center, float radius, size_t max_l, size_t min_l)
{
float radius2 = radius * radius;
float eq;
// Position structure for the single vertex
float pos[3];
float pos[dim];
for (size_t i = 0; i < gr.size() ; i++)
for (size_t i = 0; i < dist.getNSubSubDomains(); i++)
{
dist.getSubSubDomainPosition(i, pos);
eq = 0;
for (size_t j = 0 ; j < dim ; j++)
for (size_t j = 0; j < dim; j++)
eq += (pos[j] - center.get(j)) * (pos[j] - center.get(j));
if (eq <= radius2)
{
dist.setComputationCost(i, max_l);
dist.setMigrationCost(i, max_l*2);
dist.setMigrationCost(i, max_l * 2);
}
else
{
dist.setComputationCost(i, min_l);
dist.setMigrationCost(i, min_l*2);
dist.setMigrationCost(i, min_l * 2);
}
// set Migration cost and communication cost
for (size_t j = 0 ; j < dist.getNSubSubDomainNeighbors(i) ; j++)
dist.setCommunicationCost(i,j,1);
for (size_t j = 0; j < dist.getNSubSubDomainNeighbors(i); j++)
dist.setCommunicationCost(i, j, 1);
}
}
BOOST_AUTO_TEST_SUITE( Distribution_test )
BOOST_AUTO_TEST_SUITE (Distribution_test)
BOOST_AUTO_TEST_CASE( Metis_distribution_test)
{
Vcluster & v_cl = *global_v_cluster;
if (v_cl.getProcessingUnits() != 3)
return;
return;
if (v_cl.getProcessUnitID() != 0)
return;
return;
//! [Initialize a Metis Cartesian graph and decompose]
MetisDistribution<3,float> met_dist(v_cl);
MetisDistribution<3, float> met_dist(v_cl);
// Cartesian grid
size_t sz[3] = {GS_SIZE,GS_SIZE,GS_SIZE};
size_t sz[3] = { GS_SIZE, GS_SIZE, GS_SIZE };
// Box
Box<3,float> box({0.0,0.0,0.0},{1.0,1.0,1.0});
Box<3, float> box( { 0.0, 0.0, 0.0 }, { 1.0, 1.0, 1.0 });
// Grid info
grid_sm<3,void> info(sz);
grid_sm<3, void> info(sz);
// Set metis on test, It fix the seed (not required if we are not testing)
met_dist.onTest();
......@@ -90,7 +90,7 @@ BOOST_AUTO_TEST_CASE( Metis_distribution_test)
met_dist.write("vtk_metis_distribution.vtk");
size_t b = GS_SIZE*GS_SIZE*GS_SIZE/5;
size_t b = GS_SIZE * GS_SIZE * GS_SIZE / 5;
//! [Decomposition Metis with weights]
......@@ -100,19 +100,19 @@ BOOST_AUTO_TEST_CASE( Metis_distribution_test)
// Change set some weight on the graph and re-decompose
for (size_t i = 0 ; i < met_dist.getNSubSubDomains() ; i++)
for (size_t i = 0; i < met_dist.getNSubSubDomains(); i++)
{
if (i == 0 || i == b || i == 2*b || i == 3*b || i == 4*b)
met_dist.setComputationCost(i,10);
met_dist.setComputationCost(i,10);
else
met_dist.setComputationCost(i,1);
met_dist.setComputationCost(i,1);
// We also show how to set some Communication and Migration cost
met_dist.setMigrationCost(i,1);
for (size_t j = 0 ; j < met_dist.getNSubSubDomainNeighbors(i) ; j++)
met_dist.setCommunicationCost(i,j,1);
for (size_t j = 0; j < met_dist.getNSubSubDomainNeighbors(i); j++)
met_dist.setCommunicationCost(i,j,1);
}
met_dist.decompose();
......@@ -125,7 +125,7 @@ BOOST_AUTO_TEST_CASE( Metis_distribution_test)
// check that match
bool test = compare("vtk_metis_distribution.vtk","src/Decomposition/Distribution/test_data/vtk_metis_distribution_test.vtk");
bool test = compare("vtk_metis_distribution.vtk", "src/Decomposition/Distribution/test_data/vtk_metis_distribution_test.vtk");
BOOST_REQUIRE_EQUAL(true,test);
test = compare("vtk_metis_distribution_red.vtk","src/Decomposition/Distribution/test_data/vtk_metis_distribution_red_test.vtk");
......@@ -133,7 +133,7 @@ BOOST_AUTO_TEST_CASE( Metis_distribution_test)
// Copy the Metis distribution
MetisDistribution<3,float> met_dist2(v_cl);
MetisDistribution<3, float> met_dist2(v_cl);
met_dist2 = met_dist;
......@@ -157,23 +157,23 @@ BOOST_AUTO_TEST_CASE( Parmetis_distribution_test)
Vcluster & v_cl = *global_v_cluster;
if (v_cl.getProcessingUnits() != 3)
return;
return;
//! [Initialize a ParMetis Cartesian graph and decompose]
ParMetisDistribution<3,float> pmet_dist(v_cl);
ParMetisDistribution<3, float> pmet_dist(v_cl);
// Physical domain
Box<3,float> box({0.0,0.0,0.0},{10.0,10.0,10.0});
Box<3, float> box( { 0.0, 0.0, 0.0 }, { 10.0, 10.0, 10.0 });
// Grid info
grid_sm<3,void> info({GS_SIZE,GS_SIZE,GS_SIZE});
grid_sm<3, void> info( { GS_SIZE, GS_SIZE, GS_SIZE });
// Initialize Cart graph and decompose
pmet_dist.createCartGraph(info,box);
// First create the center of the weights distribution, check it is coherent to the size of the domain
Point<3,float> center({2.0,2.0,2.0});
Point<3, float> center( { 2.0, 2.0, 2.0 });
// It produces a sphere of radius 2.0
// with high computation cost (5) inside the sphere and (1) outside
......@@ -198,16 +198,16 @@ BOOST_AUTO_TEST_CASE( Parmetis_distribution_test)
float stime = 0.0, etime = 10.0, tstep = 0.1;
// Shift of the sphere at each iteration
Point<3,float> shift({tstep,tstep,tstep});
Point<3, float> shift( { tstep, tstep, tstep });
size_t iter = 1;
for(float t = stime; t < etime; t = t + tstep, iter++)
{
if(t < etime/2)
center += shift;
center += shift;
else
center -= shift;
center -= shift;
setSphereComputationCosts(pmet_dist, info, center, 2.0f, 5, 1);
......@@ -223,7 +223,6 @@ BOOST_AUTO_TEST_CASE( Parmetis_distribution_test)
pmet_dist.write(str.str() + ".vtk");
// Check
bool test = compare(str.str() + ".vtk",std::string("src/Decomposition/Distribution/test_data/") + str.str() + "_test.vtk");
BOOST_REQUIRE_EQUAL(true,test);
}
......@@ -235,12 +234,88 @@ BOOST_AUTO_TEST_CASE( Parmetis_distribution_test)
BOOST_REQUIRE_EQUAL(sizeof(MetisDistribution<3,float>),568ul);
}
BOOST_AUTO_TEST_CASE( DistPametis_distribution_test)
BOOST_AUTO_TEST_CASE( DistParmetis_distribution_test)
{
Vcluster & v_cl = *global_v_cluster;
if (v_cl.getProcessingUnits() != 3)
return;
//! [Initialize a ParMetis Cartesian graph and decompose]
DistParMetisDistribution<3, float> pmet_dist(v_cl);
// Physical domain
Box<3, float> box( { 0.0, 0.0, 0.0 }, { 10.0, 10.0, 10.0 });
// Grid info
grid_sm<3, void> info( { GS_SIZE, GS_SIZE, GS_SIZE });
// Initialize Cart graph and decompose
pmet_dist.createCartGraph(info,box);
// First create the center of the weights distribution, check it is coherent to the size of the domain
Point<3, float> center( { 2.0, 2.0, 2.0 });
// It produces a sphere of radius 2.0
// with high computation cost (5) inside the sphere and (1) outside
setSphereComputationCosts(pmet_dist, info, center, 2.0f, 5ul, 1ul);
// first decomposition
pmet_dist.decompose();
//! [Initialize a ParMetis Cartesian graph and decompose]
// write the first decomposition
pmet_dist.write("vtk_dist_parmetis_distribution_0.vtk");
if (v_cl.getProcessingUnits() == 0)
{
bool test = compare("vtk_dist_parmetis_distribution_0.vtk","src/Decomposition/Distribution/test_data/vtk_dist_parmetis_distribution_0_test.vtk");
BOOST_REQUIRE_EQUAL(true,test);
}
//! [refine with dist_parmetis the decomposition]
float stime = 0.0, etime = 10.0, tstep = 0.1;
// Shift of the sphere at each iteration
Point<3, float> shift( { tstep, tstep, tstep });
size_t iter = 1;
for(float t = stime; t < etime; t = t + tstep, iter++)
{
if(t < etime/2)
center += shift;
else
center -= shift;
setSphereComputationCosts(pmet_dist, info, center, 2.0f, 5, 1);
// With some regularity refine and write the parmetis distribution
if ((size_t)iter % 10 == 0)
{
pmet_dist.refine();
std::stringstream str;
str << "vtk_dist_parmetis_distribution_" << iter;
pmet_dist.write(str.str() + ".vtk");
// Check
if (v_cl.getProcessUnitID() == 0)
{
bool test = compare(str.str() + ".vtk",std::string("src/Decomposition/Distribution/test_data/") + str.str() + "_test.vtk");
BOOST_REQUIRE_EQUAL(true,test);
}
}
}
//! [refine with dist_parmetis the decomposition]
BOOST_REQUIRE_EQUAL(sizeof(DistParMetisDistribution<3,float>),1440ul);
}
BOOST_AUTO_TEST_SUITE_END()
#endif /* SRC_DECOMPOSITION_DISTRIBUTION_DISTRIBUTION_UNIT_TESTS_HPP_ */
......@@ -437,7 +437,6 @@ public:
unbalance = ((float) (max - min)) / (float) (sum / v_cl.getProcessingUnits());
std::cout << std::endl;
return unbalance * 100;
}
......
......@@ -512,7 +512,7 @@ public:
if (end_v < g.size())
{
// Add an edge and set the the edge property to the size of the face (communication weight)
gp.template addEdge_new(start_v, end_v, v_id, end_v);
gp.template addEdge(start_v, end_v, v_id, end_v);
}
}
}
......
......@@ -321,12 +321,6 @@ class DistGraph_CSR
size_t id_x_end = v_l.template get<0>(v1);
#ifdef DEBUG
// Check that v1 and v2 exist
if (v1 >= v.size() || v2 >= v.size())
{
//std::cout << "Warning graph: creating an edge between vertex that does not exist" << "\n";
}
// Check that the edge does not already exist
......@@ -488,7 +482,7 @@ class DistGraph_CSR
for (size_t j = 0; j < this->getNChilds(i); j++)
{
recv_g.addEdge_new(local_i, this->getChild(i, j), this->getChildEdge(i, j), this->getChildInfo(i, j));
recv_g.addEdge(local_i, this->getChild(i, j), this->getChildEdge(i, j), this->getChildInfo(i, j));
}
++local_i;
}
......@@ -542,8 +536,6 @@ class DistGraph_CSR
template<bool addAsGhosts>
void exchangeVertices()
{
size_t totVert = getNVertex();
// If the exchange is not to retrieve ghost vertices delete the vertices this processor is sending
if (!addAsGhosts)
deleteMovedVertices();
......@@ -570,7 +562,6 @@ class DistGraph_CSR
// process to communicate with TODO remove pc
size_t pc = i;
size_t es_size = sgp.get(pc).send_es.size();
size_t vp_size = sgp.get(pc).send_v.size();
std::vector<size_t> pap_prp;
......@@ -682,8 +673,6 @@ class DistGraph_CSR
if (addAsGhosts)
ghs_map.insert( { vm.template get<v_info::gid>(), false });
size_t prev_e = getNEdge();
// unpack size of children
size_t s;
Unpacker<size_t, HeapMemory>::unpack(mem, s, ps);
......@@ -704,7 +693,7 @@ class DistGraph_CSR
Unpacker<size_t, HeapMemory>::unpack(mem, el_n, ps);
// add the edge //HERE ERROR modify to add globals
addEdge_new(j, el_n, e_n, e_i);
addEdge(j, el_n, e_n, e_i);
}
}
}
......@@ -778,8 +767,6 @@ class DistGraph_CSR
IdnProc nidpid = { j, p_id };
on_toup.insert( { v_m.get(it.second).template get<v_info::id>(), nidpid });
size_t id = v_m.get(it.second).template get<v_info::id>(); //delete
// fill the re-mapping information for each processors that need it
on_info.get(getInfoProc(it.first)).add(v_m.get(it.second).template get<v_info::id>());
on_info.get(getInfoProc(it.first)).add(j);
......@@ -827,8 +814,6 @@ class DistGraph_CSR
GlobalVInfo t = { (search->second).id, (search->second).pid };
glbi_map.at(k.first) = t;
}
//std::cout << vcl.getProcessUnitID() << " -> " << k.first << " id: " << glbi_map.at(k.first).id << " pid: " << glbi_map.at(k.first).pid << "\n";
}
// Vector of vertices global id I need info
......@@ -905,17 +890,11 @@ class DistGraph_CSR
}
}
for (auto ik : rmi_m)
{
//std::cout << vcl.getProcessUnitID() << " " << ik.first << " >> " << ik.second << "\n";
}
// Finally re-map the edges
for (size_t i = 0; i < getNVertex(); ++i)
{
for (size_t s = 0; s < getNChilds(i); s++)
{
//std::cout << vcl.getProcessUnitID() << " " << e_l.template get<e_map::vid>(i * v_slot + s) << " >> " << rmi_m.at(getChildEdge(i, s).template get<E::dstgid>()) << "\n";
e_l.template get<e_map::vid>(i * v_slot + s) = rmi_m.at(getChildDstGid(i, s));
}
}
......@@ -1160,6 +1139,8 @@ public:
DistGraph_CSR<V, E, VertexList, EdgeList, Memory> & operator=(DistGraph_CSR<V, E, VertexList, EdgeList, Memory> && g)
{
swap(g);
return *this;
}
/*! \breif Copy the graph
......@@ -1703,79 +1684,7 @@ public:
id2glb.insert( { i, g });
}
/*! \brief Add edge on the graph
*
* \param v1 source vertex
* \param v2 destination vertex
* \param ed edge object
* \return the edge object
*/
template<typename CheckPolicy = NoCheck> inline auto addEdge(size_t v1, size_t v2, const E & ed) -> decltype(e.get(0))
{
long int id_x_end = addEdge_<CheckPolicy>(v1, v2);
// If there is not edge return an invalid edge, is a kind of stub object
if (id_x_end == NO_EDGE)
return e_invalid.get(0);
// add in e_l the edge properties
e.set(id_x_end, ed);
return e.get(id_x_end);
}
/*! \brief Add edge on the graph
*
* Add edge on the graph
*
* \param v1 start vertex
* \param v2 end vertex
*
* \return the edge object
*/
template<typename CheckPolicy = NoCheck> inline auto addEdge(size_t v1, size_t v2) -> decltype(e.get(0))
{
// add an edge
long int id_x_end = addEdge_<CheckPolicy>(v1, v2);
// If there is not edge return an invalid edge, is a kind of stub object
if (id_x_end == NO_EDGE)
return e_invalid.get(0);
// return the edge to change the properties
return e.get(id_x_end);
}
/*! \brief Add edge on the graph and fill source and destination informations
*
* add edge on the graph
*
* \param v1 start vertex
* \param v2 end vertex
*
* \tparam sgid property id filled with the source vertex global id
* \tparam dgid property id filled with the destination vertex global id
*/
template<typename CheckPolicy = NoCheck, int sgid, int dgid> inline auto addEdge(size_t v1, size_t v2, size_t srcgid, size_t dstgid) -> decltype(e.get(0))
{
// add an edge
long int id_x_end = addEdge_<CheckPolicy>(v1, v2);
// If there is not edge return an invalid edge, is a kind of stub object
if (id_x_end == NO_EDGE)
return e_invalid.get(0);
// set source and destination ids of the edge
e.get(id_x_end).template get<sgid>() = srcgid;
e.get(id_x_end).template get<dgid>() = dstgid;
// set source and destination ids of the edge
e_m.template get<e_info::sgid>(id_x_end) = srcgid;
e_m.template get<e_info::dgid>(id_x_end) = dstgid;
// return the edge to change the properties
return e.get(id_x_end);
}
inline auto addEdge_new(size_t v1, size_t v2, size_t srcgid, size_t dstgid) -> decltype(e.get(0))
inline auto addEdge(size_t v1, size_t v2, size_t srcgid, size_t dstgid) -> decltype(e.get(0))
{
// add an edge
long int id_x_end = addEdge_<NoCheck>(v1, v2);
......@@ -1791,7 +1700,7 @@ public:
return e.get(id_x_end);
}
inline auto addEdge_new(size_t v1, size_t v2, size_t srcgid, size_t dstgid, const E & ed) -> decltype(e.get(0))
inline auto addEdge(size_t v1, size_t v2, size_t srcgid, size_t dstgid, const E & ed) -> decltype(e.get(0))
{
// add an edge
long int id_x_end = addEdge_<NoCheck>(v1, v2);
......@@ -1810,7 +1719,7 @@ public:
return e.get(id_x_end);
}
inline auto addEdge_new(size_t v1, size_t v2, const E & ed, const e_info & ei) -> decltype(e.get(0))
inline auto addEdge(size_t v1, size_t v2, const E & ed, const e_info & ei) -> decltype(e.get(0))
{
// add an edge
long int id_x_end = addEdge_<NoCheck>(v1, v2);
......@@ -2090,8 +1999,6 @@ public:
template<bool toRemove = true> //TODO make it private and create wrapper in public
void q_move(size_t i, size_t t)
{
//std::cout << vcl.getProcessUnitID() <<" moving " << getVertexId(i) << " local " << i << " to " << t << std::endl;
// Check if a 'useless' move has been requested
if (t == vcl.getProcessUnitID())
{
......@@ -2150,16 +2057,12 @@ public:
if (glbi_map.size() == 0)
initGlbimap();
//std::cout << "TEMP DBG::deleteGhosts\n";
deleteGhosts();
//std::cout << "TEMP DBG::exchangeVertices\n";
exchangeVertices<false>();
//std::cout << "TEMP DBG::updateVtxdist\n";
updateVtxdist();
//std::cout << "TEMP DBG::remap\n";
remap();
}
......
......@@ -3,8 +3,8 @@
#include "Graph/DistGraphFactory.hpp"
#include "Graph/dist_map_graph.hpp"
#include "Packer.hpp"
#include "Unpacker.hpp"
#include "Packer_Unpacker/Packer.hpp"
#include "Packer_Unpacker/Unpacker.hpp"
#define GS_SIZE 4
......@@ -126,7 +126,7 @@ const std::string ed::attributes::name[] = { "prop" };
BOOST_AUTO_TEST_SUITE (dist_map_graph_test)
BOOST_AUTO_TEST_CASE( dist_map_graph_use_4p)
BOOST_AUTO_TEST_CASE( dist_map_graph_use)