Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 26 Feb 2016 21:42:25 +0000 (22:42 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 26 Feb 2016 21:42:25 +0000 (22:42 +0100)
examples/msg/parallel_task/parallel_task.c
examples/msg/priority/priority.c
examples/msg/sendrecv/CMakeLists.txt
examples/msg/sendrecv/sendrecv.c
examples/msg/sendrecv/sendrecv_CLM03.tesh
examples/msg/sendrecv/sendrecv_CLM03_main.tesh
examples/msg/sendrecv/sendrecv_KCCFLN05.tesh [deleted file]
examples/msg/sendrecv/sendrecv_Reno.tesh
examples/msg/sendrecv/sendrecv_Vegas.tesh
examples/msg/sendrecv/sendrecv_main.c
examples/msg/suspend/suspend.c

index 13866dd..e291efd 100644 (file)
@@ -4,32 +4,21 @@
 /* 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 <stdio.h>
-#include "simgrid/msg.h"        /* Yeah! If you want to use msg, you need to include simgrid/msg.h */
-#include "xbt/sysdep.h"         /* calloc, printf */
+#include "simgrid/msg.h"
 
-/* Create a log channel to have nice outputs. */
-#include "xbt/log.h"
-#include "xbt/asserts.h"
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
-                             "Messages specific for this msg example");
+XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example");
 
 /** @addtogroup MSG_examples
  * 
- * - <b>parallel_task/parallel_task.c</b>: Demonstrates the use of
- *   @ref MSG_parallel_task_create, to create special tasks that run
- *   on several hosts at the same time. The resulting simulations are
- *   very close to what can be achieved in @ref SD_API, but still
- *   allows to use the other features of MSG (it'd be cool to be able
- *   to mix interfaces, but it's not possible ATM).
+ * - <b>parallel_task/parallel_task.c</b>: Demonstrates the use of @ref MSG_parallel_task_create, to create special
+ *   tasks that run on several hosts at the same time. The resulting simulations are very close to what can be
+ *   achieved in @ref SD_API, but still allows to use the other features of MSG (it'd be cool to be able to mix
+ *   interfaces, but it's not possible ATM).
  */
 
 
-/** Function in charge of running the example (that's a simgrid process) */
 static int runner(int argc, char *argv[])
 {
-  int i, j;
-
   /* Retrieve the list of all hosts as an array of hosts */
   xbt_dynar_t slaves_dynar = MSG_hosts_as_dynar();
   int slaves_count = xbt_dynar_length(slaves_dynar);
@@ -39,24 +28,25 @@ static int runner(int argc, char *argv[])
   double *computation_amounts = xbt_new0(double, slaves_count);
   double *communication_amounts = xbt_new0(double, slaves_count * slaves_count);
 
-  for (i = 0; i < slaves_count; i++)
+  for (int i = 0; i < slaves_count; i++)
     computation_amounts[i] = 1e9; // 1 Gflop
 
-  for (i = 0; i < slaves_count; i++)
-    for (j = i + 1; j < slaves_count; j++)
+  for (int i = 0; i < slaves_count; i++)
+    for (int j = i + 1; j < slaves_count; j++)
       communication_amounts[i * slaves_count + j] = 1e7; // 10 MB
 
-  msg_task_t ptask = MSG_parallel_task_create("parallel task",
-      slaves_count, slaves, computation_amounts, communication_amounts, NULL /* no specific data to attach */);
+  msg_task_t ptask =
+    MSG_parallel_task_create("parallel task", slaves_count, slaves, computation_amounts, communication_amounts, NULL);
   MSG_parallel_task_execute(ptask);
   MSG_task_destroy(ptask);
   /* The arrays communication_amounts and computation_amounts are not to be freed manually */
 
   XBT_INFO("Then, build a parallel task involving only computations and no communication (1 Gflop per node)");
   computation_amounts = xbt_new0(double, slaves_count);
-  for (i = 0; i < slaves_count; i++)
+  for (int i = 0; i < slaves_count; i++)
     computation_amounts[i] = 1e9; // 1 Gflop
-  ptask = MSG_parallel_task_create("parallel exec", slaves_count, slaves, computation_amounts, NULL/* no comm */, NULL /* no data */);
+  ptask =
+    MSG_parallel_task_create("parallel exec", slaves_count, slaves, computation_amounts, NULL/* no comm */, NULL);
   MSG_parallel_task_execute(ptask);
   MSG_task_destroy(ptask);
 
@@ -65,7 +55,7 @@ static int runner(int argc, char *argv[])
   computation_amounts[0] = 1e9; // 1 Gflop
   msg_host_t *remote = xbt_new(msg_host_t,1);
   remote[0] = slaves[1];
-  ptask = MSG_parallel_task_create("remote exec", 1, remote, computation_amounts, NULL/* no comm */, NULL /* no data */);
+  ptask = MSG_parallel_task_create("remote exec", 1, remote, computation_amounts, NULL/* no comm */, NULL);
   MSG_parallel_task_execute(ptask);
   MSG_task_destroy(ptask);
   free(remote);
index b184bf5..6b951e4 100644 (file)
@@ -4,22 +4,13 @@
 /* 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 <stdio.h>
-#include "simgrid/msg.h"            /* Yeah! If you want to use msg, you need to include simgrid/msg.h */
-#include "xbt/sysdep.h"         /* calloc, printf */
-
-/* Create a log channel to have nice outputs. */
-#include "xbt/log.h"
-#include "xbt/asserts.h"
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
-                             "Messages specific for this msg example");
+#include "simgrid/msg.h"
+XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example");
 
 /** @addtogroup MSG_examples
  * 
  * - <b>priority/priority.c</b>: Demonstrates the use of @ref
- *   MSG_task_set_priority to change the computation priority of a
- *   given task.
- *
+ *   MSG_task_set_priority to change the computation priority of a  given task.
  */
 
 static int test(int argc, char *argv[])
