From 5e86f99f0cc0c99f53021863be5961535e717ee5 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Tue, 2 Feb 2021 21:16:56 +0100 Subject: [PATCH] New function: Comm::set_payload_size() to set the amount of bytes to simulate --- ChangeLog | 1 + include/simgrid/s4u/Comm.hpp | 18 +++++++++++++----- src/s4u/s4u_Comm.cpp | 5 +++++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index b8dc8ba5fc..7567984e5b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,7 @@ S4U: or Mailbox::get_async() if you really want to play with void*. - Unify the interface of Activity::on_{start/activity} - New function: Comm::get_dst_data() + - New function: Comm::set_payload_size() to set the amount of bytes to simulate. - New functions: Comm::sendto_{init,async} to initiate a communication on between two (possibly remote) hosts. diff --git a/include/simgrid/s4u/Comm.hpp b/include/simgrid/s4u/Comm.hpp index 86bbc5c51e..e0f42aede6 100644 --- a/include/simgrid/s4u/Comm.hpp +++ b/include/simgrid/s4u/Comm.hpp @@ -85,23 +85,31 @@ public: /** Specify the data to send. * * This is way will get actually copied over to the receiver. - * That's completely unrelated from the simulated size (given with @ref Activity::set_remaining()): + * That's completely unrelated from the simulated size (given with @ref Comm::set_payload_size()): * you can send a short buffer in your simulator, that represents a very large message * in the simulated world, or the opposite. */ CommPtr set_src_data(void* buff); - /** Specify the size of the data to send. Not to be mixed with @ref Activity::set_remaining() + /** Specify the size of the data to send. Not to be mixed with @ref Comm::set_payload_size() * * That's the size of the data to actually copy in the simulator (ie, the data passed with Activity::set_src_data()). - * That's completely unrelated from the simulated size (given with @ref Activity::set_remaining()): + * That's completely unrelated from the simulated size (given with @ref Comm::set_payload_size()): * you can send a short buffer in your simulator, that represents a very large message * in the simulated world, or the opposite. */ CommPtr set_src_data_size(size_t size); - /** Specify the data to send and its size. Don't mix the size with @ref Activity::set_remaining() + + /* Specify the amount of bytes which exchange should be simulated. Not to be mixed with @ref Comm::set_src_data_size() + * + * That's the size of the simulated data, that's completely related from the actual data size (given with @ref + * Comm::set_src_data_size()). + */ + Comm* set_payload_size(double bytes); + + /** Specify the data to send and its size. Don't mix the size with @ref Comm::set_payload_size() * * This is way will get actually copied over to the receiver. - * That's completely unrelated from the simulated size (given with @ref Activity::set_remaining()): + * That's completely unrelated from the simulated size (given with @ref Comm::set_payload_size()): * you can send a short buffer in your simulator, that represents a very large message * in the simulated world, or the opposite. */ diff --git a/src/s4u/s4u_Comm.cpp b/src/s4u/s4u_Comm.cpp index 0042ba9265..a0ee15f436 100644 --- a/src/s4u/s4u_Comm.cpp +++ b/src/s4u/s4u_Comm.cpp @@ -118,6 +118,11 @@ CommPtr Comm::set_dst_data(void** buff, size_t size) dst_buff_size_ = size; return this; } +Comm* Comm::set_payload_size(double bytes) +{ + set_remaining(bytes); + return this; +} CommPtr Comm::sendto_init(Host* from, Host* to) { -- 2.20.1