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
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
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
${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
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
--- /dev/null
+/* 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;
+}
--- /dev/null
+#!/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'.
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
+
--- /dev/null
+<?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>
# C examples
-foreach(x async-wait
- cloud-two-tasks
+foreach(x cloud-two-tasks
get_sender
process-lifetime
energy-ptask platform-properties
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
if(enable_msg)
foreach(x
- async-wait
app-bittorrent
cloud-two-tasks
host_on_off_processes
+++ /dev/null
-/* 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;
-}
+++ /dev/null
-#!/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
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
-
+++ /dev/null
-<?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>