@@ -33,8 +24,7 @@ static int test(int argc, char *argv[])
   res = sscanf(argv[2], "%lg", &priority);
   xbt_assert(res, "Invalid argument %s\n", argv[2]);
 
-  XBT_INFO("Hello! Running a task of size %g with priority %g",
-        computation_amount, priority);
+  XBT_INFO("Hello! Running a task of size %g with priority %g", computation_amount, priority);
   task = MSG_task_create("Task", computation_amount, 0.0, NULL);
   MSG_task_set_priority(task, priority);
 
@@ -45,44 +35,21 @@ static int test(int argc, char *argv[])
   return 0;
 }
 
-static msg_error_t test_all(const char *platform_file,
-                            const char *application_file)
-{
-  msg_error_t res = MSG_OK;
-
-  {                             /*  Simulation setting */
-    MSG_create_environment(platform_file);
-  }
-  {                             /*   Application deployment */
-    MSG_function_register("test", test);
-    MSG_launch_application(application_file);
-  }
-  res = MSG_main();
-
-  XBT_INFO("Simulation time %g", MSG_get_clock());
-  return res;
-}
-
 int main(int argc, char *argv[])
 {
   msg_error_t res = MSG_OK;
 
-#ifdef _MSC_VER
-  unsigned int prev_exponent_format =
-      _set_output_format(_TWO_DIGIT_EXPONENT);
-#endif
-
-
   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]);
-  
-  res = test_all(argv[1], argv[2]);
+             "\tExample: %s msg_platform.xml msg_deployment.xml\n", argv[0], argv[0]);
+
+  MSG_create_environment(argv[1]);
+  MSG_function_register("test", test);
+  MSG_launch_application(argv[2]);
 
-#ifdef _MSC_VER
-  _set_output_format(prev_exponent_format);
-#endif
+  res = MSG_main();
+
+  XBT_INFO("Simulation time %g", MSG_get_clock());
 
   return res != MSG_OK;
 }
index d9597cc..62f6367 100644 (file)
@@ -7,7 +7,6 @@ set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv_CLM03_main.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv_CLM03.tesh
-  ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv_KCCFLN05.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv_Reno.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/sendrecv_Vegas.tesh
   PARENT_SCOPE)
