From: Martin Quinson Date: Mon, 16 May 2016 03:46:54 +0000 (+0200) Subject: Rework the presentation of MSG tracing examples X-Git-Tag: v3_14~1225 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/23976cb525fd51c66ef8e1234cdc5626fca83990?hp=f0a2479a4b6f8eee08d767576f528cd29da48388;ds=sidebyside Rework the presentation of MSG tracing examples --- diff --git a/examples/msg/README.doc b/examples/msg/README.doc index 9fc8e910e8..d88123ad0b 100644 --- a/examples/msg/README.doc +++ b/examples/msg/README.doc @@ -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 - Basic example. @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 - --cfg=tracing/uncategorized:yes option. + and destroy a task. Recommanded options: + @verbatim --cfg=tracing:yes --cfg=tracing/uncategorized:yes @endverbatim - Platform tracing. @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 --cfg=tracing:yes and - --cfg=tracing/categorized:yes options and visualize the - result. + you can play with the platform visualization. Recommanded options: + @verbatim --cfg=tracing:yes --cfg=tracing/categorized:yes + @endverbatim - Setting Categories. @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: - --cfg=tracing:yes, --cfg=tracing/categorized:yes, - --cfg=tracing/uncategorized:yes, --cfg=viva/categorized:viva_cat.plist, and - --cfg=viva/uncategorized:viva_uncat.plist. + 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 + + - Master Workers tracing. + @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 + + - Process migration tracing. + @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 + + - Attaching variables to Hosts. + @ref examples/msg/trace-user-variables/trace-user-variables.c + + - Attaching variables to Links. + @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. + - Attaching variables to network Routes + @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 ======================= diff --git a/examples/msg/trace-categories/trace-categories.c b/examples/msg/trace-categories/trace-categories.c index 3030c3a9e2..a33b4b5de0 100644 --- a/examples/msg/trace-categories/trace-categories.c +++ b/examples/msg/trace-categories/trace-categories.c @@ -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"); diff --git a/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c b/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c index 198f1533c5..4603e7fec2 100644 --- a/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c +++ b/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c @@ -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 -/** @addtogroup MSG_examples - * - * - Routes: trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c. 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) { diff --git a/examples/msg/trace-link-user-variables/trace-link-user-variables.c b/examples/msg/trace-link-user-variables/trace-link-user-variables.c index 90d43b693b..57a62157ca 100644 --- a/examples/msg/trace-link-user-variables/trace-link-user-variables.c +++ b/examples/msg/trace-link-user-variables/trace-link-user-variables.c @@ -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 -/** @addtogroup MSG_examples - * - * - Links: trace-link-user-variables/trace-link-user-variables.c. 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) { diff --git a/examples/msg/trace-masterworker/trace-masterworker.c b/examples/msg/trace-masterworker/trace-masterworker.c index ee5ffca02d..abe6badfa0 100644 --- a/examples/msg/trace-masterworker/trace-masterworker.c +++ b/examples/msg/trace-masterworker/trace-masterworker.c @@ -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 - * - * - Master/Worker: trace-masterworker/trace-masterworker.c 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: - * --cfg=tracing/categorized:yes, --cfg=tracing/uncategorized:yes, - * --cfg=viva/categorized:viva_cat.plist, and --cfg=viva/uncategorized:viva_uncat.plist. - */ - #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"); diff --git a/examples/msg/trace-process-migration/trace-process-migration.c b/examples/msg/trace-process-migration/trace-process-migration.c index bcf83c2b19..fffb9c0e12 100644 --- a/examples/msg/trace-process-migration/trace-process-migration.c +++ b/examples/msg/trace-process-migration/trace-process-migration.c @@ -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 - * - * - Process migration: trace-process-migration/trace-process-migration.c. Running this program with the - * --cfg=tracing:yes and --cfg=tracing/msg/process:yes 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; diff --git a/examples/msg/trace-user-variables/trace-user-variables.c b/examples/msg/trace-user-variables/trace-user-variables.c index aef88a6f59..f25f77b26b 100644 --- a/examples/msg/trace-user-variables/trace-user-variables.c +++ b/examples/msg/trace-user-variables/trace-user-variables.c @@ -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 --cfg=tracing:yes and - * --cfg=tracing/platform:yes options. - * - * - Hosts: trace-user-variables/trace-user-variables.c. This example shows how user defined variables can be - * associated to an host and how to manage the tracing of their evolution. - */ #include #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);