Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
convert and simplify async-wait
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Mon, 24 Feb 2020 11:57:16 +0000 (12:57 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Mon, 24 Feb 2020 11:57:16 +0000 (12:57 +0100)
15 files changed:
MANIFEST.in
examples/c/CMakeLists.txt
examples/c/async-wait/async-wait.c [new file with mode: 0644]
examples/c/async-wait/async-wait.tesh [new file with mode: 0644]
examples/c/async-wait/async-wait2_d.xml [new file with mode: 0644]
examples/c/async-wait/async-wait3_d.xml [new file with mode: 0644]
examples/c/async-wait/async-wait4_d.xml [new file with mode: 0644]
examples/c/async-wait/async-wait_d.xml [new file with mode: 0644]
teshsuite/msg/CMakeLists.txt
teshsuite/msg/async-wait/async-wait.c [deleted file]
teshsuite/msg/async-wait/async-wait.tesh [deleted file]
teshsuite/msg/async-wait/async-wait2_d.xml [deleted file]
teshsuite/msg/async-wait/async-wait3_d.xml [deleted file]
teshsuite/msg/async-wait/async-wait4_d.xml [deleted file]
teshsuite/msg/async-wait/async-wait_d.xml [deleted file]

index 370bba2..a6e395b 100644 (file)
@@ -45,6 +45,12 @@ include examples/c/app-pingpong/app-pingpong.tesh
 include examples/c/app-pingpong/app-pingpong_d.xml
 include examples/c/app-token-ring/app-token-ring.c
 include examples/c/app-token-ring/app-token-ring.tesh
+include examples/c/async-wait/async-wait.c
+include examples/c/async-wait/async-wait.tesh
+include examples/c/async-wait/async-wait2_d.xml
+include examples/c/async-wait/async-wait3_d.xml
+include examples/c/async-wait/async-wait4_d.xml
+include examples/c/async-wait/async-wait_d.xml
 include examples/c/async-waitall/async-waitall.c
 include examples/c/async-waitall/async-waitall.tesh
 include examples/c/async-waitall/async-waitall_d.xml
@@ -641,12 +647,6 @@ include teshsuite/msg/app-bittorrent/connection.h
 include teshsuite/msg/app-bittorrent/generate.py
 include teshsuite/msg/app-bittorrent/tracker.c
 include teshsuite/msg/app-bittorrent/tracker.h
-include teshsuite/msg/async-wait/async-wait.c
-include teshsuite/msg/async-wait/async-wait.tesh
-include teshsuite/msg/async-wait/async-wait2_d.xml
-include teshsuite/msg/async-wait/async-wait3_d.xml
-include teshsuite/msg/async-wait/async-wait4_d.xml
-include teshsuite/msg/async-wait/async-wait_d.xml
 include teshsuite/msg/cloud-two-tasks/cloud-two-tasks.c
 include teshsuite/msg/cloud-two-tasks/cloud-two-tasks.tesh
 include teshsuite/msg/energy-ptask/energy-ptask.c
index cd8f7b6..864d2cf 100644 (file)
@@ -4,7 +4,7 @@
 foreach(x
         actor-create actor-daemon actor-exiting actor-join actor-kill actor-migrate actor-suspend actor-yield
         app-pingpong app-token-ring 
-        async-waitall async-waitany
+        async-wait async-waitall async-waitany
         cloud-capping cloud-migration cloud-simple
         exec-dvfs
         energy-exec energy-vm
@@ -45,6 +45,10 @@ set(xml_files     ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/actor-create/actor-cr
                                ${CMAKE_CURRENT_SOURCE_DIR}/actor-yield/actor-yield_d.xml
                                ${CMAKE_CURRENT_SOURCE_DIR}/app-chainsend/app-chainsend_d.xml
                                ${CMAKE_CURRENT_SOURCE_DIR}/app-pingpong/app-pingpong_d.xml
+                               ${CMAKE_CURRENT_SOURCE_DIR}/async-wait/async-wait_d.xml
+                               ${CMAKE_CURRENT_SOURCE_DIR}/async-wait/async-wait2_d.xml
+                               ${CMAKE_CURRENT_SOURCE_DIR}/async-wait/async-wait3_d.xml
+                               ${CMAKE_CURRENT_SOURCE_DIR}/async-wait/async-wait4_d.xml
                                ${CMAKE_CURRENT_SOURCE_DIR}/async-waitall/async-waitall_d.xml
                                ${CMAKE_CURRENT_SOURCE_DIR}/async-waitany/async-waitany_d.xml
                                ${CMAKE_CURRENT_SOURCE_DIR}/io-file-remote/io-file-remote_d.xml
@@ -53,7 +57,7 @@ set(xml_files     ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/actor-create/actor-cr
 foreach(x
         actor-create actor-daemon actor-exiting actor-join actor-kill actor-migrate actor-suspend actor-yield
         app-chainsend app-pingpong app-token-ring
-        async-waitall async-waitany
+        async-wait async-waitall async-waitany
         cloud-capping cloud-migration cloud-simple
         exec-dvfs
         energy-exec energy-vm
diff --git a/examples/c/async-wait/async-wait.c b/examples/c/async-wait/async-wait.c
new file mode 100644 (file)
index 0000000..0e1fc40
--- /dev/null
@@ -0,0 +1,112 @@
+/* Copyright (c) 2010-2020. The SimGrid Team. All rights reserved.          */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
+#include "simgrid/actor.h"
+#include "simgrid/comm.h"
+#include "simgrid/engine.h"
+#include "simgrid/mailbox.h"
+
+#include "xbt/asserts.h"
+#include "xbt/log.h"
+#include "xbt/str.h"
+
+#include <stdio.h>
+
+XBT_LOG_NEW_DEFAULT_CATEGORY(async_wait, "Messages specific for this example");
+
+/* Main function of the Sender process */
+static void sender(int argc, char* argv[])
+{
+  xbt_assert(argc == 5, "The sender function expects 4 arguments from the XML deployment file");
+  long messages_count     = xbt_str_parse_int(argv[1], "Invalid amount of messages: %s");  /* - number of messages */
+  double message_size     = xbt_str_parse_double(argv[2], "Invalid message size: %s");     /* - communication cost */
+  double sleep_start_time = xbt_str_parse_double(argv[3], "Invalid sleep start time: %s"); /* - start time */
+  double sleep_test_time  = xbt_str_parse_double(argv[4], "Invalid test time: %s");        /* - test time */
+
+  XBT_INFO("sleep_start_time : %f , sleep_test_time : %f", sleep_start_time, sleep_test_time);
+  sg_mailbox_t mailbox = sg_mailbox_by_name("receiver");
+
+  sg_actor_sleep_for(sleep_start_time);
+  for (int i = 0; i < messages_count; i++) {
+    char* payload = bprintf("Message %d", i);
+
+    /* This actor first sends a message asynchronously with @ref sg_mailbox_put_async. Then, if: */
+    sg_comm_t comm = sg_mailbox_put_async(mailbox, payload, message_size);
+    XBT_INFO("Send '%s' to 'receiver'", payload);
+
+    if (sleep_test_time > 0) {          /* - "test_time" is set to 0, wait on @ref sg_comm_wait */
+      while (sg_comm_test(comm) == 0) { /* - Call @ref sg_comm_test every "sleep_test_time" otherwise */
+        sg_actor_sleep_for(sleep_test_time);
+      }
+    } else {
+      sg_comm_wait(comm);
+    }
+  }
+
+  sg_comm_t comm = sg_mailbox_put_async(mailbox, xbt_strdup("finalize"), 0);
+  XBT_INFO("Send 'finalize' to 'receiver'");
+
+  if (sleep_test_time > 0) {
+    while (sg_comm_test(comm) == 0) {
+      sg_actor_sleep_for(sleep_test_time);
+    }
+  } else {
+    sg_comm_wait(comm);
+  }
+}
+
+/* Receiver process expects 3 arguments: */
+static void receiver(int argc, char* argv[])
+{
+  xbt_assert(argc == 3, "The relay_runner function does not accept any parameter from the XML deployment file");
+  double sleep_start_time = xbt_str_parse_double(argv[1], "Invalid sleep start parameter: %s"); /* - start time */
+  double sleep_test_time  = xbt_str_parse_double(argv[2], "Invalid sleep test parameter: %s");  /* - test time */
+  XBT_INFO("sleep_start_time : %f , sleep_test_time : %f", sleep_start_time, sleep_test_time);
+
+  sg_actor_sleep_for(sleep_start_time); /* This actor first sleeps for "start time" seconds.  */
+
+  sg_mailbox_t mailbox = sg_mailbox_by_name("receiver");
+  void* received       = NULL;
+
+  XBT_INFO("Wait for my first message");
+  while (1) {
+    /* Then it posts asynchronous receives (@ref sg_mailbox_get_async) and*/
+    sg_comm_t comm = sg_mailbox_get_async(mailbox, &received);
+
+    if (sleep_test_time > 0) {          /* - if "test_time" is set to 0, wait on @ref sg_comm_wait */
+      while (sg_comm_test(comm) == 0) { /* - Call @ref sg_comm_test every "sleep_test_time" otherwise */
+        sg_actor_sleep_for(sleep_test_time);
+      }
+    } else {
+      sg_comm_wait(comm);
+    }
+    XBT_INFO("I got a '%s'.", (char*)received);
+
+    if (strcmp((char*)received, "finalize") == 0) { /* If the received task is "finalize", the actor ends */
+      free(received);
+      break;
+    }
+    free(received);
+  }
+}
+
+int main(int argc, char* argv[])
+{
+  simgrid_init(&argc, argv);
+  xbt_assert(argc > 2,
+             "Usage: %s platform_file deployment_file\n"
+             "\tExample: %s msg_platform.xml msg_deployment.xml\n",
+             argv[0], argv[0]);
+
+  simgrid_load_platform(argv[1]); /* - Load the platform description */
+
+  simgrid_register_function("sender", sender);
+  simgrid_register_function("receiver", receiver);
+  simgrid_load_deployment(argv[2]); /* - Deploy the sender and receiver actors */
+
+  simgrid_run(); /* - Run the simulation */
+
+  return 0;
+}
diff --git a/examples/c/async-wait/async-wait.tesh b/examples/c/async-wait/async-wait.tesh
new file mode 100644 (file)
index 0000000..2a4e632
--- /dev/null
@@ -0,0 +1,61 @@
+#!/usr/bin/env tesh
+
+p Test1 sg_comm_test() with Sleep_sender > Sleep_receiver
+
+$ ${bindir:=.}/async-wait-c ${platfdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/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 for my first message
+> [  5.000000] (1:sender@Tremblay) Send 'Message 0' to 'receiver'
+> [  6.100000] (2:receiver@Ruby) I got a 'Message 0'.
+> [  6.100000] (1:sender@Tremblay) Send 'Message 1' to 'receiver'
+> [  7.200000] (2:receiver@Ruby) I got a 'Message 1'.
+> [  7.200000] (1:sender@Tremblay) Send 'Message 2' to 'receiver'
+> [  8.300000] (2:receiver@Ruby) I got a 'Message 2'.
+> [  8.300000] (1:sender@Tremblay) Send 'finalize' to 'receiver'
+> [  8.400000] (2:receiver@Ruby) I got a 'finalize'.
+
+p Test2 sg_comm_test() with Sleep_sender < Sleep_receiver
+
+$ ${bindir:=.}/async-wait-c ${platfdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/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 'Message 0' to 'receiver'
+> [  5.000000] (2:receiver@Ruby) Wait for my first message
+> [  6.100000] (2:receiver@Ruby) I got a 'Message 0'.
+> [  6.100000] (1:sender@Tremblay) Send 'Message 1' to 'receiver'
+> [  7.200000] (2:receiver@Ruby) I got a 'Message 1'.
+> [  7.200000] (1:sender@Tremblay) Send 'Message 2' to 'receiver'
+> [  8.300000] (2:receiver@Ruby) I got a 'Message 2'.
+> [  8.300000] (1:sender@Tremblay) Send 'finalize' to 'receiver'
+> [  8.400000] (2:receiver@Ruby) I got a 'finalize'.
+
+p Test1 sg_comm_wait() with Sleep_sender > Sleep_receiver
+
+$ ${bindir:=.}/async-wait-c ${platfdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/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 for my first message
+> [  5.000000] (1:sender@Tremblay) Send 'Message 0' to 'receiver'
+> [  6.032879] (2:receiver@Ruby) I got a 'Message 0'.
+> [  6.032879] (1:sender@Tremblay) Send 'Message 1' to 'receiver'
+> [  7.065759] (2:receiver@Ruby) I got a 'Message 1'.
+> [  7.065759] (1:sender@Tremblay) Send 'Message 2' to 'receiver'
+> [  8.098638] (2:receiver@Ruby) I got a 'Message 2'.
+> [  8.098638] (1:sender@Tremblay) Send 'finalize' to 'receiver'
+> [  8.100590] (2:receiver@Ruby) I got a 'finalize'.
+
+p Test2 sg_comm_wait() with Sleep_sender < Sleep_receiver
+
+$ ${bindir:=.}/async-wait-c ${platfdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/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 'Message 0' to 'receiver'
+> [  5.000000] (2:receiver@Ruby) Wait for my first message
+> [  6.032879] (2:receiver@Ruby) I got a 'Message 0'.
+> [  6.032879] (1:sender@Tremblay) Send 'Message 1' to 'receiver'
+> [  7.065759] (2:receiver@Ruby) I got a 'Message 1'.
+> [  7.065759] (1:sender@Tremblay) Send 'Message 2' to 'receiver'
+> [  8.098638] (2:receiver@Ruby) I got a 'Message 2'.
+> [  8.098638] (1:sender@Tremblay) Send 'finalize' to 'receiver'
+> [  8.100590] (2:receiver@Ruby) I got a 'finalize'.
diff --git a/examples/c/async-wait/async-wait2_d.xml b/examples/c/async-wait/async-wait2_d.xml
new file mode 100644 (file)
index 0000000..25a58b7
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "https://simgrid.org/simgrid.dtd">
+<platform version="4.1">
+  <!-- The master actor (with some arguments) -->
+  <actor host="Tremblay" function="sender">
+    <argument value="3"/>       <!-- Number of messages -->
+    <argument value="498E6"/> <!-- message size -->
+    <argument value="1"/>       <!-- Sleep_start_time -->
+    <argument value="0.1"/>     <!-- Time for test -->
+  </actor>
+  <!-- The receiver processes -->
+  <actor host="Ruby" function="receiver">
+    <argument value="5"/>       <!-- Sleep_start_time -->
+    <argument value="0.1"/>     <!-- Time for test -->
+  </actor>
+</platform>
diff --git a/examples/c/async-wait/async-wait3_d.xml b/examples/c/async-wait/async-wait3_d.xml
new file mode 100644 (file)
index 0000000..77b755a
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "https://simgrid.org/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="498E6"/> <!-- Communication size of tasks -->
+    <argument value="5"/>       <!-- Sleep_start_time -->
+    <argument value="0"/>       <!-- Time for test -->
+  </actor>
+  <!-- The receiver processes -->
+  <actor host="Ruby" function="receiver">
+    <argument value="1"/>       <!-- Sleep_start_time -->
+    <argument value="0"/>       <!-- Time for test -->
+  </actor>
+</platform>
diff --git a/examples/c/async-wait/async-wait4_d.xml b/examples/c/async-wait/async-wait4_d.xml
new file mode 100644 (file)
index 0000000..a8dfbf6
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "https://simgrid.org/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="498E6"/> <!-- Communication size of tasks -->
+    <argument value="1"/>       <!-- Sleep_start_time -->
+    <argument value="0"/>       <!-- Time for test -->
+  </actor>
+  <!-- The receiver processes -->
+  <actor host="Ruby" function="receiver">
+    <argument value="5"/>       <!-- Sleep_start_time -->
+    <argument value="0"/>       <!-- Time for test -->
+  </actor>
+</platform>
+
diff --git a/examples/c/async-wait/async-wait_d.xml b/examples/c/async-wait/async-wait_d.xml
new file mode 100644 (file)
index 0000000..f46d5df
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "https://simgrid.org/simgrid.dtd">
+<platform version="4.1">
+  <!-- The master actor (with some arguments) -->
+  <actor host="Tremblay" function="sender">
+    <argument value="3"/>     <!-- Number of messages -->
+    <argument value="498E6"/> <!-- message size -->
+    <argument value="5"/>     <!-- Sleep_start_time -->
+    <argument value="0.1"/>   <!-- Time for test -->
+  </actor>
+  <!-- The receiver processes -->
+  <actor host="Ruby" function="receiver">
+    <argument value="1"/>       <!-- Sleep_start_time -->
+    <argument value="0.1"/>     <!-- Time for test -->
+  </actor>
+</platform>
index 5b73034..e7b0054 100644 (file)
@@ -1,6 +1,5 @@
 # C examples
-foreach(x async-wait
-          cloud-two-tasks
+foreach(x cloud-two-tasks
           get_sender
           process-lifetime
           energy-ptask platform-properties
@@ -46,10 +45,6 @@ set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/app-bittorrent/ap
                                    PARENT_SCOPE)
 set(bin_files    ${bin_files}      ${CMAKE_CURRENT_SOURCE_DIR}/app-bittorrent/generate.py                  PARENT_SCOPE)
 set(xml_files     ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/app-bittorrent/app-bittorrent_d.xml
-                                   ${CMAKE_CURRENT_SOURCE_DIR}/async-wait/async-wait_d.xml
-                                   ${CMAKE_CURRENT_SOURCE_DIR}/async-wait/async-wait2_d.xml
-                                   ${CMAKE_CURRENT_SOURCE_DIR}/async-wait/async-wait3_d.xml
-                                   ${CMAKE_CURRENT_SOURCE_DIR}/async-wait/async-wait4_d.xml
                                    ${CMAKE_CURRENT_SOURCE_DIR}/platform-properties/platform-properties_d.xml
                                    ${CMAKE_CURRENT_SOURCE_DIR}/process-lifetime/baseline_d.xml
                                    ${CMAKE_CURRENT_SOURCE_DIR}/process-lifetime/kill_d.xml
@@ -71,7 +66,6 @@ set(xml_files     ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/app-bittorrent/ap
 
 if(enable_msg)
   foreach(x 
-    async-wait
     app-bittorrent
     cloud-two-tasks
     host_on_off_processes
diff --git a/teshsuite/msg/async-wait/async-wait.c b/teshsuite/msg/async-wait/async-wait.c
deleted file mode 100644 (file)
index f3047af..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Copyright (c) 2010-2020. The SimGrid Team. All rights reserved.          */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include "simgrid/msg.h"
-
-#include <stdio.h> /* snprintf */
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_async_wait, "Messages specific for this msg example");
-
-/* Main function of the Sender process */
-static int sender(int argc, char* argv[])
-{
-  xbt_assert(argc == 7, "The sender function expects 6 arguments from the XML deployment file");
-  long number_of_tasks    = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");       /* - number of tasks */
-  double task_comp_size   = xbt_str_parse_double(argv[2], "Invalid computational size: %s"); /* - computational cost */
-  double task_comm_size   = xbt_str_parse_double(argv[3], "Invalid communication size: %s"); /* - communication cost */
-  long receivers_count    = xbt_str_parse_int(argv[4], "Invalid amount of receivers: %s");   /* - number of receivers */
-  double sleep_start_time = xbt_str_parse_double(argv[5], "Invalid sleep start time: %s");   /* - start time */
-  double sleep_test_time  = xbt_str_parse_double(argv[6], "Invalid test time: %s");          /* - test time */
-
-  XBT_INFO("sleep_start_time : %f , sleep_test_time : %f", sleep_start_time, sleep_test_time);
-
-  MSG_process_sleep(sleep_start_time);
-  for (int i = 0; i < number_of_tasks; i++) {
-    char mailbox[80];
-    char taskname[80];
-
-    snprintf(mailbox, 79, "receiver-%ld", i % receivers_count);
-    snprintf(taskname, 79, "Task_%d", i);
-
-    /* This process first creates a task and send it asynchronously with @ref MSG_task_isend. Then, if: */
-    msg_task_t task = MSG_task_create(taskname, task_comp_size, task_comm_size, NULL);
-    msg_comm_t comm = MSG_task_isend(task, mailbox);
-    XBT_INFO("Send to receiver-%ld Task_%d", i % receivers_count, i);
-
-    if (sleep_test_time > 0) {           /* - "test_time" is set to 0, wait on @ref MSG_comm_wait */
-      while (MSG_comm_test(comm) == 0) { /* - Call @ref MSG_comm_test every "test_time" otherwise */
-        MSG_process_sleep(sleep_test_time);
-      }
-    } else {
-      MSG_comm_wait(comm, -1);
-    }
-    MSG_comm_destroy(comm);
-  }
-
-  for (int i = 0; i < receivers_count; i++) {
-    char mailbox[80];
-    snprintf(mailbox, 79, "receiver-%d", i);
-    msg_task_t task = MSG_task_create("finalize", 0, 0, 0);
-    msg_comm_t comm = MSG_task_isend(task, mailbox);
-    XBT_INFO("Send to receiver-%d finalize", i);
-    if (sleep_test_time > 0) {
-      while (MSG_comm_test(comm) == 0) {
-        MSG_process_sleep(sleep_test_time);
-      }
-    } else {
-      MSG_comm_wait(comm, -1);
-    }
-    MSG_comm_destroy(comm);
-  }
-
-  XBT_INFO("Goodbye now!");
-  return 0;
-}
-
-/* Receiver process expects 3 arguments: */
-static int receiver(int argc, char* argv[])
-{
-  xbt_assert(argc == 4, "The relay_runner function does not accept any parameter from the XML deployment file");
-  int id                  = xbt_str_parse_int(argv[1], "Invalid id: %s");                       /* - unique id */
-  double sleep_start_time = xbt_str_parse_double(argv[2], "Invalid sleep start parameter: %s"); /* - start time */
-  double sleep_test_time  = xbt_str_parse_double(argv[3], "Invalid sleep test parameter: %s");  /* - test time */
-  XBT_INFO("sleep_start_time : %f , sleep_test_time : %f", sleep_start_time, sleep_test_time);
-
-  MSG_process_sleep(sleep_start_time); /* This process first sleeps for "start time" seconds.  */
-
-  char mailbox[80];
-  snprintf(mailbox, 79, "receiver-%d", id);
-  while (1) {
-    msg_task_t task = NULL;
-    msg_comm_t comm = MSG_task_irecv(&task, mailbox); /* Then it posts asynchronous receives (@ref MSG_task_irecv) and*/
-    XBT_INFO("Wait to receive a task");
-
-    if (sleep_test_time > 0) {           /* - if "test_time" is set to 0, wait on @ref MSG_comm_wait */
-      while (MSG_comm_test(comm) == 0) { /* - Call @ref MSG_comm_test every "test_time" otherwise */
-        MSG_process_sleep(sleep_test_time);
-      }
-    } else {
-      msg_error_t res = MSG_comm_wait(comm, -1);
-      xbt_assert(res == MSG_OK, "MSG_task_get failed");
-    }
-    MSG_comm_destroy(comm);
-
-    XBT_INFO("Received \"%s\"", MSG_task_get_name(task));
-    if (strcmp(MSG_task_get_name(task), "finalize") == 0) { /* If the received task is "finalize", the process ends */
-      MSG_task_destroy(task);
-      break;
-    }
-
-    XBT_INFO("Processing \"%s\"", MSG_task_get_name(task)); /* Otherwise, the task is processed */
-    MSG_task_execute(task);
-    XBT_INFO("\"%s\" done", MSG_task_get_name(task));
-    MSG_task_destroy(task);
-  }
-  XBT_INFO("I'm done. See you!");
-  return 0;
-}
-
-int main(int argc, char* argv[])
-{
-  MSG_init(&argc, argv);
-  xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n"
-                       "\tExample: %s msg_platform.xml msg_deployment.xml\n",
-             argv[0], argv[0]);
-
-  MSG_create_environment(argv[1]); /* - Load the platform description */
-
-  MSG_function_register("sender", sender);
-  MSG_function_register("receiver", receiver);
-  MSG_launch_application(argv[2]); /* - Deploy the sender and receiver processes */
-
-  msg_error_t res = MSG_main(); /* - Run the simulation */
-
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-
-  return res != MSG_OK;
-}
diff --git a/teshsuite/msg/async-wait/async-wait.tesh b/teshsuite/msg/async-wait/async-wait.tesh
deleted file mode 100644 (file)
index daab871..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/env tesh
-
-p Test1 MSG_comm_test() with Sleep_sender > Sleep_receiver
-
-$ ${bindir:=.}/async-wait ${platfdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/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
-
-$ ${bindir:=.}/async-wait ${platfdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/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
-
-$ ${bindir:=.}/async-wait ${platfdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/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
-
-$ ${bindir:=.}/async-wait ${platfdir:=.}/small_platform_fatpipe.xml ${srcdir:=.}/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
diff --git a/teshsuite/msg/async-wait/async-wait2_d.xml b/teshsuite/msg/async-wait/async-wait2_d.xml
deleted file mode 100644 (file)
index ed5bd4a..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "https://simgrid.org/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/teshsuite/msg/async-wait/async-wait3_d.xml b/teshsuite/msg/async-wait/async-wait3_d.xml
deleted file mode 100644 (file)
index d34251f..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "https://simgrid.org/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/teshsuite/msg/async-wait/async-wait4_d.xml b/teshsuite/msg/async-wait/async-wait4_d.xml
deleted file mode 100644 (file)
index 98a66e9..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "https://simgrid.org/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>
-
diff --git a/teshsuite/msg/async-wait/async-wait_d.xml b/teshsuite/msg/async-wait/async-wait_d.xml
deleted file mode 100644 (file)
index 7c910c7..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "https://simgrid.org/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.1"/>      <!-- Time for test -->
-  </actor>
-  <!-- The receiver processes -->
-  <actor host="Ruby" function="receiver">
-    <argument value="0"/>
-    <argument value="1"/>         <!-- Sleep_start_time -->
-    <argument value="0.1"/>      <!-- Time for test -->
-  </actor>
-</platform>