Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Rework the presentation of MSG tracing examples
authorMartin Quinson <martin.quinson@loria.fr>
Mon, 16 May 2016 03:46:54 +0000 (05:46 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Mon, 16 May 2016 03:47:07 +0000 (05:47 +0200)
examples/msg/README.doc
examples/msg/trace-categories/trace-categories.c
examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c
examples/msg/trace-link-user-variables/trace-link-user-variables.c
examples/msg/trace-masterworker/trace-masterworker.c
examples/msg/trace-process-migration/trace-process-migration.c
examples/msg/trace-user-variables/trace-user-variables.c

index 9fc8e91..d88123a 100644 (file)
@@ -10,7 +10,7 @@ documentation, but it should remain readable directly.
   - @ref msg_ex_async
   - @ref msg_ex_process
   - @ref msg_ex_tracing
-  - @ref msg_ex_tracing_user_variables
+    - @ref msg_ex_tracing_user_variables
   - @ref msg_ex_models
   - @ref msg_ex_io
   - @ref msg_ex_actions
@@ -92,44 +92,74 @@ are illustrated in these example. See also the
 
   - <b>Basic example</b>. @ref examples/msg/trace-simple/trace-simple.c \n
     In this very simple program, each process creates, executes,
-    and destroy a task. You might want to run it with the
-    <i>--cfg=tracing/uncategorized:yes</i> option.
+    and destroy a task. Recommanded options:
+    @verbatim --cfg=tracing:yes --cfg=tracing/uncategorized:yes @endverbatim
 
   - <b>Platform tracing</b>.
     @ref examples/msg/trace-platform/trace-platform.c \n
     This program is a toy example just loading the platform, so that
-    you can play with the  <i>--cfg=tracing:yes</i> and
-    <i>--cfg=tracing/categorized:yes</i> options and visualize the
-    result.
+    you can play with the platform visualization. Recommanded options:
+    @verbatim --cfg=tracing:yes --cfg=tracing/categorized:yes
+    @endverbatim
 
   - <b>Setting Categories</b>.
     @ref examples/msg/trace-categories/trace-categories.c \n
     This example declares several tracing categories
     to that are used to classify its tasks. When the program is executed,
     the tracing mechanism registers the resource utilization of hosts
-    and links according to these categories.\n
-    You want to run this program with the following options:
-    <i>--cfg=tracing:yes</i>, <i>--cfg=tracing/categorized:yes</i>,
-    <i>--cfg=tracing/uncategorized:yes</i>, <i>--cfg=viva/categorized:viva_cat.plist</i>, and
-    <i>--cfg=viva/uncategorized:viva_uncat.plist</i>.
+    and links according to these categories. Recommanded options:
+    @verbatim --cfg=tracing:yes --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:viva_cat.plist --cfg=viva/uncategorized:viva_uncat.plist
+    @endverbatim
+    
+  - <b>Master Workers tracing</b>.
+    @ref examples/msg/trace-masterworker/trace-masterworker.c \n
+    This is an augmented version of our basic master/worker example
+    using several tracing features. It traces resource usage, sorted
+    out in several categories; Trace marks and user variables are also
+    used. Recommanded options:
+    @verbatim --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:viva_cat.plist --cfg=viva/uncategorized:viva_uncat.plist
+    @endverbatim
+    
+  - <b>Process migration tracing</b>.
+    @ref examples/msg/trace-process-migration/trace-process-migration.c \n
+    This version is enhanced so that the process migrations can be
+    displayed as arrows in a Gantt-chart visualization. Recommanded
+    options to that extend:
+    @verbatim -cfg=tracing:yes --cfg=tracing/msg/process:yes
+    @endverbatim     
+@subsection msg_ex_tracing_user_variables Tracing user variables
 
+You can also attach your own variables to a any resource described in
+the platform file. The following examples illustrate this feature.
+They have to be run with the following options:
+@verbatim --cfg=tracing:yes --cfg=tracing/platform:yes
+@endverbatim
+  - <b>Attaching variables to Hosts</b>.
+    @ref examples/msg/trace-user-variables/trace-user-variables.c 
+  
+  - <b>Attaching variables to Links</b>.
+    @ref examples/msg/trace-link-user-variables/trace-link-user-variables.c \n
+    The tricky part is that you have to know the name of the link you
+    want to enhance with a variable.
     
+  - <b>Attaching variables to network Routes</b>
+    @ref examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c \n
+    It is often easier to update a given variable for all links of a
+    given network path (identified by its source and destination
+    hosts) instead of knowing the name of each specific link.
     
-@example examples/msg/trace-masterworker/trace-masterworker.c
-@example examples/msg/trace-process-migration/trace-process-migration.c
-@example examples/msg/trace-user-variables/trace-user-variables.c
-@example examples/msg/trace-link-user-variables/trace-link-user-variables.c
-@example examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c
-@example examples/msg/network-ns3/network-ns3.c
-@example examples/msg/io-storage/io-storage.c
-@example examples/msg/io-file/io-file.c
-@example examples/msg/io-remote/io-remote.c
-@example examples/msg/actions-comm/actions-comm.c
-@example examples/msg/actions-storage/actions-storage.c
-@example examples/msg/app-pmm/app-pmm.c
-@example examples/msg/dht-chord
-@example examples/msg/task-priority/task-priority.c
-@example examples/msg/properties/properties.c
+  - @ref examples/msg/network-ns3/network-ns3.c \n
+  - @ref examples/msg/io-storage/io-storage.c \n
+  - @ref examples/msg/io-file/io-file.c \n
+  - @ref examples/msg/io-remote/io-remote.c \n
+  - @ref examples/msg/actions-comm/actions-comm.c \n
+  - @ref examples/msg/actions-storage/actions-storage.c \n
+  - @ref examples/msg/app-pmm/app-pmm.c \n
+  - @ref examples/msg/dht-chord \n
+  - @ref examples/msg/task-priority/task-priority.c \n
+  - @ref examples/msg/properties/properties.c \n
 
 */
 
@@ -181,13 +211,6 @@ example file).
 Basic examples and features
 ===========================
 
