Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove unused static functions.
[simgrid.git] / examples / msg / actions / actions.c
index dab03cd..a842d05 100644 (file)
@@ -68,11 +68,6 @@ static double parse_double(const char *string)
   return value;
 }
 
-static int get_rank(const char *process_name)
-{
-  return atoi(&(process_name[1]));
-}
-
 static void asynchronous_cleanup(void)
 {
   process_globals_t globals =
@@ -256,6 +251,7 @@ static void action_barrier(const char *const *action)
 
 static void action_reduce(const char *const *action)
 {
+  int i;
   char *reduce_identifier;
   char mailbox[80];
   double comm_size = parse_double(action[2]);
@@ -277,25 +273,18 @@ static void action_reduce(const char *const *action)
   if (!strcmp(process_name, "p0")) {
     XBT_DEBUG("%s: %s is the Root", reduce_identifier, process_name);
 
-    xbt_dynar_t comms = xbt_dynar_new(sizeof(msg_comm_t), NULL);
+    msg_comm_t *comms = xbt_new0(msg_comm_t, communicator_size - 1);
     msg_task_t *tasks = xbt_new0(msg_task_t, communicator_size - 1);
-    int i;
-
     for (i = 1; i < communicator_size; i++) {
       sprintf(mailbox, "%s_p%d_p0", reduce_identifier, i);
-      xbt_dynar_push_as(comms, msg_comm_t,
-                        MSG_task_irecv(&(tasks[i - 1]), mailbox));
+      comms[i - 1] = MSG_task_irecv(&(tasks[i - 1]), mailbox);
     }
-    MSG_comm_waitall(comms, -1);
-
-    msg_comm_t comm;
-    unsigned int cursor;
-    xbt_dynar_foreach(comms, cursor, comm) {
-      MSG_comm_destroy(comm);
-      MSG_task_destroy(tasks[cursor]);
+    MSG_comm_waitall(comms, communicator_size - 1, -1);
+    for (i = 1; i < communicator_size; i++) {
+      MSG_comm_destroy(comms[i - 1]);
+      MSG_task_destroy(tasks[i - 1]);
     }
     free(tasks);
-    xbt_dynar_free(&comms);
 
     comp_task = MSG_task_create("reduce_comp", comp_size, 0, NULL);
     XBT_DEBUG("%s: computing 'reduce_comp'", reduce_identifier);
@@ -338,24 +327,17 @@ static void action_bcast(const char *const *action)
   if (!strcmp(process_name, "p0")) {
     XBT_DEBUG("%s: %s is the Root", bcast_identifier, process_name);
 
-    xbt_dynar_t comms = xbt_dynar_new(sizeof(msg_comm_t), NULL);
-
+    msg_comm_t *comms = xbt_new0(msg_comm_t, communicator_size - 1);
 
     for (i = 1; i < communicator_size; i++) {
       sprintf(mailbox, "%s_p0_p%d", bcast_identifier, i);
-      xbt_dynar_push_as(comms, msg_comm_t,
-                        MSG_task_isend(MSG_task_create
-                                       (mailbox, 0, comm_size, NULL), mailbox));
+      comms[i - 1] =
+          MSG_task_isend(MSG_task_create(mailbox, 0, comm_size, NULL), mailbox);
     }
-    MSG_comm_waitall(comms, -1);
-
-    msg_comm_t comm;
-    unsigned int cursor;
-    xbt_dynar_foreach(comms, cursor, comm) {
-      MSG_comm_destroy(comm);
-    }
-    xbt_dynar_free(&comms);
-
+    MSG_comm_waitall(comms, communicator_size - 1, -1);
+    for (i = 1; i < communicator_size; i++)
+      MSG_comm_destroy(comms[i - 1]);
+    free(comms);
 
     XBT_DEBUG("%s: all messages sent by %s have been received",
               bcast_identifier, process_name);
@@ -390,6 +372,7 @@ static void action_sleep(const char *const *action)
 
 static void action_allReduce(const char *const *action)
 {
+  int i;
   char *allreduce_identifier;
   char mailbox[80];
   double comm_size = parse_double(action[2]);
@@ -411,21 +394,16 @@ static void action_allReduce(const char *const *action)
   if (!strcmp(process_name, "p0")) {
     XBT_DEBUG("%s: %s is the Root", allreduce_identifier, process_name);
 
-    xbt_dynar_t comms = xbt_dynar_new(sizeof(msg_comm_t), NULL);
+    msg_comm_t *comms = xbt_new0(msg_comm_t, communicator_size - 1);
     msg_task_t *tasks = xbt_new0(msg_task_t, communicator_size - 1);
-    int i;
     for (i = 1; i < communicator_size; i++) {
       sprintf(mailbox, "%s_p%d_p0", allreduce_identifier, i);
-      xbt_dynar_push_as(comms, msg_comm_t,
-                        MSG_task_irecv(&(tasks[i - 1]), mailbox));
+      comms[i - 1] = MSG_task_irecv(&(tasks[i - 1]), mailbox);
     }
-    MSG_comm_waitall(comms, -1);
-
-    msg_comm_t comm;
-    unsigned int cursor;
-    xbt_dynar_foreach(comms, cursor, comm) {
-      MSG_comm_destroy(comm);
-      MSG_task_destroy(tasks[cursor]);
+    MSG_comm_waitall(comms, communicator_size - 1, -1);
+    for (i = 1; i < communicator_size; i++) {
+      MSG_comm_destroy(comms[i - 1]);
+      MSG_task_destroy(tasks[i - 1]);
     }
     free(tasks);
 
@@ -435,18 +413,15 @@ static void action_allReduce(const char *const *action)
     MSG_task_destroy(comp_task);
     XBT_DEBUG("%s: computed", allreduce_identifier);
 
-    xbt_dynar_reset(comms);
     for (i = 1; i < communicator_size; i++) {
       sprintf(mailbox, "%s_p0_p%d", allreduce_identifier, i);
-      xbt_dynar_push_as(comms, msg_comm_t,
-                        MSG_task_isend(MSG_task_create
-                                       (mailbox, 0, comm_size, NULL), mailbox));
-    }
-    MSG_comm_waitall(comms, -1);
-    xbt_dynar_foreach(comms, cursor, comm) {
-      MSG_comm_destroy(comm);
+      comms[i - 1] =
+          MSG_task_isend(MSG_task_create(mailbox, 0, comm_size, NULL), mailbox);
     }
-    xbt_dynar_free(&comms);
+    MSG_comm_waitall(comms, communicator_size - 1, -1);
+    for (i = 1; i < communicator_size; i++)
+      MSG_comm_destroy(comms[i - 1]);
+    free(comms);
 
     XBT_DEBUG("%s: all messages sent by %s have been received",
               allreduce_identifier, process_name);