Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move module tracing into corresponding modules
[simgrid.git] / examples / msg / actions / actions.c
index 6d73615..a591bd3 100644 (file)
@@ -54,7 +54,7 @@ typedef struct  {
   xbt_dynar_t isends; /* of msg_comm_t */
   /* Used to implement irecv+wait */
   xbt_dynar_t irecvs; /* of msg_comm_t */
-  xbt_dynar_t tasks; /* of m_task_t */
+  xbt_dynar_t tasks; /* of msg_task_t */
 } s_process_globals_t, *process_globals_t;
 
 /* Helper function */
@@ -100,13 +100,6 @@ static void action_send(const char *const *action)
   if (XBT_LOG_ISENABLED(actions, xbt_log_priority_verbose))
     name = xbt_str_join_array(action, " ");
 
-#ifdef HAVE_TRACING
-  int rank = get_rank(MSG_process_get_name(MSG_process_self()));
-  int dst_traced = get_rank(action[2]);
-  TRACE_smpi_ptp_in(rank, rank, dst_traced, "send");
-  TRACE_smpi_send(rank, rank, dst_traced);
-#endif
-
   XBT_DEBUG("Entering Send: %s (size: %lg)", name, size);
    if (size<65536) {
      action_Isend(action);
@@ -117,11 +110,6 @@ static void action_send(const char *const *action)
    XBT_VERB("%s %f", name, MSG_get_clock() - clock);
 
   free(name);
-
-#ifdef HAVE_TRACING
-  TRACE_smpi_ptp_out(rank, rank, dst_traced, "send");
-#endif
-
   asynchronous_cleanup();
 }
 
@@ -149,7 +137,7 @@ static void action_recv(const char *const *action)
 {
   char *name = NULL;
   char mailbox_name[250];
-  m_task_t task = NULL;
+  msg_task_t task = NULL;
   double clock = MSG_get_clock();
 
   sprintf(mailbox_name, "%s_%s", action[2],
@@ -158,14 +146,8 @@ static void action_recv(const char *const *action)
   if (XBT_LOG_ISENABLED(actions, xbt_log_priority_verbose))
     name = xbt_str_join_array(action, " ");
 
-#ifdef HAVE_TRACING
-  int rank = get_rank(MSG_process_get_name(MSG_process_self()));
-  int src_traced = get_rank(action[2]);
-  TRACE_smpi_ptp_in(rank, src_traced, rank, "recv");
-#endif
-
   XBT_DEBUG("Receiving: %s", name);
-  MSG_error_t res = MSG_task_receive(&task, mailbox_name);
+  msg_error_t res = MSG_task_receive(&task, mailbox_name);
   //  MSG_task_receive(&task, MSG_process_get_name(MSG_process_self()));
   XBT_VERB("%s %f", name, MSG_get_clock() - clock);
 
@@ -174,11 +156,6 @@ static void action_recv(const char *const *action)
   }
 
   free(name);
-#ifdef HAVE_TRACING
-  TRACE_smpi_ptp_out(rank, src_traced, rank, "recv");
-  TRACE_smpi_recv(rank, src_traced, rank);
-#endif
-
   asynchronous_cleanup();
 }
 
@@ -189,18 +166,10 @@ static void action_Irecv(const char *const *action)
   process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
 
   XBT_DEBUG("Irecv on %s", MSG_process_get_name(MSG_process_self()));
-#ifdef HAVE_TRACING
-  int rank = get_rank(MSG_process_get_name(MSG_process_self()));
-  int src_traced = get_rank(action[2]);
-  globals->last_Irecv_sender_id = src_traced;
-  MSG_process_set_data(MSG_process_self(), (void *) globals);
-
-  TRACE_smpi_ptp_in(rank, src_traced, rank, "Irecv");
-#endif
 
   sprintf(mailbox, "%s_%s", action[2],
           MSG_process_get_name(MSG_process_self()));
-  m_task_t t=NULL;
+  msg_task_t t=NULL;
   xbt_dynar_push(globals->tasks,&t);
   msg_comm_t c =
       MSG_task_irecv(
@@ -210,10 +179,6 @@ static void action_Irecv(const char *const *action)
 
   XBT_VERB("%s %f", xbt_str_join_array(action, " "), MSG_get_clock() - clock);
 
-#ifdef HAVE_TRACING
-  TRACE_smpi_ptp_out(rank, src_traced, rank, "Irecv");
-#endif
-
   asynchronous_cleanup();
 }
 
@@ -221,7 +186,7 @@ static void action_Irecv(const char *const *action)
 static void action_wait(const char *const *action)
 {
   char *name = NULL;
-  m_task_t task = NULL;
+  msg_task_t task = NULL;
   msg_comm_t comm;
   double clock = MSG_get_clock();
   process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
@@ -231,27 +196,16 @@ static void action_wait(const char *const *action)
 
   if (XBT_LOG_ISENABLED(actions, xbt_log_priority_verbose))
     name = xbt_str_join_array(action, " ");
-#ifdef HAVE_TRACING
-  process_globals_t counters = (process_globals_t) MSG_process_get_data(MSG_process_self());
-  int src_traced = counters->last_Irecv_sender_id;
-  int rank = get_rank(MSG_process_get_name(MSG_process_self()));
-  TRACE_smpi_ptp_in(rank, src_traced, rank, "wait");
-#endif
 
   XBT_DEBUG("Entering %s", name);
   comm = xbt_dynar_pop_as(globals->irecvs,msg_comm_t);
   MSG_comm_wait(comm,-1);
-  task = xbt_dynar_pop_as(globals->tasks,m_task_t);
+  task = xbt_dynar_pop_as(globals->tasks,msg_task_t);
   MSG_comm_destroy(comm);
   MSG_task_destroy(task);
 
   XBT_VERB("%s %f", name, MSG_get_clock() - clock);
   free(name);
-#ifdef HAVE_TRACING
-  TRACE_smpi_ptp_out(rank, src_traced, rank, "wait");
-  TRACE_smpi_recv(rank, src_traced, rank);
-#endif
-
 }
 
 /* FIXME: that's a poor man's implementation: we should take the message exchanges into account */