index fbff386..1c3f625 100644 (file)
@@ -4,14 +4,7 @@
 /* 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 <stdio.h>
-
-#include "simgrid/msg.h"            /* Yeah! If you want to use msg, you need to include simgrid/msg.h */
-#include "xbt/sysdep.h"         /* calloc */
-
-/* Create a log channel to have nice outputs. */
-#include "xbt/log.h"
-#include "xbt/asserts.h"
+#include "simgrid/msg.h"
 
 /** @addtogroup MSG_examples
  *
  *    directory are instructive concerning the way to pass options to the simulators (as described in \ref options).
  */
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
-                             "Messages specific for this msg example");
-
-int sender(int argc, char *argv[]);
-int receiver(int argc, char *argv[]);
-
-msg_error_t test_all(const char *platform_file,
-                     const char *application_file);
+XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example");
 
 double task_comm_size_lat = 1;
 double task_comm_size_bw = 10e8;
 
-/** Emitter function  */
-int sender(int argc, char *argv[])
+static int sender(int argc, char *argv[])
 {
   msg_host_t host = NULL;
   double time;
@@ -43,9 +28,6 @@ int sender(int argc, char *argv[])
   char sprintf_buffer_bw[64];
 
   XBT_INFO("sender");
-
-  /*host = xbt_new0(msg_host_t,1); */
-
   XBT_INFO("host = %s", argv[1]);
 
   host = MSG_host_by_name(argv[1]);
@@ -55,8 +37,7 @@ int sender(int argc, char *argv[])
   /* Latency */
   time = MSG_get_clock();
   sprintf(sprintf_buffer_la, "latency task");
-  task_la =
-      MSG_task_create(sprintf_buffer_la, 0.0, task_comm_size_lat, NULL);
+  task_la = MSG_task_create(sprintf_buffer_la, 0.0, task_comm_size_lat, NULL);
   task_la->data = xbt_new(double, 1);
   *(double *) task_la->data = time;
   XBT_INFO("task_la->data = %e", *((double *) task_la->data));
@@ -65,36 +46,31 @@ int sender(int argc, char *argv[])
   /* Bandwidth */
   time = MSG_get_clock();
   sprintf(sprintf_buffer_bw, "bandwidth task");
-  task_bw =
-      MSG_task_create(sprintf_buffer_bw, 0.0, task_comm_size_bw, NULL);
+  task_bw = MSG_task_create(sprintf_buffer_bw, 0.0, task_comm_size_bw, NULL);
   task_bw->data = xbt_new(double, 1);
   *(double *) task_bw->data = time;
   XBT_INFO("task_bw->data = %e", *((double *) task_bw->data));
   MSG_task_send(task_bw, argv[1]);
 
   return 0;
-}                               /* end_of_client */
+}
 
-/** Receiver function  */
-int receiver(int argc, char *argv[])
+static int receiver(int argc, char *argv[])
 {
-  double time, time1, sender_time;
   msg_task_t task_la = NULL;
   msg_task_t task_bw = NULL;
-  int a;
-  double communication_time = 0;
 
   XBT_INFO("receiver");
 
   /* Get Latency */
-  a = MSG_task_receive(&task_la,MSG_host_get_name(MSG_host_self()));
+  int a = MSG_task_receive(&task_la,MSG_host_get_name(MSG_host_self()));
 
   xbt_assert(a == MSG_OK, "Unexpected behavior");
 
-  time1 = MSG_get_clock();
-  sender_time = *((double *) (task_la->data));
-  time = sender_time;
-  communication_time = time1 - time;
+  double time1 = MSG_get_clock();
+  double sender_time = *((double *) (task_la->data));
+  double time = sender_time;
+  double communication_time = time1 - time;
   XBT_INFO("Task received : %s", task_la->name);
   xbt_free(task_la->data);
   MSG_task_destroy(task_la);
@@ -103,7 +79,6 @@ int receiver(int argc, char *argv[])
 
   /* Get Bandwidth */
   a = MSG_task_receive(&task_bw,MSG_host_get_name(MSG_host_self()));
-
   xbt_assert(a == MSG_OK, "Unexpected behavior");
 
   time1 = MSG_get_clock();
@@ -117,54 +92,26 @@ int receiver(int argc, char *argv[])
   XBT_INFO("--- bw %f ----", task_comm_size_bw / communication_time);
 
   return 0;
-}                               /* end_of_receiver */
+}
 
-
-/** Test function */
-msg_error_t test_all(const char *platform_file,
-                     const char *application_file)
+int main(int argc, char *argv[])
 {
   msg_error_t res = MSG_OK;
 
-  XBT_INFO("test_all");
+  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]);
 