- * migration/migration.c Demonstrates how to use the
-   MSG_process_migrate() function to let processes change the host
-   they run on after their start.
-
- * suspend/suspend.c: Demonstrates how to suspend and resume processes
-   using MSG_process_suspend() and MSG_process_resume().
-
  * properties/msg_prop.c Attaching arbitrary information to host,
    processes and such, and retrieving them with
    MSG_host_get_properties(), MSG_host_get_property_value(),
@@ -206,19 +229,6 @@ Basic examples and features
    MSG_task_set_priority() to change the computation priority of a
    given task.
 
-Tracing and visualization features
-==================================
- * tracing/simple.c very simple program that creates, executes and
-   destroy a task
- * tracing/ms.c TODO
- * tracing/categories.c example with the declaration of multiple
-   categories
- * tracing/procmig.c example to trace process migration using the mask
-   TRACE_PROCESS
- * tracing/trace_platform.c: Demonstrates how to trace the platform
- * tracing/user_variables.c: Demonstrates how to trace user-provided
-   variables
-
 Models-related examples
 =======================
 
index 3030c3a..a33b4b5 100644 (file)
@@ -10,8 +10,7 @@ static int master(int argc, char *argv[])
   long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
   long workers_count = xbt_str_parse_int(argv[4], "Invalid amount of workers: %s");
 
