Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
some extra cleanups in simdag examples
[simgrid.git] / examples / simdag / goal / goal_test.c
index 2f8b28f..23d774c 100644 (file)
@@ -1,17 +1,19 @@
-/* GOAL loader prototype. Not ready for public usage yet */
-
-/* Copyright (c) 2011. The SimGrid Team.
+/* Example of scatter communication, accepting a large amount of processes. 
+ * This based the experiment of Fig. 4 in http://hal.inria.fr/hal-00650233/
+ * That experiment is a comparison to the LogOPSim simulator, that takes 
+ * GOAL files as an input, thus the file name. But there is no actual link
+ * to the GOAL formalism beside of this.
+ */
+
+/* Copyright (c) 2011-2015. 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 <stdlib.h>
-#include <stdio.h>
-#include "simdag/simdag.h"
+#include "simgrid/simdag.h"
 #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");
 
@@ -19,8 +21,7 @@ typedef struct {
   int i, j, k;
 } s_bcast_task_t,*bcast_task_t;
 
-
-const SD_workstation_t* ws_list;
+const sg_host_t* ws_list;
 int count = 0;
 
 xbt_dynar_t reclaimed;
@@ -49,8 +50,8 @@ static void send_one(int from, int to) {
   SD_task_watch(task,SD_DONE);
 }
 
-
 int main(int argc, char **argv) {
+  xbt_os_timer_t timer = xbt_os_timer_new();
 
   /* initialization of SD */
   SD_init(&argc, argv);
@@ -61,10 +62,12 @@ int main(int argc, char **argv) {
     SD_create_environment("../../platforms/One_cluster_no_backbone.xml");
   }
 
-  ws_list = SD_workstation_get_list();
+  ws_list = sg_host_list();
   reclaimed = xbt_dynar_new(sizeof(bcast_task_t),xbt_free_ref);
   xbt_dynar_t done = NULL;
-  send_one(0,SD_workstation_get_number());
+
+  xbt_os_cputimer_start(timer);
+  send_one(0,sg_host_count());
   do {
     if (done != NULL && !xbt_dynar_is_empty(done)) {
       unsigned int cursor;
@@ -89,6 +92,9 @@ int main(int argc, char **argv) {
     }
     done=SD_simulate(-1);
   } while(!xbt_dynar_is_empty(done));
+  xbt_os_cputimer_stop(timer);
+  printf("exec_time:%f\n", xbt_os_timer_elapsed(timer) );
+
   xbt_dynar_free(&done);
   xbt_dynar_free(&reclaimed);