Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
s4u-async-wait is complete
authorTakishipp <toufik.boubehziz@gmail.com>
Mon, 2 Oct 2017 16:02:57 +0000 (18:02 +0200)
committerTakishipp <toufik.boubehziz@gmail.com>
Mon, 2 Oct 2017 16:02:57 +0000 (18:02 +0200)
examples/s4u/async-wait/s4u-async-wait.cpp
examples/s4u/async-wait/s4u-async-wait.tesh
examples/s4u/async-wait/s4u-async-wait2_d.xml [deleted file]
examples/s4u/async-wait/s4u-async-wait3_d.xml [deleted file]
examples/s4u/async-wait/s4u-async-wait4_d.xml [deleted file]
examples/s4u/async-wait/s4u-async-wait_d.xml

index 3f9a49c..73f3bff 100644 (file)
@@ -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<std::string> 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);
   }
 }
 };
index 3054ab0..b46b2e8 100644 (file)
 #! ./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 (file)
index 1e49112..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4.1">
-  <!-- The master actor (with some arguments) -->
-  <actor host="Tremblay" function="sender">
-    <argument value="3"/>       <!-- Number of tasks -->
-    <argument value="50000000"/>  <!-- Computation size of tasks -->
-    <argument value="1000000"/>   <!-- Communication size of tasks -->
-    <argument value="1"/>         <!-- Number of receivers -->
-    <argument value="1"/>         <!-- Sleep_start_time -->
-    <argument value="0.1"/>      <!-- Time for test -->
-  </actor>
-  <!-- The receiver processes -->
-  <actor host="Ruby" function="receiver">
-    <argument value="0"/>
-    <argument value="5"/>         <!-- Sleep_start_time -->
-    <argument value="0.1"/>      <!-- Time for test -->
-  </actor>
-</platform>
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 (file)
index f1ef12d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4.1">
-  <!-- The master actor (with some arguments) -->
-  <actor host="Tremblay" function="sender">
-    <argument value="3"/>       <!-- Number of tasks -->
-    <argument value="50000000"/>  <!-- Computation size of tasks -->
-    <argument value="1000000"/>   <!-- Communication size of tasks -->
-    <argument value="1"/>         <!-- Number of receivers -->
-    <argument value="5"/>         <!-- Sleep_start_time -->
-    <argument value="0"/>      <!-- Time for test -->
-  </actor>
-  <!-- The receiver processes -->
-  <actor host="Ruby" function="receiver">
-    <argument value="0"/>
-    <argument value="1"/>         <!-- Sleep_start_time -->
-    <argument value="0"/>      <!-- Time for test -->
-  </actor>
-</platform>
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 (file)
index 84ca7e6..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4.1">
-  <!-- The master actor (with some arguments) -->
-  <actor host="Tremblay" function="sender">
-    <argument value="3"/>       <!-- Number of tasks -->
-    <argument value="50000000"/>  <!-- Computation size of tasks -->
-    <argument value="1000000"/>   <!-- Communication size of tasks -->
-    <argument value="1"/>         <!-- Number of receivers -->
-    <argument value="1"/>         <!-- Sleep_start_time -->
-    <argument value="0"/>      <!-- Time for test -->
-  </actor>
-  <!-- The receiver processes -->
-  <actor host="Ruby" function="receiver">
-    <argument value="0"/>
-    <argument value="5"/>         <!-- Sleep_start_time -->
-    <argument value="0"/>      <!-- Time for test -->
-  </actor>
-</platform>
-
index e385572..580374b 100644 (file)
@@ -16,4 +16,4 @@
     <argument value="1"/>         <!-- Sleep_start_time -->
     <argument value="0.1"/>      <!-- Time for test -->
   </actor>
-</platform>
+</platform>
\ No newline at end of file