-  int i;
-  for (i = 0; i < number_of_tasks; i++) {
+  for (int i = 0; i < number_of_tasks; i++) {
     msg_task_t task = NULL;
 
     /* creating task and setting its category */
@@ -28,7 +27,7 @@ static int master(int argc, char *argv[])
     MSG_task_send(task, "master_mailbox");
   }
 
-  for (i = 0; i < workers_count; i++) {
+  for (int i = 0; i < workers_count; i++) {
     msg_task_t finalize = MSG_task_create("finalize", 0, 1000, 0);
     MSG_task_set_category(finalize, "finalize");
     MSG_task_send(finalize, "master_mailbox");
index 198f153..4603e7f 100644 (file)
@@ -1,19 +1,10 @@
-/* Copyright (c) 2012-2015. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2012-2016. 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>
 
-/** @addtogroup MSG_examples
- *
- * - <b>Routes: trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c</b>. Instead of providing the name
- *   of the link to update one of its variable, this example shows how to provide two hosts as parameter (source and
- *   destination, as defined in the platform file). The tracing mechanism will get the route between these two hosts, if
- *   it is defined in the platform file, and update the variable of all the links of that route to the value provided.
- */
-
 //dump function to create and execute a task
 static void create_and_execute_task (void)
 {
index 90d43b6..57a6215 100644 (file)
@@ -1,17 +1,10 @@
-/* Copyright (c) 2012-2015. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2012-2016. 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>
 
-/** @addtogroup MSG_examples
- *
- * - <b>Links: trace-link-user-variables/trace-link-user-variables.c</b>. You need to provide the name of the link to
- *   update the value of the variable associated to that link.
- */
-
 //dump function to create and execute a task
 static void create_and_execute_task (void)
 {
index ee5ffca..abe6bad 100644 (file)
@@ -1,19 +1,8 @@
-/* Copyright (c) 2010-2015. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2010-2016. 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. */
 
-/** @addtogroup MSG_examples
- * 
- * - <b>Master/Worker: trace-masterworker/trace-masterworker.c</b> This is an augmented version of our basic
- *   master/worker example. It uses several tracing functions that enable the tracing of categorized resource
- *   utilization, the use of trace marks, and user variables associated to the hosts of the platform file. You might
- *   want to run this program with the following configuration options:
- *   <i>--cfg=tracing/categorized:yes</i>, <i>--cfg=tracing/uncategorized:yes</i>,
- *   <i>--cfg=viva/categorized:viva_cat.plist</i>, and <i>--cfg=viva/uncategorized:viva_uncat.plist</i>.
- */
-
 #include "simgrid/msg.h"
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(msg_trace_masterworker, "Messages specific for this msg example");
@@ -29,8 +18,7 @@ static int master(int argc, char *argv[])
   TRACE_host_variable_set(MSG_host_get_name(MSG_host_self()), "is_master", 1);
 
   TRACE_mark("msmark", "start_send_tasks");
-  int i;
-  for (i = 0; i < number_of_tasks; i++) {
+  for (int i = 0; i < number_of_tasks; i++) {
     msg_task_t task = NULL;
     task = MSG_task_create("task", task_comp_size, task_comm_size, NULL);
 
@@ -44,7 +32,7 @@ static int master(int argc, char *argv[])
   }
   TRACE_mark("msmark", "finish_send_tasks");
 
-  for (i = 0; i < workers_count; i++) {
+  for (int i = 0; i < workers_count; i++) {
     msg_task_t finalize = MSG_task_create("finalize", 0, 0, 0);
     MSG_task_set_category(finalize, "finalize");
     MSG_task_send(finalize, "master_mailbox");
index bcf83c2..fffb9c0 100644 (file)
@@ -1,20 +1,11 @@
-/* Copyright (c) 2010-2015. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2010-2016. 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. */
 
-/** @addtogroup MSG_examples
- * 
- * - <b>Process migration: trace-process-migration/trace-process-migration.c</b>. Running this program with the
- *   <i>--cfg=tracing:yes</i> and <i>--cfg=tracing/msg/process:yes</i> options  enables a Gantt-chart visualization of
- *   where the process has been hosted during its execution. Migrations are represented by arrows from the origin to
- *   the destination host.
- */
-
 #include "simgrid/msg.h"
 
-/** The guy we will move from host to host. It move alone and then is moved by policeman back  */
+/* The guy we will move from host to host. It move alone and then is moved by policeman back  */
 static int emigrant(int argc, char *argv[])
 {
   msg_task_t task = NULL;
index aef88a6..f25f77b 100644 (file)
@@ -1,19 +1,8 @@
-/* Copyright (c) 2010, 2012-2015. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2010, 2012-2016. 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. */
 
-/** @addtogroup MSG_examples
- *
- * @section msg_ex_tracing_user_variables Tracing user variables
- * The tracing mechanism of SimGrid also allows to associate user variables to resources described in the platform file.
- * The following examples illustrate this feature. They have to be run with the <i>--cfg=tracing:yes</i> and
- * <i>--cfg=tracing/platform:yes</i> options.
- * 
- * - <b>Hosts: trace-user-variables/trace-user-variables.c</b>. This example shows how user defined variables can be
- *   associated to an host and how to manage the tracing of their evolution.
- */
 #include <stdio.h>
 #include "simgrid/msg.h"
 
@@ -22,13 +11,12 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example")
 static int trace_fun(int argc, char *argv[])
 {
   const char *hostname = MSG_host_get_name(MSG_host_self());
-  int i;
 
   //the hostname has an empty HDD with a capacity of 100000 (bytes)
   TRACE_host_variable_set(hostname, "HDD_capacity", 100000);
   TRACE_host_variable_set(hostname, "HDD_utilization", 0);
 
-  for (i = 0; i < 10; i++) {
+  for (int i = 0; i < 10; i++) {
     //create and execute a task just to make the simulated time advance
     msg_task_t task = MSG_task_create("task", 10000, 0, NULL);
     MSG_task_execute (task);
@@ -38,7 +26,7 @@ static int trace_fun(int argc, char *argv[])
     TRACE_host_variable_add(hostname, "HDD_utilization", 100);
   }
 
-  for (i = 0; i < 10; i++) {
+  for (int i = 0; i < 10; i++) {
     //create and execute a task just to make the simulated time advance
     msg_task_t task = MSG_task_create("task", 10000, 0, NULL);
     MSG_task_execute (task);