-  /*  Simulation setting */
-  MSG_create_environment(platform_file);
+  MSG_create_environment(argv[1]);
 
-  /*   Application deployment */
   MSG_function_register("sender", sender);
   MSG_function_register("receiver", receiver);
 
-  MSG_launch_application(application_file);
+  MSG_launch_application(argv[2]);
 
   res = MSG_main();
 
-  return res;
-}                               /* end_of_test_all */
-
-
-/** Main function */
-int main(int argc, char *argv[])
-{
-  msg_error_t res = MSG_OK;
-
-#ifdef _MSC_VER
-  unsigned int prev_exponent_format =
-      _set_output_format(_TWO_DIGIT_EXPONENT);
-#endif
-
-  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]);
-
-  res = test_all(argv[1], argv[2]);
-
   XBT_INFO("Total simulation time: %e", MSG_get_clock());
-
-#ifdef _MSC_VER
-  _set_output_format(prev_exponent_format);
-#endif
-
-  return res != MSG_OK;
-}                               /* end_of_main */
+  return res!=MSG_OK;
+}
index eb9d53f..1012f2f 100644 (file)
@@ -6,7 +6,6 @@ p Testing the deprecated CM02 network model
 $ $SG_TEST_EXENV sendrecv/sendrecv$EXEEXT ${srcdir:=.}/../platforms/small_platform.xml ${srcdir:=.}/sendrecv/deployment_sendrecv.xml --cfg=cpu/model:Cas01 --cfg=network/model:CM02 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:maestro@) Configuration change: Set 'cpu/model' to 'Cas01'
 > [  0.000000] (0:maestro@) Configuration change: Set 'network/model' to 'CM02'
-> [  0.000000] (0:maestro@) test_all
 > [  0.000000] (1:sender@Tremblay) sender
 > [  0.000000] (1:sender@Tremblay) host = Jupiter
 > [  0.000000] (1:sender@Tremblay) task_la->data = 0.000000e+00
@@ -15,7 +14,7 @@ $ $SG_TEST_EXENV sendrecv/sendrecv$EXEEXT ${srcdir:=.}/../platforms/small_platfo
 > [  0.001462] (2:receiver@Jupiter) Communic. time 1.461656e-03
 > [  0.001462] (2:receiver@Jupiter) --- la 0.001462 ----
 > [  0.001462] (1:sender@Tremblay) task_bw->data = 1.461656e-03
+> [138.703988] (0:maestro@) Total simulation time: 1.387040e+02
 > [138.703988] (2:receiver@Jupiter) Task received : bandwidth task
 > [138.703988] (2:receiver@Jupiter) Communic. time 1.387025e+02
 > [138.703988] (2:receiver@Jupiter) --- bw 7209674.030423 ----
-> [138.703988] (0:maestro@) Total simulation time: 1.387040e+02
index 8cfd784..683db72 100644 (file)
@@ -6,7 +6,6 @@ p Testing the deprecated CM02 network model
 $ $SG_TEST_EXENV sendrecv/sendrecv_main$EXEEXT ${srcdir:=.}/../platforms/small_platform.xml ${srcdir:=.}/sendrecv/deployment_sendrecv_main.xml --cfg=cpu/model:Cas01 --cfg=network/model:CM02 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:maestro@) Configuration change: Set 'cpu/model' to 'Cas01'
 > [  0.000000] (0:maestro@) Configuration change: Set 'network/model' to 'CM02'
-> [  0.000000] (0:maestro@) test_all
 > [  0.000000] (1:sender@Tremblay) sender
 > [  0.000000] (1:sender@Tremblay) host = Jupiter
 > [  0.000000] (1:sender@Tremblay) task_la->data = 0.000000e+00
@@ -15,7 +14,7 @@ $ $SG_TEST_EXENV sendrecv/sendrecv_main$EXEEXT ${srcdir:=.}/../platforms/small_p
 > [  0.001462] (2:receiver@Jupiter) Communic. time 1.461656e-03
 > [  0.001462] (2:receiver@Jupiter) --- la 0.001462 ----
 > [  0.001462] (1:sender@Tremblay) task_bw->data = 1.461656e-03
