X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5e1fa53a0d0ae78cebae28364e6802aa1db1cba3..12623e213e87741da4f0e42917f31b51cf9db0f1:/src/smpi/internals/smpi_replay.cpp diff --git a/src/smpi/internals/smpi_replay.cpp b/src/smpi/internals/smpi_replay.cpp index 925b506073..6ab3911d3b 100644 --- a/src/smpi/internals/smpi_replay.cpp +++ b/src/smpi/internals/smpi_replay.cpp @@ -61,8 +61,8 @@ public: }; } -typedef std::tuple req_key_t; -typedef std::unordered_map>> req_storage_t; +using req_key_t = std::tuple; +using req_storage_t = std::unordered_map>>; void log_timed_action(const simgrid::xbt::ReplayAction& action, double clock) { @@ -89,25 +89,22 @@ private: req_storage_t store; public: - RequestStorage() {} - int size() const { return store.size(); } + RequestStorage() = default; + int size() const { return store.size(); } - req_storage_t& get_store() - { - return store; - } + req_storage_t& get_store() { return store; } - void get_requests(std::vector& vec) const - { - for (auto const& pair : store) { - auto& req = pair.second; - auto my_proc_id = simgrid::s4u::this_actor::get_pid(); - if (req != MPI_REQUEST_NULL && (req->src() == my_proc_id || req->dst() == my_proc_id)) { - vec.push_back(pair.second); - pair.second->print_request("MM"); - } + void get_requests(std::vector& vec) const + { + for (auto const& pair : store) { + auto& req = pair.second; + auto my_proc_id = simgrid::s4u::this_actor::get_pid(); + if (req != MPI_REQUEST_NULL && (req->src() == my_proc_id || req->dst() == my_proc_id)) { + vec.push_back(pair.second); + pair.second->print_request("MM"); } } + } MPI_Request find(int src, int dst, int tag) { @@ -413,7 +410,7 @@ void WaitAction::kernel(simgrid::xbt::ReplayAction& action) req_storage.remove(request); if (request == MPI_REQUEST_NULL) { - /* Assume that the trace is well formed, meaning the comm might have been caught by a MPI_test. Then just + /* Assume that the trace is well formed, meaning the comm might have been caught by an MPI_test. Then just * return.*/ return; } @@ -567,7 +564,7 @@ void WaitAllAction::kernel(simgrid::xbt::ReplayAction&) req_storage.get_requests(reqs); for (auto const& req : reqs) { if (req && (req->flags() & MPI_REQ_RECV)) { - sender_receiver.push_back({req->src(), req->dst()}); + sender_receiver.emplace_back(req->src(), req->dst()); } } Request::waitall(count_requests, &(reqs.data())[0], MPI_STATUSES_IGNORE); @@ -824,15 +821,14 @@ void smpi_replay_main(int rank, const char* trace_filename) unsigned int count_requests = storage[simgrid::s4u::this_actor::get_pid()].size(); XBT_DEBUG("There are %ud elements in reqq[*]", count_requests); if (count_requests > 0) { - auto* requests = new MPI_Request[count_requests]; + std::vector requests(count_requests); unsigned int i=0; for (auto const& pair : storage[simgrid::s4u::this_actor::get_pid()].get_store()) { requests[i] = pair.second; i++; } - simgrid::smpi::Request::waitall(count_requests, requests, MPI_STATUSES_IGNORE); - delete[] requests; + simgrid::smpi::Request::waitall(count_requests, requests.data(), MPI_STATUSES_IGNORE); } active_processes--;