@@ -301,7 +255,7 @@ static void action_reduce(const char *const *action)
   char mailbox[80];
   double comm_size = parse_double(action[2]);
   double comp_size = parse_double(action[3]);
-  m_task_t comp_task = NULL;
+  msg_task_t comp_task = NULL;
   const char *process_name;
   double clock = MSG_get_clock();
 
@@ -318,7 +272,7 @@ static void action_reduce(const char *const *action)
     XBT_DEBUG("%s: %s is the Root", reduce_identifier, process_name);
 
     msg_comm_t *comms = xbt_new0(msg_comm_t,communicator_size-1);
-      m_task_t *tasks = xbt_new0(m_task_t,communicator_size-1);
+      msg_task_t *tasks = xbt_new0(msg_task_t,communicator_size-1);
       for (i = 1; i < communicator_size; i++) {
         sprintf(mailbox, "%s_p%d_p0", reduce_identifier, i);
         comms[i-1] = MSG_task_irecv(&(tasks[i-1]),mailbox);
@@ -354,7 +308,7 @@ static void action_bcast(const char *const *action)
   char *bcast_identifier;
   char mailbox[80];
   double comm_size = parse_double(action[2]);
-  m_task_t task = NULL;
+  msg_task_t task = NULL;
   const char *process_name;
   double clock = MSG_get_clock();
 
@@ -420,7 +374,7 @@ static void action_allReduce(const char *const *action) {
   char mailbox[80];
   double comm_size = parse_double(action[2]);
   double comp_size = parse_double(action[3]);
-  m_task_t task = NULL, comp_task = NULL;
+  msg_task_t task = NULL, comp_task = NULL;
   const char *process_name;
   double clock = MSG_get_clock();
 
@@ -437,7 +391,7 @@ static void action_allReduce(const char *const *action) {
     XBT_DEBUG("%s: %s is the Root", allreduce_identifier, process_name);
 
     msg_comm_t *comms = xbt_new0(msg_comm_t,communicator_size-1);
-    m_task_t *tasks = xbt_new0(m_task_t,communicator_size-1);
+    msg_task_t *tasks = xbt_new0(msg_task_t,communicator_size-1);
     for (i = 1; i < communicator_size; i++) {
       sprintf(mailbox, "%s_p%d_p0", allreduce_identifier, i);
       comms[i-1] = MSG_task_irecv(&(tasks[i-1]),mailbox);
@@ -482,7 +436,11 @@ static void action_allReduce(const char *const *action) {
     XBT_DEBUG("%s: %s has received", allreduce_identifier, process_name);
   }
 
-  XBT_VERB("%s %f", xbt_str_join_array(action, " "), MSG_get_clock() - clock);
+  if (XBT_LOG_ISENABLED(actions,xbt_log_priority_verbose)) {
+    char *a =  xbt_str_join_array(action, " ");
+    XBT_VERB("%s %f", a, MSG_get_clock() - clock);
+    free(a);
+  }
   free(allreduce_identifier);
 }
 
@@ -503,7 +461,7 @@ static void action_compute(const char *const *action)
 {
   char *name = NULL;
   const char *amout = action[2];
-  m_task_t task = MSG_task_create(name, parse_double(amout), 0, NULL);
+  msg_task_t task = MSG_task_create(name, parse_double(amout), 0, NULL);
   double clock = MSG_get_clock();
 
   if (XBT_LOG_ISENABLED(actions, xbt_log_priority_verbose))
@@ -517,23 +475,17 @@ static void action_compute(const char *const *action)
 
 static void action_init(const char *const *action)
 { 
-#ifdef HAVE_TRACING
-  TRACE_smpi_init(get_rank(MSG_process_get_name(MSG_process_self())));
-#endif
   XBT_DEBUG("Initialize the counters");
   process_globals_t globals = (process_globals_t) calloc(1, sizeof(s_process_globals_t));
   globals->isends = xbt_dynar_new(sizeof(msg_comm_t),NULL);
   globals->irecvs = xbt_dynar_new(sizeof(msg_comm_t),NULL);
-  globals->tasks  = xbt_dynar_new(sizeof(m_task_t),NULL);
+  globals->tasks  = xbt_dynar_new(sizeof(msg_task_t),NULL);
   MSG_process_set_data(MSG_process_self(),globals);
 
 }
 
 static void action_finalize(const char *const *action)
 {
-#ifdef HAVE_TRACING
-  TRACE_smpi_finalize(get_rank(MSG_process_get_name(MSG_process_self())));
-#endif
   process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
   if (globals){
     xbt_dynar_free_container(&(globals->isends));
@@ -546,10 +498,10 @@ static void action_finalize(const char *const *action)
 /** Main function */
 int main(int argc, char *argv[])
 {
-  MSG_error_t res = MSG_OK;
+  msg_error_t res = MSG_OK;
 
   /* Check the given arguments */
-  MSG_global_init(&argc, argv);
+  MSG_init(&argc, argv);
   if (argc < 3) {
     printf("Usage: %s platform_file deployment_file [action_files]\n",
            argv[0]);
@@ -589,7 +541,6 @@ int main(int argc, char *argv[])
   res = MSG_action_trace_run(argv[3]);  // it's ok to pass a NULL argument here
 
   XBT_INFO("Simulation time %g", MSG_get_clock());
-  MSG_clean();
 
   if (res == MSG_OK)
     return 0;