Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simplifactions
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Wed, 7 Sep 2016 12:27:57 +0000 (14:27 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Wed, 7 Sep 2016 12:27:57 +0000 (14:27 +0200)
include/simgrid/jedule/jedule_output.hpp
src/instr/jedule/jedule_events.cpp
src/instr/jedule/jedule_output.cpp
src/instr/jedule/jedule_platform.cpp
src/instr/jedule/jedule_sd_binding.cpp

index 3492b91..63d9e35 100644 (file)
@@ -20,8 +20,7 @@ extern xbt_dynar_t jedule_event_list;
 void jedule_init_output(void);
 void jedule_cleanup_output(void);
 void jedule_store_event(jed_event_t event);
-void write_jedule_output(FILE *file, jedule_t jedule, xbt_dynar_t event_list, xbt_dict_t meta_info_dict);
-void print_key_value_dict(FILE *file, std::unordered_map<char*, char*> key_value_dict);
+void write_jedule_output(FILE *file, jedule_t jedule, xbt_dynar_t event_list);
 
 SG_END_DECL()
 #endif
index 8efdbd3..93f494c 100644 (file)
@@ -55,21 +55,17 @@ void Event::print(FILE *jed_file){
   fprintf(jed_file, "      <prop key=\"start\" value=\"%g\" />\n", this->start_time);
   fprintf(jed_file, "      <prop key=\"end\" value=\"%g\" />\n", this->end_time);
   fprintf(jed_file, "      <prop key=\"type\" value=\"%s\" />\n", this->type.c_str());
-  fprintf(jed_file, "      <res_util>\n");
 
   xbt_assert(!this->resource_subsets.empty());
+  fprintf(jed_file, "      <res_util>\n");
   for (auto subset: this->resource_subsets) {
-    int start = subset->start_idx;
-    int end   = subset->start_idx + subset->nres - 1;
-
-    std::string resid = subset->parent->getHierarchyAsString();
     fprintf(jed_file, "        <select resources=\"");
-    fprintf(jed_file, "%s", resid.c_str());
-    fprintf(jed_file, ".[%d-%d]", start, end);
+    fprintf(jed_file, "%s", subset->parent->getHierarchyAsString().c_str());
+    fprintf(jed_file, ".[%d-%d]", subset->start_idx, subset->start_idx + subset->nres - 1);
     fprintf(jed_file, "\" />\n");
   }
-
   fprintf(jed_file, "      </res_util>\n");
+
   if (!this->characteristics_list.empty()){
     fprintf(jed_file, "      <characteristics>\n");
     for (auto ch: this->characteristics_list)
@@ -79,7 +75,8 @@ void Event::print(FILE *jed_file){
 
   if (!this->info_map.empty()){
     fprintf(jed_file, "      <info>\n");
-    print_key_value_dict(jed_file, this->info_map);
+    for (auto elm: this->info_map)
+      fprintf(jed_file, "        <prop key=\"%s\" value=\"%s\" />\n",elm.first,elm.second);
     fprintf(jed_file, "      </info>\n");
   }
 
index 64f6875..986762b 100644 (file)
@@ -22,46 +22,29 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(jed_out, jedule, "Logging specific to Jedule out
 
 xbt_dynar_t jedule_event_list;
 
-
-void print_key_value_dict(FILE *jed_file, std::unordered_map<char*, char*> key_value_dict) {
-  if(!key_value_dict.empty()) {
-    for (auto elm: key_value_dict) {
-      fprintf(jed_file, "        <prop key=\"%s\" value=\"%s\" />\n",elm.first,elm.second);
-    }
-  }
-}
-
-static void print_platform(FILE *jed_file, jed_container_t root_container) {
-  fprintf(jed_file, "  <platform>\n");
-  root_container->print(jed_file);
-  fprintf(jed_file, "  </platform>\n");
-}
-
-static void print_events(FILE *jed_file, xbt_dynar_t event_list)  {
-  unsigned int i;
-  jed_event_t event;
-
-  fprintf(jed_file, "  <events>\n");
-  xbt_dynar_foreach(event_list, i, event) {
-      event->print(jed_file);
-  }
-  fprintf(jed_file, "  </events>\n");
-}
-
-void write_jedule_output(FILE *file, jedule_t jedule, xbt_dynar_t event_list, xbt_dict_t meta_info_dict) {
+void write_jedule_output(FILE *file, jedule_t jedule, xbt_dynar_t event_list) {
   if (!xbt_dynar_is_empty(jedule_event_list)){
 
     fprintf(file, "<jedule>\n");
 
     if (!jedule->jedule_meta_info.empty()){
       fprintf(file, "  <jedule_meta>\n");
-      print_key_value_dict(file, jedule->jedule_meta_info);
+      for (auto elm: jedule->jedule_meta_info)
+        fprintf(file, "        <prop key=\"%s\" value=\"%s\" />\n",elm.first,elm.second);
       fprintf(file, "  </jedule_meta>\n");
     }
 
-    print_platform(file, jedule->root_container);
+    fprintf(file, "  <platform>\n");
+    jedule->root_container->print(file);
+    fprintf(file, "  </platform>\n");
 
-    print_events(file, event_list);
+    fprintf(file, "  <events>\n");
+    unsigned int i;
+    jed_event_t event;
+    xbt_dynar_foreach(event_list, i, event) {
+        event->print(file);
+    }
+    fprintf(file, "  </events>\n");
 
     fprintf(file, "</jedule>\n");
   }
index 7c33b3e..d04c00f 100644 (file)
@@ -169,7 +169,6 @@ void Container::print(FILE* jed_file) {
   fprintf(jed_file, "    </res>\n");
 }
 
-
 }
 }
 
@@ -203,9 +202,6 @@ static void add_subset_to(xbt_dynar_t subset_list, int start, int end, jed_conta
 static void add_subsets_to(xbt_dynar_t subset_list, xbt_dynar_t hostgroup, jed_container_t parent) {
   unsigned int iter;
   char *host_name;
-  xbt_dynar_t id_list;
-  int *id_ar;
-  int nb_ids;
   int id;
 
   // get ids for each host
@@ -218,7 +214,7 @@ static void add_subsets_to(xbt_dynar_t subset_list, xbt_dynar_t hostgroup, jed_c
   xbt_assert( hostgroup != nullptr );
   xbt_assert( parent != nullptr );
 
-  id_list = xbt_dynar_new(sizeof(int), nullptr);
+  xbt_dynar_t id_list = xbt_dynar_new(sizeof(int), nullptr);
 
   xbt_dynar_foreach(hostgroup, iter, host_name) {
     jed_container_t parent;
@@ -227,18 +223,16 @@ static void add_subsets_to(xbt_dynar_t subset_list, xbt_dynar_t hostgroup, jed_c
     id = parent->name2id.at(host_name);
     xbt_dynar_push(id_list, &id);
   }
-  nb_ids = xbt_dynar_length(id_list);
+  int nb_ids = xbt_dynar_length(id_list);
   xbt_dynar_sort(id_list, &compare_ids);
 
-  id_ar = static_cast<int*>(xbt_dynar_to_array(id_list));
+  int *id_ar = static_cast<int*>(xbt_dynar_to_array(id_list));
 
   if( nb_ids > 0 ) {
     int start = 0;
-    int pos;
-    int i;
 
-    pos = start;
-    for(i=0; i<nb_ids; i++) {
+    int pos = start;
+    for(int i=0; i<nb_ids; i++) {
       if( id_ar[i] - id_ar[pos] > 1 ) {
         add_subset_to( subset_list, id_ar[start], id_ar[pos], parent );
         start = i;
@@ -251,7 +245,6 @@ static void add_subsets_to(xbt_dynar_t subset_list, xbt_dynar_t hostgroup, jed_c
           add_subset_to( subset_list, id_ar[start], id_ar[i], parent );
         }
       }
-
       pos = i;
     }
   }
@@ -288,8 +281,6 @@ void jed_simgrid_get_resource_selection_by_hosts(xbt_dynar_t subset_list, std::v
     add_subsets_to(subset_list, elm.second, parent);
     xbt_dynar_free_container(&elm.second);
   }
-
-
 }
 
 void jedule_add_meta_info(jedule_t jedule, char *key, char *value) {
index c321a59..58766b5 100644 (file)
@@ -75,19 +75,18 @@ void jedule_sd_dump(const char * filename)
 {
   if (my_jedule) {
     char *fname;
-    FILE *fh;
     if (!filename) {
       fname = bprintf("%s.jed", xbt_binary_name);
     } else {
       fname = xbt_strdup(filename);
     }
 
-    fh = fopen(fname, "w");
+    FILE *fh = fopen(fname, "w");
 
-    write_jedule_output(fh, my_jedule, jedule_event_list, nullptr);
+    write_jedule_output(fh, my_jedule, jedule_event_list);
 
     fclose(fh);
-    free(fname);
+    xbt_free(fname);
   }
 }
 #endif