+> [138.703988] (0:maestro@) Total simulation time: 1.387040e+02
 > [138.703988] (2:receiver@Jupiter) Task received : bandwidth task
 > [138.703988] (2:receiver@Jupiter) Communic. time 1.387025e+02
 > [138.703988] (2:receiver@Jupiter) --- bw 7209674.030423 ----
-> [138.703988] (0:maestro@) Total simulation time: 1.387040e+02
diff --git a/examples/msg/sendrecv/sendrecv_KCCFLN05.tesh b/examples/msg/sendrecv/sendrecv_KCCFLN05.tesh
deleted file mode 100644 (file)
index 2355d9c..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#! ./tesh
-
-p Testing the surf network maxmin fairness model
-
-$ $SG_TEST_EXENV sendrecv/sendrecv$EXEEXT ${srcdir:=.}/sendrecv/platform_sendrecv.xml ${srcdir:=.}/sendrecv/deployment_sendrecv.xml
-> [0.000000] [msg_test/INFO] test_all
-> [Inmos:sender:(1) 0.000000] [msg_test/INFO] sender
-> [Inmos:sender:(1) 0.000000] [msg_test/INFO] host = Bellevue
-> [Inmos:sender:(1) 0.000000] [msg_test/INFO] task_la->data = 0.000000e+00
-> [Bellevue:receiver:(2) 0.000000] [msg_test/INFO] receiver
-> [Inmos:sender:(1) 0.100100] [msg_test/INFO] task_bw->data = 1.001000e-01
-> [Bellevue:receiver:(2) 0.100100] [msg_test/INFO] Task received : latency task
-> [Bellevue:receiver:(2) 0.100100] [msg_test/INFO] Communic. time 1.001000e-01
-> [Bellevue:receiver:(2) 0.100100] [msg_test/INFO] --- la 0.100100 ----
-> [Bellevue:receiver:(2) 10000.200100] [msg_test/INFO] Task received : bandwidth task
-> [Bellevue:receiver:(2) 10000.200100] [msg_test/INFO] Communic. time 1.000010e+04
-> [Bellevue:receiver:(2) 10000.200100] [msg_test/INFO] --- bw 99999.000010 ----
-> [10000.200100] [msg_test/INFO] Total simulation time: 1.000020e+04
index b67abaa..cd6a6ac 100644 (file)
@@ -7,7 +7,6 @@ $ $SG_TEST_EXENV sendrecv/sendrecv$EXEEXT ${srcdir:=.}/../platforms/small_platfo
 > [  0.000000] (0:maestro@) Configuration change: Set 'host/model' to 'compound'
 > [  0.000000] (0:maestro@) Configuration change: Set 'cpu/model' to 'Cas01'
 > [  0.000000] (0:maestro@) Configuration change: Set 'network/model' to 'Reno'
-> [  0.000000] (0:maestro@) test_all
 > [  0.000000] (1:sender@Tremblay) sender
 > [  0.000000] (1:sender@Tremblay) host = Jupiter
 > [  0.000000] (1:sender@Tremblay) task_la->data = 0.000000e+00
index 47f4e60..3f8202b 100644 (file)
@@ -7,7 +7,6 @@ $ $SG_TEST_EXENV sendrecv/sendrecv$EXEEXT ${srcdir:=.}/../platforms/small_platfo
 > [  0.000000] (0:maestro@) Configuration change: Set 'host/model' to 'compound'
 > [  0.000000] (0:maestro@) Configuration change: Set 'cpu/model' to 'Cas01'
 > [  0.000000] (0:maestro@) Configuration change: Set 'network/model' to 'Vegas'
-> [  0.000000] (0:maestro@) test_all
 > [  0.000000] (1:sender@Tremblay) sender
 > [  0.000000] (1:sender@Tremblay) host = Jupiter
 > [  0.000000] (1:sender@Tremblay) task_la->data = 0.000000e+00
