From: schnorr Date: Wed, 21 Mar 2012 11:45:42 +0000 (+0100) Subject: [trace] new example to show how to use TRACE_link_srcdst_variable_(set/add/sub) X-Git-Tag: v3_7~273^2~2 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/d0b955213eaa7c1cd90108f336bb32e62c8039cb [trace] new example to show how to use TRACE_link_srcdst_variable_(set/add/sub) --- diff --git a/buildtools/Cmake/AddTests.cmake b/buildtools/Cmake/AddTests.cmake index c2a33eeb4a..e0f844688d 100644 --- a/buildtools/Cmake/AddTests.cmake +++ b/buildtools/Cmake/AddTests.cmake @@ -393,6 +393,7 @@ IF(HAVE_TRACING) ADD_TEST(tracing-trace_platform ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg tracing/trace_platform.tesh) ADD_TEST(tracing-user_variables ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg tracing/user_variables.tesh) ADD_TEST(tracing-link_user_variables ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg tracing/link_user_variables.tesh) + ADD_TEST(tracing-link_srcdst_user_variables ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg tracing/link_srcdst_user_variables.tesh) ADD_TEST(tracing-categories ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg tracing/categories.tesh) ADD_TEST(tracing-process-migration ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg tracing/procmig.tesh) ADD_TEST(graphicator ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} --setenv bindir=${CMAKE_BINARY_DIR}/bin --cd ${CMAKE_HOME_DIRECTORY}/tools/graphicator graphicator.tesh) diff --git a/examples/msg/tracing/CMakeLists.txt b/examples/msg/tracing/CMakeLists.txt index c42175bcbe..f79eaa1ce3 100644 --- a/examples/msg/tracing/CMakeLists.txt +++ b/examples/msg/tracing/CMakeLists.txt @@ -10,6 +10,7 @@ add_executable(simple ${CMAKE_CURRENT_SOURCE_DIR}/simple.c) add_executable(trace_platform ${CMAKE_CURRENT_SOURCE_DIR}/trace_platform.c) add_executable(user_variables ${CMAKE_CURRENT_SOURCE_DIR}/user_variables.c) add_executable(link_user_variables ${CMAKE_CURRENT_SOURCE_DIR}/link_user_variables.c) +add_executable(link_srcdst_user_variables ${CMAKE_CURRENT_SOURCE_DIR}/link_srcdst_user_variables.c) ### Add definitions for compile target_link_libraries(ms simgrid m ) @@ -19,6 +20,7 @@ target_link_libraries(simple simgrid m ) target_link_libraries(trace_platform simgrid m ) target_link_libraries(user_variables simgrid m ) target_link_libraries(link_user_variables simgrid m ) +target_link_libraries(link_srcdst_user_variables simgrid m ) ## Clean generated files get_directory_property(extra_clean_files ADDITIONAL_MAKE_CLEAN_FILES) diff --git a/examples/msg/tracing/link_srcdst_user_variables.c b/examples/msg/tracing/link_srcdst_user_variables.c new file mode 100644 index 0000000000..5dc745c43f --- /dev/null +++ b/examples/msg/tracing/link_srcdst_user_variables.c @@ -0,0 +1,85 @@ +/* Copyright (c) 2012. 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 + +int master(int argc, char *argv[]); + +//dump function to create and execute a task +static void create_and_execute_task (void) +{ + m_task_t task = MSG_task_create("task", 1000000, 0, NULL); + MSG_task_execute (task); + MSG_task_destroy (task); +} + +int master(int argc, char *argv[]) +{ + int i; + + //Set initial values for the link user variables + // + //This example uses source and destination where + //source and destination are the name of hosts in + //the platform file. + // + //The functions will set/change the value of the variable + //for all links in the route between source and destination. + + //Set the Link_Capacity variable + TRACE_link_srcdst_variable_set("Tremblay", "Bourassa", "Link_Capacity", 12.34); + TRACE_link_srcdst_variable_set("Fafard", "Ginette", "Link_Capacity", 56.78); + + //Set the Link_Utilization variable + TRACE_link_srcdst_variable_set("Tremblay", "Bourassa", "Link_Utilization", 1.2); + TRACE_link_srcdst_variable_set("Fafard", "Ginette", "Link_Utilization", 3.4); + + //run the simulation, update my variables accordingly + for (i = 0; i < 10; i++) { + create_and_execute_task (); + + //Add to link user variables + TRACE_link_srcdst_variable_add ("Tremblay", "Bourassa", "Link_Utilization", 5.6); + TRACE_link_srcdst_variable_add ("Fafard", "Ginette", "Link_Utilization", 7.8); + } + + for (i = 0; i < 10; i++) { + create_and_execute_task (); + + //Subtract from link user variables + TRACE_link_srcdst_variable_sub ("Tremblay", "Bourassa", "Link_Utilization", 3.4); + TRACE_link_srcdst_variable_sub ("Fafard", "Ginette", "Link_Utilization", 5.6); + } + + return 0; +} + +/** Main function */ +int main(int argc, char *argv[]) +{ + MSG_global_init(&argc, argv); + if (argc < 3) { + printf("Usage: %s platform_file deployment_file\n", argv[0]); + exit(1); + } + + char *platform_file = argv[1]; + char *deployment_file = argv[2]; + MSG_create_environment(platform_file); + + //declaring link user variables (one without, another with a RGB color) + TRACE_link_variable_declare("Link_Capacity"); + TRACE_link_variable_declare_with_color ("Link_Utilization", "0.9 0.1 0.1"); + + //register "master" and "slave" functions and launch deployment + MSG_function_register("master", master); + MSG_function_register("slave", master); + MSG_launch_application(deployment_file); + + MSG_main(); + MSG_clean(); + return 0; +} diff --git a/examples/msg/tracing/link_srcdst_user_variables.tesh b/examples/msg/tracing/link_srcdst_user_variables.tesh new file mode 100644 index 0000000000..2d087f7a7d --- /dev/null +++ b/examples/msg/tracing/link_srcdst_user_variables.tesh @@ -0,0 +1,6 @@ +#! ./tesh + +p Tracing master/slave application +$ $SG_TEST_EXENV ${bindir:=.}/tracing/link_srcdst_user_variables$EXEEXT --cfg=tracing:1 --cfg=tracing/platform:1 ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.xml +> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1' +> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to '1'