From: Takishipp Date: Mon, 2 Oct 2017 16:02:57 +0000 (+0200) Subject: s4u-async-wait is complete X-Git-Tag: v3_17~48^2~1 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/5c220417dce14036ddf5e8279b4912051a16a74f s4u-async-wait is complete --- diff --git a/examples/s4u/async-wait/s4u-async-wait.cpp b/examples/s4u/async-wait/s4u-async-wait.cpp index 3f9a49c2c2..73f3bff50a 100644 --- a/examples/s4u/async-wait/s4u-async-wait.cpp +++ b/examples/s4u/async-wait/s4u-async-wait.cpp @@ -20,6 +20,7 @@ class sender { double sleep_start_time; /* - start time */ double sleep_test_time; /* - test time */ double msg_size; /* - computational cost */ + double task_comm_size; /* - communication cost */ simgrid::s4u::MailboxPtr mbox; public: @@ -28,14 +29,14 @@ public: xbt_assert(args.size() == 7, "The sender function expects 6 arguments from the XML deployment file"); messages_count = std::stol(args[1]); msg_size = std::stod(args[2]); - double task_comm_size = std::stod(args[3]); /* - communication cost */ + task_comm_size = std::stod(args[3]); receivers_count = std::stol(args[4]); double sleep_start_time = std::stod(args[5]); double sleep_test_time = std::stod(args[6]); XBT_INFO("sleep_start_time : %f , sleep_test_time : %f", sleep_start_time, sleep_test_time); } void operator()() -{ +{ /* Start dispatching all messages to receivers, in a round robin fashion */ for (int i = 0; i < messages_count; i++) { char mailbox[80]; @@ -49,6 +50,7 @@ void operator()() /* Create a communication representing the ongoing communication */ simgrid::s4u::CommPtr comm = mbox->put_async((void*)mailbox, msg_size); XBT_INFO("Send to receiver-%ld Task_%d", i % receivers_count, i); + comm->wait(task_comm_size); } /* Start sending messages to let the workers know that they should stop */ for (int i = 0; i < receivers_count; i++) { @@ -56,6 +58,7 @@ void operator()() char* payload = xbt_strdup("finalize"); snprintf(mailbox, 79, "receiver-%d", i); simgrid::s4u::CommPtr comm = mbox->put_async((void*)payload, 0); + comm->wait(task_comm_size); XBT_INFO("Send to receiver-%d finalize", i); } @@ -74,7 +77,7 @@ class receiver { public: explicit receiver(std::vector args) { - xbt_assert(args.size() == 4, "The relay_runner function does not accept any parameter from the XML deployment file"); + xbt_assert(args.size() == 4, "The relay_runner function does not accept any parameter from the XML deployment file"); id = std::stoi(args[1]); sleep_start_time = std::stod(args[2]); sleep_test_time = std::stod(args[3]); @@ -95,8 +98,6 @@ void operator()() xbt_free(received); break; } - /* Otherwise receiving the message was all we were supposed to do */ - xbt_free(received); } } }; diff --git a/examples/s4u/async-wait/s4u-async-wait.tesh b/examples/s4u/async-wait/s4u-async-wait.tesh index 3054ab09da..b46b2e849e 100644 --- a/examples/s4u/async-wait/s4u-async-wait.tesh +++ b/examples/s4u/async-wait/s4u-async-wait.tesh @@ -1,110 +1,20 @@ #! ./tesh -p Test1 MSG_comm_test() with Sleep_sender > Sleep_receiver +p Test1 Sleep_sender > Sleep_receiver -$ $SG_TEST_EXENV ${bindir:=.}/s4u-async-wait ${srcdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/../msg/async-wait/async-wait_d.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" +$ $SG_TEST_EXENV ${bindir:=.}/s4u-async-wait ${srcdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/../s4u/async-wait/s4u-async-wait_d.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" > [ 0.000000] (1:sender@Tremblay) sleep_start_time : 5.000000 , sleep_test_time : 0.100000 > [ 0.000000] (2:receiver@Ruby) sleep_start_time : 1.000000 , sleep_test_time : 0.100000 -> [ 1.000000] (2:receiver@Ruby) Wait to receive a task -> [ 5.000000] (1:sender@Tremblay) Send to receiver-0 Task_0 -> [ 5.100000] (2:receiver@Ruby) Received "Task_0" -> [ 5.100000] (2:receiver@Ruby) Processing "Task_0" -> [ 5.100000] (1:sender@Tremblay) Send to receiver-0 Task_1 -> [ 5.609710] (2:receiver@Ruby) "Task_0" done -> [ 5.609710] (2:receiver@Ruby) Wait to receive a task -> [ 5.700000] (1:sender@Tremblay) Send to receiver-0 Task_2 -> [ 5.709710] (2:receiver@Ruby) Received "Task_1" -> [ 5.709710] (2:receiver@Ruby) Processing "Task_1" -> [ 6.219420] (2:receiver@Ruby) "Task_1" done -> [ 6.219420] (2:receiver@Ruby) Wait to receive a task -> [ 6.300000] (1:sender@Tremblay) Send to receiver-0 finalize -> [ 6.319420] (2:receiver@Ruby) Received "Task_2" -> [ 6.319420] (2:receiver@Ruby) Processing "Task_2" -> [ 6.829130] (2:receiver@Ruby) "Task_2" done -> [ 6.829130] (2:receiver@Ruby) Wait to receive a task -> [ 6.900000] (1:sender@Tremblay) Goodbye now! -> [ 6.929130] (2:receiver@Ruby) Received "finalize" -> [ 6.929130] (2:receiver@Ruby) I'm done. See you! -> [ 6.929130] (0:maestro@) Simulation time 6.92913 - -p Test2 MSG_comm_test() with Sleep_sender < Sleep_receiver - -$ $SG_TEST_EXENV ${bindir:=.}/s4u-async-wait ${srcdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/../msg/async-wait/async-wait2_d.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" -> [ 0.000000] (1:sender@Tremblay) sleep_start_time : 1.000000 , sleep_test_time : 0.100000 -> [ 0.000000] (2:receiver@Ruby) sleep_start_time : 5.000000 , sleep_test_time : 0.100000 -> [ 1.000000] (1:sender@Tremblay) Send to receiver-0 Task_0 -> [ 5.000000] (2:receiver@Ruby) Wait to receive a task -> [ 5.100000] (2:receiver@Ruby) Received "Task_0" -> [ 5.100000] (2:receiver@Ruby) Processing "Task_0" -> [ 5.100000] (1:sender@Tremblay) Send to receiver-0 Task_1 -> [ 5.609710] (2:receiver@Ruby) "Task_0" done -> [ 5.609710] (2:receiver@Ruby) Wait to receive a task -> [ 5.700000] (1:sender@Tremblay) Send to receiver-0 Task_2 -> [ 5.709710] (2:receiver@Ruby) Received "Task_1" -> [ 5.709710] (2:receiver@Ruby) Processing "Task_1" -> [ 6.219420] (2:receiver@Ruby) "Task_1" done -> [ 6.219420] (2:receiver@Ruby) Wait to receive a task -> [ 6.300000] (1:sender@Tremblay) Send to receiver-0 finalize -> [ 6.319420] (2:receiver@Ruby) Received "Task_2" -> [ 6.319420] (2:receiver@Ruby) Processing "Task_2" -> [ 6.829130] (2:receiver@Ruby) "Task_2" done -> [ 6.829130] (2:receiver@Ruby) Wait to receive a task -> [ 6.900000] (1:sender@Tremblay) Goodbye now! -> [ 6.929130] (2:receiver@Ruby) Received "finalize" -> [ 6.929130] (2:receiver@Ruby) I'm done. See you! -> [ 6.929130] (0:maestro@) Simulation time 6.92913 - -p Test1 MSG_comm_wait() with Sleep_sender > Sleep_receiver - -$ $SG_TEST_EXENV ${bindir:=.}/s4u-async-wait ${srcdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/../msg/async-wait/async-wait3_d.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" -> [ 0.000000] (1:sender@Tremblay) sleep_start_time : 5.000000 , sleep_test_time : 0.000000 -> [ 0.000000] (2:receiver@Ruby) sleep_start_time : 1.000000 , sleep_test_time : 0.000000 -> [ 1.000000] (2:receiver@Ruby) Wait to receive a task -> [ 5.000000] (1:sender@Tremblay) Send to receiver-0 Task_0 -> [ 5.004022] (2:receiver@Ruby) Received "Task_0" -> [ 5.004022] (2:receiver@Ruby) Processing "Task_0" -> [ 5.004022] (1:sender@Tremblay) Send to receiver-0 Task_1 -> [ 5.513732] (2:receiver@Ruby) "Task_0" done -> [ 5.513732] (2:receiver@Ruby) Wait to receive a task -> [ 5.517753] (2:receiver@Ruby) Received "Task_1" -> [ 5.517753] (2:receiver@Ruby) Processing "Task_1" -> [ 5.517753] (1:sender@Tremblay) Send to receiver-0 Task_2 -> [ 6.027463] (2:receiver@Ruby) "Task_1" done -> [ 6.027463] (2:receiver@Ruby) Wait to receive a task -> [ 6.031485] (2:receiver@Ruby) Received "Task_2" -> [ 6.031485] (2:receiver@Ruby) Processing "Task_2" -> [ 6.031485] (1:sender@Tremblay) Send to receiver-0 finalize -> [ 6.541195] (2:receiver@Ruby) "Task_2" done -> [ 6.541195] (2:receiver@Ruby) Wait to receive a task -> [ 6.543146] (1:sender@Tremblay) Goodbye now! -> [ 6.543146] (2:receiver@Ruby) Received "finalize" -> [ 6.543146] (2:receiver@Ruby) I'm done. See you! -> [ 6.543146] (0:maestro@) Simulation time 6.54315 - - -p Test2 MSG_comm_wait() with Sleep_sender < Sleep_receiver - -$ $SG_TEST_EXENV ${bindir:=.}/s4u-async-wait ${srcdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/../msg/async-wait/async-wait4_d.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" -> [ 0.000000] (1:sender@Tremblay) sleep_start_time : 1.000000 , sleep_test_time : 0.000000 -> [ 0.000000] (2:receiver@Ruby) sleep_start_time : 5.000000 , sleep_test_time : 0.000000 -> [ 1.000000] (1:sender@Tremblay) Send to receiver-0 Task_0 -> [ 5.000000] (2:receiver@Ruby) Wait to receive a task -> [ 5.004022] (2:receiver@Ruby) Received "Task_0" -> [ 5.004022] (2:receiver@Ruby) Processing "Task_0" -> [ 5.004022] (1:sender@Tremblay) Send to receiver-0 Task_1 -> [ 5.513732] (2:receiver@Ruby) "Task_0" done -> [ 5.513732] (2:receiver@Ruby) Wait to receive a task -> [ 5.517753] (2:receiver@Ruby) Received "Task_1" -> [ 5.517753] (2:receiver@Ruby) Processing "Task_1" -> [ 5.517753] (1:sender@Tremblay) Send to receiver-0 Task_2 -> [ 6.027463] (2:receiver@Ruby) "Task_1" done -> [ 6.027463] (2:receiver@Ruby) Wait to receive a task -> [ 6.031485] (2:receiver@Ruby) Received "Task_2" -> [ 6.031485] (2:receiver@Ruby) Processing "Task_2" -> [ 6.031485] (1:sender@Tremblay) Send to receiver-0 finalize -> [ 6.541195] (2:receiver@Ruby) "Task_2" done -> [ 6.541195] (2:receiver@Ruby) Wait to receive a task -> [ 6.543146] (1:sender@Tremblay) Goodbye now! -> [ 6.543146] (2:receiver@Ruby) Received "finalize" -> [ 6.543146] (2:receiver@Ruby) I'm done. See you! -> [ 6.543146] (0:maestro@) Simulation time 6.54315 +> [ 0.000000] (1:sender@Tremblay) Send to receiver-0 Task_0 +> [ 0.105458] (2:receiver@Ruby) Wait to receive a task +> [ 0.105458] (2:receiver@Ruby) I got a 'receiver-0'. +> [ 0.105458] (1:sender@Tremblay) Send to receiver-0 Task_1 +> [ 0.210917] (2:receiver@Ruby) Wait to receive a task +> [ 0.210917] (2:receiver@Ruby) I got a 'receiver-0'. +> [ 0.210917] (1:sender@Tremblay) Send to receiver-0 Task_2 +> [ 0.316375] (2:receiver@Ruby) Wait to receive a task +> [ 0.316375] (2:receiver@Ruby) I got a 'receiver-0'. +> [ 0.318326] (2:receiver@Ruby) Wait to receive a task +> [ 0.318326] (2:receiver@Ruby) I got a 'finalize'. +> [ 0.318326] (1:sender@Tremblay) Send to receiver-0 finalize +> [ 0.318326] (1:sender@Tremblay) Goodbye now! \ No newline at end of file diff --git a/examples/s4u/async-wait/s4u-async-wait2_d.xml b/examples/s4u/async-wait/s4u-async-wait2_d.xml deleted file mode 100644 index 1e49112af9..0000000000 --- a/examples/s4u/async-wait/s4u-async-wait2_d.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/examples/s4u/async-wait/s4u-async-wait3_d.xml b/examples/s4u/async-wait/s4u-async-wait3_d.xml deleted file mode 100644 index f1ef12d94e..0000000000 --- a/examples/s4u/async-wait/s4u-async-wait3_d.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/examples/s4u/async-wait/s4u-async-wait4_d.xml b/examples/s4u/async-wait/s4u-async-wait4_d.xml deleted file mode 100644 index 84ca7e6a15..0000000000 --- a/examples/s4u/async-wait/s4u-async-wait4_d.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/examples/s4u/async-wait/s4u-async-wait_d.xml b/examples/s4u/async-wait/s4u-async-wait_d.xml index e385572019..580374b8cd 100644 --- a/examples/s4u/async-wait/s4u-async-wait_d.xml +++ b/examples/s4u/async-wait/s4u-async-wait_d.xml @@ -16,4 +16,4 @@ - + \ No newline at end of file