index 6846934..859f145 100644 (file)
@@ -4,33 +4,20 @@
 /* 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 <stdio.h>
-
-#include "simgrid/msg.h"            /* Yeah! If you want to use msg, you need to include simgrid/msg.h */
-#include "xbt/sysdep.h"         /* calloc */
-
-/* Create a log channel to have nice outputs. */
-#include "xbt/log.h"
-#include "xbt/asserts.h"
+#include "simgrid/msg.h"
 
 /** @addtogroup MSG_examples
  *
- *  - <b>sendrecv/sendrecv.c: Ping-pong example</b>. It's hard to
- *    think of a simpler example. The tesh files laying in the
- *    directory are instructive concerning the way to pass options to the simulators (as described in \ref options).
+ *  - <b>sendrecv/sendrecv.c: Ping-pong example</b>. It's hard to think of a simpler example. The tesh files laying in
+ *    the directory are instructive concerning the way to pass options to the simulators (as described in \ref options).
  */
 
-XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
-                             "Messages specific for this msg example");
-
-int sender(int argc, char *argv[]);
-int receiver(int argc, char *argv[]);
+XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example");
 
 double task_comm_size_lat = 1;
 double task_comm_size_bw = 10e8;
 
-/** Emitter function  */
-int sender(int argc, char *argv[])
+static int sender(int argc, char *argv[])
 {
   msg_host_t host = NULL;
   double time;
@@ -40,9 +27,6 @@ int sender(int argc, char *argv[])
   char sprintf_buffer_bw[64];
 
   XBT_INFO("sender");
-
-  /*host = xbt_new0(msg_host_t,1); */
-
   XBT_INFO("host = %s", argv[1]);
 
   host = MSG_host_by_name(argv[1]);
@@ -55,8 +39,7 @@ int sender(int argc, char *argv[])
   /* Latency */
   time = MSG_get_clock();
   sprintf(sprintf_buffer_la, "latency task");
-  task_la =
-      MSG_task_create(sprintf_buffer_la, 0.0, task_comm_size_lat, NULL);
+  task_la = MSG_task_create(sprintf_buffer_la, 0.0, task_comm_size_lat, NULL);
   task_la->data = xbt_new(double, 1);
   *(double *) task_la->data = time;
   XBT_INFO("task_la->data = %e", *((double *) task_la->data));
@@ -65,62 +48,51 @@ int sender(int argc, char *argv[])
   /* Bandwidth */
   time = MSG_get_clock();
   sprintf(sprintf_buffer_bw, "bandwidth task");
-  task_bw =
-      MSG_task_create(sprintf_buffer_bw, 0.0, task_comm_size_bw, NULL);
+  task_bw = MSG_task_create(sprintf_buffer_bw, 0.0, task_comm_size_bw, NULL);
   task_bw->data = xbt_new(double, 1);
   *(double *) task_bw->data = time;
   XBT_INFO("task_bw->data = %e", *((double *) task_bw->data));
   MSG_task_send(task_bw, argv[1]);
 
   return 0;
-}                               /* end_of_client */
+}
 
