From 38f902f30d4285acff58cdb1989e779bb58695cb Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Mon, 15 Oct 2018 18:54:23 +0200 Subject: [PATCH] Update parallelism tests --- src/mesh/GmshReader.cpp | 58 ++++++----------------------------------- 1 file changed, 8 insertions(+), 50 deletions(-) diff --git a/src/mesh/GmshReader.cpp b/src/mesh/GmshReader.cpp index d63e30637..8b71419c6 100644 --- a/src/mesh/GmshReader.cpp +++ b/src/mesh/GmshReader.cpp @@ -10,6 +10,7 @@ #include <Connectivity.hpp> #include <Mesh.hpp> +#include <MeshData.hpp> #include <RefFaceList.hpp> #include <Messenger.hpp> @@ -248,74 +249,31 @@ void GmshReader::_dispatch() MeshDispatcher<Dimension> dispatcher(mesh); + MeshData data(mesh); + data.updateAllData(); + + std::vector<Array<Rd>> recv_cell_center_by_proc + = dispatcher.exchange(data.xj()); + std::vector<Array<int>> recv_cell_number_by_proc = dispatcher.exchange(mesh.connectivity().cellNumber()); std::vector<Array<CellType>> recv_cell_type_by_proc = dispatcher.exchange(mesh.connectivity().cellType()); - // const std::vector<Array<const CellId>>& cell_to_send_by_proc - // = dispatcher.cell_list_to_send_by_proc(); - - // Array<int> nb_cell_to_send_by_proc(commSize()); - // for (size_t i=0; i<commSize(); ++i) { - // nb_cell_to_send_by_proc[i] = cell_to_send_by_proc[i].size(); - // } - - // Array<int> nb_cell_to_recv_by_proc = allToAll(nb_cell_to_send_by_proc); - - - // const auto& cell_number = mesh.connectivity().cellNumber(); - // const std::vector<Array<const int>> cell_number_to_send_by_proc - // = [&] () { - // std::vector<Array<const int>> cell_number_to_send_by_proc(commSize()); - // for (size_t i=0; i<commSize(); ++i) { - // const Array<const CellId>& cell_list = cell_to_send_by_proc[i]; - // Array<int> cell_number_list(cell_list.size()); - // parallel_for (cell_list.size(), PASTIS_LAMBDA(const CellId& cell_id) { - // cell_number_list[cell_id] = cell_number[cell_list[cell_id]]; - // }); - // cell_number_to_send_by_proc[i] = cell_number_list; - // } - // return std::move(cell_number_to_send_by_proc); - // } (); - - // std::vector<Array<int>> recv_cell_number_by_proc(commSize()); - // for (size_t i=0; i<commSize(); ++i) { - // recv_cell_number_by_proc[i] = Array<int>(nb_cell_to_recv_by_proc[i]); - // } - - // exchange(cell_number_to_send_by_proc, recv_cell_number_by_proc); - - // std::vector<Array<CellType>> cell_type_to_send_by_proc - // = [&] () { - // CellValue<const CellType> cell_type = mesh.connectivity().cellType(); - // std::vector<std::vector<CellType>> cell_type_vector_to_send_by_proc(commSize()); - // for (CellId i=0; i<mesh.numberOfCells(); ++i) { - // cell_type_vector_to_send_by_proc[cell_new_owner[i]].push_back(cell_type[i]); - // } - // return cell_type_vector_to_send_by_proc; - // } (); - for (int i_rank=0; i_rank < commSize(); ++i_rank) { if (commRank() == i_rank) { std::cout << "----- rank=" << i_rank << " -----\n"; for (int j_rank=0; j_rank < commSize(); ++j_rank) { std::cout << "recv from " << j_rank << ':'; for (size_t i=0; i<recv_cell_number_by_proc[j_rank].size(); ++i) { - std::cout << ' ' << recv_cell_number_by_proc[j_rank][i]; + std::cout << ' ' << recv_cell_number_by_proc[j_rank][i] << '[' << name(recv_cell_type_by_proc[j_rank][i])<< "]:" << recv_cell_center_by_proc[j_rank][i]; } std::cout << '\n' << std::flush; } } - // barrier(); } - // const size_t new_cell_number - // = mesh.numberOfCells() - // + Sum(nb_cell_to_recv_by_proc) - // - Sum(nb_cell_to_send_by_proc); - Messenger::destroy(); std::exit(0); -- GitLab