From: Frederic Suter Date: Thu, 28 Jan 2016 13:53:56 +0000 (+0100) Subject: produce a jedule file in the jedule format X-Git-Tag: v3_13~1044^2~1 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/c3b30399c645e6d05d67a2cb03e8432958bc11b9?ds=sidebyside produce a jedule file in the jedule format and not by hand in the old format ... --- diff --git a/examples/simdag/scheduling/minmin_test.c b/examples/simdag/scheduling/minmin_test.c index ffc9e88a8a..de62a15e5f 100644 --- a/examples/simdag/scheduling/minmin_test.c +++ b/examples/simdag/scheduling/minmin_test.c @@ -186,73 +186,6 @@ static sg_host_t SD_task_get_best_workstation(SD_task_t task) return best_workstation; } -static void output_xml(FILE * out, xbt_dynar_t dax) -{ - unsigned int i, j, k; - int current_nworkstations; - const int nworkstations = sg_host_count(); - const sg_host_t *workstations = sg_host_list(); - SD_task_t task; - sg_host_t *list; - - fprintf(out, "\n"); - fprintf(out, "\n"); - fprintf(out, " \n"); - fprintf(out, " \n"); - fprintf(out, " \n"); - fprintf(out, - " \n", - nworkstations); - fprintf(out, " \n"); - fprintf(out, " \n"); - fprintf(out, " \n"); - - xbt_dynar_foreach(dax, i, task) { - fprintf(out, " \n"); - fprintf(out, " \n", - SD_task_get_name(task)); - fprintf(out, " \n"); - if (SD_task_get_kind(task) == SD_TASK_COMM_E2E) - fprintf(out, "transfer\"/>\n"); - - fprintf(out, - " \n", - SD_task_get_start_time(task)); - fprintf(out, - " \n", - SD_task_get_finish_time(task)); - fprintf(out, " \n"); - - current_nworkstations = SD_task_get_workstation_count(task); - - fprintf(out, - " \n", - current_nworkstations); - - fprintf(out, " \n"); - list = SD_task_get_workstation_list(task); - for (j = 0; j < current_nworkstations; j++) { - for (k = 0; k < nworkstations; k++) { - if (!strcmp(sg_host_get_name(workstations[k]), - sg_host_get_name(list[j]))) { - fprintf(out, " \n", - k); - fprintf(out, - " \n"); - break; - } - } - } - fprintf(out, " \n"); - fprintf(out, " \n"); - fprintf(out, " \n"); - } - fprintf(out, " \n"); - fprintf(out, "\n"); -} - int main(int argc, char **argv) { unsigned int cursor; @@ -262,21 +195,16 @@ int main(int argc, char **argv) sg_host_t workstation, selected_workstation = NULL; int total_nworkstations = 0; const sg_host_t *workstations = NULL; + char * tracefilename = NULL; xbt_dynar_t dax; - FILE *out = NULL; /* initialization of SD */ SD_init(&argc, argv); /* Check our arguments */ xbt_assert(argc > 2, "Usage: %s platform_file dax_file [jedule_file]\n" - "\tExample: %s simulacrum_7_hosts.xml Montage_25.xml Montage_25.jed", - argv[0], argv[0]); + "\tExample: %s simulacrum_7_hosts.xml Montage_25.xml Montage_25.jed", argv[0], argv[0]); - char *last = strrchr(argv[2], '.'); - char * tracefilename = bprintf("%.*s.jed",(int) (last == NULL ? - strlen(argv[2]) : - last - argv[2]), argv[2]); if (argc == 4) tracefilename = xbt_strdup(argv[3]); @@ -365,23 +293,12 @@ int main(int argc, char **argv) XBT_INFO("Simulation Time: %f", SD_get_clock()); - - - - XBT_INFO - ("------------------- Produce the trace file---------------------------"); - XBT_INFO("Producing the trace of the run into %s", tracefilename); - out = fopen(tracefilename, "w"); - xbt_assert(out, "Cannot write to %s", tracefilename); - free(tracefilename); - - output_xml(out, dax); - - fclose(out); - + XBT_INFO("------------------- Produce the trace file---------------------------"); + XBT_INFO("Producing a jedule output (if active) of the run into %s", tracefilename?tracefilename:"./minmin_test.jed"); #ifdef HAVE_JEDULE - jedule_sd_dump(); + jedule_sd_dump(tracefilename); #endif + free(tracefilename); xbt_dynar_free_container(&ready_tasks); diff --git a/examples/simdag/scheduling/test_minmin.tesh b/examples/simdag/scheduling/test_minmin.tesh index ce9e7e7779..380679343d 100644 --- a/examples/simdag/scheduling/test_minmin.tesh +++ b/examples/simdag/scheduling/test_minmin.tesh @@ -32,7 +32,7 @@ $ $SG_TEST_EXENV ${bindir:=.}/minmin_test --log=sd_daxparse.thresh:critical ${sr > [98.184192] [test/INFO] Schedule end on Host 27 > [98.184618] [test/INFO] Simulation Time: 98.184618 > [98.184618] [test/INFO] ------------------- Produce the trace file--------------------------- -> [98.184618] [test/INFO] Producing the trace of the run into ./Montage_25.jed +> [98.184618] [test/INFO] Producing a jedule output (if active) of the run into minmin_test.jed -$ cmake -E remove -f ${srcdir:=.}/Montage_25.jed ${srcdir:=.}/minmin_test.jed \ No newline at end of file +$ cmake -E remove -f ${srcdir:=.}/minmin_test.jed \ No newline at end of file diff --git a/include/simgrid/jedule/jedule_sd_binding.h b/include/simgrid/jedule/jedule_sd_binding.h index 6d62766d54..65958e4485 100644 --- a/include/simgrid/jedule/jedule_sd_binding.h +++ b/include/simgrid/jedule/jedule_sd_binding.h @@ -22,7 +22,7 @@ XBT_PUBLIC(void) jedule_sd_cleanup(void); XBT_PUBLIC(void) jedule_sd_exit(void); -XBT_PUBLIC(void) jedule_sd_dump(const char* fname); +XBT_PUBLIC(void) jedule_sd_dump(const char* filename); SG_END_DECL() #endif /* JEDULE_SD_BINDING_H_ */ diff --git a/src/instr/jedule/jedule_sd_binding.c b/src/instr/jedule/jedule_sd_binding.c index 89bb566a60..d780d3c3d8 100644 --- a/src/instr/jedule/jedule_sd_binding.c +++ b/src/instr/jedule/jedule_sd_binding.c @@ -124,12 +124,15 @@ void jedule_sd_exit(void) } } -void jedule_sd_dump(const char * fname) +void jedule_sd_dump(const char * filename) { if (jedule) { + char *fname; FILE *fh; - if (!fname) { + if (!filename) { fname = bprintf("%s.jed", xbt_binary_name); + } else { + fname = xbt_strdup(filename); } fh = fopen(fname, "w"); @@ -137,6 +140,7 @@ void jedule_sd_dump(const char * fname) write_jedule_output(fh, jedule, jedule_event_list, NULL); fclose(fh); + free(fname); } }