-/** Receiver function  */
-int receiver(int argc, char *argv[])
+static int receiver(int argc, char *argv[])
 {
-  double time, time1, sender_time;
   msg_task_t task_la = NULL;
   msg_task_t task_bw = NULL;
-  int a;
-  double communication_time = 0;
 
   XBT_INFO("receiver");
 
   /* Get Latency */
-  a = MSG_task_receive(&task_la,MSG_host_get_name(MSG_host_self()));
-  if (a == MSG_OK) {
-    time1 = MSG_get_clock();
-    sender_time = *((double *) (task_la->data));
-    time = sender_time;
-    communication_time = time1 - time;
-    XBT_INFO("Task received : %s", task_la->name);
-    xbt_free(task_la->data);
-    MSG_task_destroy(task_la);
-    XBT_INFO("Communic. time %e", communication_time);
-    XBT_INFO("--- la %f ----", communication_time);
-  } else {
-    xbt_die("Unexpected behavior");
-  }
+  int a = MSG_task_receive(&task_la,MSG_host_get_name(MSG_host_self()));
+  xbt_assert(a == MSG_OK, "Unexpected behavior");
+
+  double time1 = MSG_get_clock();
+  double sender_time = *((double *) (task_la->data));
+  double time = sender_time;
+  double communication_time = time1 - time;
+  XBT_INFO("Task received : %s", task_la->name);
+  xbt_free(task_la->data);
+  MSG_task_destroy(task_la);
+  XBT_INFO("Communic. time %e", communication_time);
+  XBT_INFO("--- la %f ----", communication_time);
 
   /* Get Bandwidth */
   a = MSG_task_receive(&task_bw,MSG_host_get_name(MSG_host_self()));
-  if (a == MSG_OK) {
-    time1 = MSG_get_clock();
-    sender_time = *((double *) (task_bw->data));
-    time = sender_time;
-    communication_time = time1 - time;
-    XBT_INFO("Task received : %s", task_bw->name);
-    xbt_free(task_bw->data);
-    MSG_task_destroy(task_bw);
-    XBT_INFO("Communic. time %e", communication_time);
-    XBT_INFO("--- bw %f ----", task_comm_size_bw / communication_time);
-  } else {
-    xbt_die("Unexpected behavior");
-  }
-
+  xbt_assert(a == MSG_OK, "Unexpected behavior");
+  time1 = MSG_get_clock();
+  sender_time = *((double *) (task_bw->data));
+  time = sender_time;
+  communication_time = time1 - time;
+  XBT_INFO("Task received : %s", task_bw->name);
+  xbt_free(task_bw->data);
+  MSG_task_destroy(task_bw);
+  XBT_INFO("Communic. time %e", communication_time);
+  XBT_INFO("--- bw %f ----", task_comm_size_bw / communication_time);
 
   return 0;
-}                               /* end_of_receiver */
+}
 
 struct application {
   const char* platform_file;
@@ -132,18 +104,13 @@ static msg_error_t test_all(struct application* app)
 {
   msg_error_t res = MSG_OK;
 
-  XBT_INFO("test_all");
-
-  /*  Simulation setting */
   MSG_create_environment(app->platform_file);
 
   /* Become one of the simulated process.
    *
-   * This must be done after the creation of the platform
-   * because we are depending attaching to a host.*/
+   * This must be done after the creation of the platform because we are depending attaching to a host.*/
   MSG_process_attach("sender", NULL, MSG_host_by_name("Tremblay"), NULL);
 
-  /*   Application deployment */
   MSG_function_register("receiver", receiver);
 
   MSG_launch_application(app->application_file);
@@ -156,10 +123,8 @@ static msg_error_t test_all(struct application* app)
   return res;
 }                               /* end_of_test_all */
 
-static
-void maestro(void* data)
+static void maestro(void* data)
 {
-  // struct application* app = (struct application*) data;
   MSG_main();
 }
 
@@ -168,11 +133,6 @@ int main(int argc, char *argv[])
 {
   msg_error_t res = MSG_OK;
 
-#ifdef _MSC_VER
-  unsigned int prev_exponent_format =
-      _set_output_format(_TWO_DIGIT_EXPONENT);
-#endif
-
   struct application app;
   app.platform_file = argv[1];
   app.application_file = argv[2];
@@ -181,21 +141,12 @@ int main(int argc, char *argv[])
   MSG_init(&argc, argv);
 
   if (argc != 3) {
-    XBT_CRITICAL("Usage: %s platform_file deployment_file\n",
-              argv[0]);
+    XBT_CRITICAL("Usage: %s platform_file deployment_file\n", argv[0]);
     xbt_die("example: %s msg_platform.xml msg_deployment.xml\n",argv[0]);
   }
 
   res = test_all(&app);
 
   XBT_INFO("Total simulation time: %e", MSG_get_clock());
-
-#ifdef _MSC_VER
-  _set_output_format(prev_exponent_format);
-#endif
-
-  if (res == MSG_OK)
-    return 0;
-  else
-    return 1;
-}                               /* end_of_main */
+  return res != MSG_OK;
+}
index 13db39f..84da0a8 100644 (file)
@@ -78,7 +78,9 @@ int main(int argc, char *argv[])
 
   MSG_create_environment(argv[1]);
   MSG_function_register("dream_master", dream_master);
-  MSG_process_create("dream_master", dream_master, NULL, xbt_dynar_getfirst_as(MSG_hosts_as_dynar(), msg_host_t));
+  xbt_dynar_t hosts = MSG_hosts_as_dynar();
+  MSG_process_create("dream_master", dream_master, NULL, xbt_dynar_getfirst_as(hosts, msg_host_t));
+  xbt_dynar_free(&hosts);
   res = MSG_main();
 
   XBT_INFO("Simulation time %g", MSG_get_clock());