X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/10598682c3d60c5606cd9942c0eef752ddf6856d..ec1ae25e31f65c9b16e0e95cd8d4643490fb2587:/examples/msg/masterslave/masterslave_forwarder.c diff --git a/examples/msg/masterslave/masterslave_forwarder.c b/examples/msg/masterslave/masterslave_forwarder.c index 167033d608..257b27640c 100644 --- a/examples/msg/masterslave/masterslave_forwarder.c +++ b/examples/msg/masterslave/masterslave_forwarder.c @@ -37,6 +37,7 @@ int master(int argc, char *argv[]) double task_comp_size = 0; double task_comm_size = 0; + TRACE_host_variable_set ("is_master", 1); int i; @@ -56,6 +57,8 @@ int master(int argc, char *argv[]) sprintf(sprintf_buffer, "Task_%d", i); todo[i] = MSG_task_create(sprintf_buffer, task_comp_size, task_comm_size, NULL); + TRACE_host_variable_set ("task_creation", i); + TRACE_msg_set_task_category (todo[i], "compute"); } } @@ -88,9 +91,11 @@ int master(int argc, char *argv[]) INFO0 ("All tasks have been dispatched. Let's tell everybody the computation is over."); - for (i = 0; i < slaves_count; i++) - MSG_task_put(MSG_task_create("finalize", 0, 0, FINALIZE), - slaves[i], PORT_22); + for (i = 0; i < slaves_count; i++){ + m_task_t finalize=MSG_task_create("finalize", 0, 0, FINALIZE); + TRACE_msg_set_task_category(finalize,"finalize"); + MSG_task_put(finalize, slaves[i], PORT_22); + } INFO0("Goodbye now!"); free(slaves); @@ -102,6 +107,7 @@ int master(int argc, char *argv[]) int slave(int argc, char *argv[]) { m_task_t task = NULL; + TRACE_host_variable_set ("is_slave", 1); int res; while (1) { res = MSG_task_get(&(task), PORT_22); @@ -114,6 +120,7 @@ int slave(int argc, char *argv[]) } INFO1("Processing \"%s\"", MSG_task_get_name(task)); + TRACE_host_variable_add ("task_computation", MSG_task_get_compute_duration(task)); MSG_task_execute(task); INFO1("\"%s\" done", MSG_task_get_name(task)); MSG_task_destroy(task); @@ -169,7 +176,7 @@ int forwarder(int argc, char *argv[]) } } xbt_free(slaves); - + INFO0("I'm done. See you!"); return 0; } /* end_of_forwarder */ @@ -179,10 +186,9 @@ MSG_error_t test_all(const char *platform_file, const char *application_file) { MSG_error_t res = MSG_OK; - /* MSG_config("surf_workstation_model","KCCFLN05"); */ + /* MSG_config("workstation/model","KCCFLN05"); */ { /* Simulation setting */ MSG_set_channel_number(MAX_CHANNEL); - MSG_paje_output("msg_test.trace"); MSG_create_environment(platform_file); } { /* Application deployment */ @@ -202,6 +208,26 @@ 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; + int is_tracing = 0; + int i; + + for (i = 0; i < argc; i++){ + if (!strcmp (argv[i], "--trace")){ + is_tracing = 1; + } + } + + if (is_tracing) { + //if TRACE_start is not called, all other tracing + //functions will be disabled + TRACE_start ("simulation.trace"); + } + TRACE_host_variable_declare ("is_slave"); + TRACE_host_variable_declare ("is_master"); + TRACE_host_variable_declare ("task_creation"); + TRACE_host_variable_declare ("task_computation"); + TRACE_category ("compute"); + TRACE_category ("finalize"); MSG_global_init(&argc, argv); if (argc < 3) { @@ -212,6 +238,8 @@ int main(int argc, char *argv[]) res = test_all(argv[1], argv[2]); MSG_clean(); + TRACE_end (); + if (res == MSG_OK) return 0; else