Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Compile with flag NDEBUG.
[simgrid.git] / examples / msg / parallel_task / test_ptask.c
index 8ee0ec9..95b9c9f 100644 (file)
@@ -1,3 +1,9 @@
+/* Copyright (c) 2008, 2009, 2010. 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 <stdio.h>
 #include "msg/msg.h"            /* Yeah! If you want to use msg, you
                                    need to include msg/msg.h */
@@ -11,7 +17,8 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,
 
 int execute(int argc, char *argv[]);
 int redistribute(int argc, char *argv[]);
-MSG_error_t test_all(const char *platform_file, const char *application_file);
+MSG_error_t test_all(const char *platform_file,
+                     const char *application_file);
 
 typedef enum {
   PORT_22 = 0,
@@ -28,8 +35,8 @@ int execute(int argc, char *argv[])
   int host_list_size;
   double *computation_duration = NULL;
   double *communication_table = NULL;
-  double communication_amount;
-  double computation_amount;
+  double communication_amount = 0;
+  double computation_amount = 0;
   double execution_time;
 
 
@@ -48,12 +55,12 @@ int execute(int argc, char *argv[])
               "Invalid argument %s\n", argv[argc - 1]);
   computation_duration = (double *) calloc(host_list_size, sizeof(double));
   communication_table =
-    (double *) calloc(host_list_size * host_list_size, sizeof(double));
+      (double *) calloc(host_list_size * host_list_size, sizeof(double));
   for (i = 0; i < host_list_size; i++) {
     computation_duration[i] = computation_amount / host_list_size;
     for (j = 0; j < host_list_size; j++)
       communication_table[i * host_list_size + j] =
-        communication_amount / (host_list_size * host_list_size);
+          communication_amount / (host_list_size * host_list_size);
   }
 
   sprintf(buffer, "redist#0\n");
@@ -65,6 +72,8 @@ int execute(int argc, char *argv[])
 
   execution_time = MSG_get_clock();
   MSG_parallel_task_execute(task);
+  MSG_task_destroy(task);
+  xbt_free(m_host_list);
   execution_time = MSG_get_clock() - execution_time;
 
   INFO1("execution_time=%g ", execution_time);
@@ -82,7 +91,7 @@ int redistribute(int argc, char *argv[])
   int host_list_size;
   double *computation_duration = NULL;
   double *communication_table = NULL;
-  double communication_amount;
+  double communication_amount = 0;
   double redistribution_time;
 
 
@@ -99,11 +108,11 @@ int redistribute(int argc, char *argv[])
               "Invalid argument %s\n", argv[argc - 1]);
   computation_duration = (double *) calloc(host_list_size, sizeof(double));
   communication_table =
-    (double *) calloc(host_list_size * host_list_size, sizeof(double));
+      (double *) calloc(host_list_size * host_list_size, sizeof(double));
   for (i = 0; i < host_list_size; i++) {
     for (j = 0; j < host_list_size; j++)
       communication_table[i * host_list_size + j] =
-        communication_amount / (host_list_size * host_list_size);
+          communication_amount / (host_list_size * host_list_size);
   }
 
   sprintf(buffer, "redist#0\n");
@@ -115,6 +124,8 @@ int redistribute(int argc, char *argv[])
 
   redistribution_time = MSG_get_clock();
   MSG_parallel_task_execute(task);
+  MSG_task_destroy(task);
+  xbt_free(m_host_list);
   redistribution_time = MSG_get_clock() - redistribution_time;
 
   INFO1("redistribution_time=%g ", redistribution_time);
@@ -123,7 +134,8 @@ int redistribute(int argc, char *argv[])
 }
 
 
-MSG_error_t test_all(const char *platform_file, const char *application_file)
+MSG_error_t test_all(const char *platform_file,
+                     const char *application_file)
 {
   MSG_error_t res = MSG_OK;