Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
authorMartin Quinson <martin.quinson@loria.fr>
Tue, 20 Mar 2012 16:37:21 +0000 (17:37 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Tue, 20 Mar 2012 16:37:21 +0000 (17:37 +0100)
examples/simdag/goal/goal_test.c
include/instr/instr.h
src/instr/instr_interface.c

index 2f8b28f..0cec495 100644 (file)
@@ -12,6 +12,7 @@
 #include "xbt/log.h"
 #include "xbt/ex.h"
 #include <string.h>
+#include "xbt/xbt_os_time.h"
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(goal, "The GOAL loader into SimDag");
 
@@ -51,6 +52,7 @@ static void send_one(int from, int to) {
 
 
 int main(int argc, char **argv) {
+  xbt_os_timer_t timer = xbt_os_timer_new();
 
   /* initialization of SD */
   SD_init(&argc, argv);
@@ -64,6 +66,8 @@ int main(int argc, char **argv) {
   ws_list = SD_workstation_get_list();
   reclaimed = xbt_dynar_new(sizeof(bcast_task_t),xbt_free_ref);
   xbt_dynar_t done = NULL;
+
+  xbt_os_timer_start(timer);
   send_one(0,SD_workstation_get_number());
   do {
     if (done != NULL && !xbt_dynar_is_empty(done)) {
@@ -89,6 +93,9 @@ int main(int argc, char **argv) {
     }
     done=SD_simulate(-1);
   } while(!xbt_dynar_is_empty(done));
+  xbt_os_timer_stop(timer);
+  printf("%lf\n", xbt_os_timer_elapsed(timer) );
+
   xbt_dynar_free(&done);
   xbt_dynar_free(&reclaimed);
 
index 2467a46..7a76692 100644 (file)
@@ -54,12 +54,12 @@ XBT_PUBLIC(void) TRACE_link_variable_add_with_time (double time, const char *lin
 XBT_PUBLIC(void) TRACE_link_variable_sub_with_time (double time, const char *link, const char *variable, double value);
 
 /* for link variables, but with src and dst used for get_route */
-XBT_PUBLIC(void) TRACE_link_srcdst_variable_set (void *src, void *dst, const char *variable, double value);
-XBT_PUBLIC(void) TRACE_link_srcdst_variable_add (void *src, void *dst, const char *variable, double value);
-XBT_PUBLIC(void) TRACE_link_srcdst_variable_sub (void *src, void *dst, const char *variable, double value);
-XBT_PUBLIC(void) TRACE_link_srcdst_variable_set_with_time (double time, void *src, void *dst, const char *variable, double value);
-XBT_PUBLIC(void) TRACE_link_srcdst_variable_add_with_time (double time, void *src, void *dst, const char *variable, double value);
-XBT_PUBLIC(void) TRACE_link_srcdst_variable_sub_with_time (double time, void *src, void *dst, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_set (const char *src, const char *dst, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_add (const char *src, const char *dst, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_sub (const char *src, const char *dst, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_set_with_time (double time, const char *src, const char *dst, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_add_with_time (double time, const char *src, const char *dst, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_sub_with_time (double time, const char *src, const char *dst, const char *variable, double value);
 
 #else                           /* HAVE_TRACING */
 
index 2ff128d..e49403a 100644 (file)
@@ -137,15 +137,23 @@ static void instr_user_variable(double time,
 }
 
 static void instr_user_srcdst_variable(double time,
-                              void *src,
-                              void *dst,
+                              const char *src,
+                              const char *dst,
                               const char *variable,
                               const char *father_type,
                               double value,
                               InstrUserVariable what)
 {
   xbt_dynar_t route=NULL;
-  routing_get_route_and_latency (src, dst, &route,NULL);
+  network_element_t src_elm = xbt_lib_get_or_null(host_lib,src,ROUTING_HOST_LEVEL);
+  if(!src_elm) src_elm = xbt_lib_get_or_null(as_router_lib,src,ROUTING_ASR_LEVEL);
+  if(!src_elm) xbt_die("Element '%s' not found!",src);
+
+  network_element_t dst_elm = xbt_lib_get_or_null(host_lib,dst,ROUTING_HOST_LEVEL);
+  if(!dst_elm) dst_elm = xbt_lib_get_or_null(as_router_lib,dst,ROUTING_ASR_LEVEL);
+  if(!dst_elm) xbt_die("Element '%s' not found!",dst);
+
+  routing_get_route_and_latency (src_elm, dst_elm, &route,NULL);
   unsigned int i;
   void *link;
   xbt_dynar_foreach (route, i, link) {
@@ -262,32 +270,32 @@ void TRACE_link_variable_sub_with_time (double time, const char *link, const cha
 }
 
 /* for link variables, but with src and dst used for get_route */
-void TRACE_link_srcdst_variable_set (void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_set (const char *src, const char *dst, const char *variable, double value)
 {
   TRACE_link_srcdst_variable_set_with_time (MSG_get_clock(), src, dst, variable, value);
 }
 
-void TRACE_link_srcdst_variable_add (void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_add (const char *src, const char *dst, const char *variable, double value)
 {
   TRACE_link_srcdst_variable_add_with_time (MSG_get_clock(), src, dst, variable, value);
 }
 
-void TRACE_link_srcdst_variable_sub (void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_sub (const char *src, const char *dst, const char *variable, double value)
 {
   TRACE_link_srcdst_variable_sub_with_time (MSG_get_clock(), src, dst, variable, value);
 }
 
-void TRACE_link_srcdst_variable_set_with_time (double time, void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_set_with_time (double time, const char *src, const char *dst, const char *variable, double value)
 {
   instr_user_srcdst_variable (time, src, dst, variable, "LINK", value, INSTR_US_SET);
 }
 
-void TRACE_link_srcdst_variable_add_with_time (double time, void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_add_with_time (double time, const char *src, const char *dst, const char *variable, double value)
 {
   instr_user_srcdst_variable (time, src, dst, variable, "LINK", value, INSTR_US_ADD);
 }
 
-void TRACE_link_srcdst_variable_sub_with_time (double time, void *src, void *dst, const char *variable, double value)
+void TRACE_link_srcdst_variable_sub_with_time (double time, const char *src, const char *dst, const char *variable, double value)
 {
   instr_user_srcdst_variable (time, src, dst, variable, "LINK", value, INSTR_US_SUB);
 }