Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
just keep cycle detection in dag-dotload example
authorSUTER Frederic <frederic.suter@cc.in2p3.fr>
Fri, 24 Dec 2021 09:05:53 +0000 (10:05 +0100)
committerSUTER Frederic <frederic.suter@cc.in2p3.fr>
Fri, 24 Dec 2021 09:05:53 +0000 (10:05 +0100)
MANIFEST.in
examples/deprecated/simdag/CMakeLists.txt
examples/deprecated/simdag/dag-dotload/dag.dot [deleted file]
examples/deprecated/simdag/dag-dotload/sd_dag-dotload.c
examples/deprecated/simdag/dag-dotload/sd_dag-dotload.tesh

index 3b27284..86a5e6d 100644 (file)
@@ -491,7 +491,6 @@ include examples/deprecated/msg/mc/centralized_mutex.tesh
 include examples/deprecated/msg/mc/deploy_bugged2_liveness.xml
 include examples/deprecated/msg/mc/deploy_centralized_mutex.xml
 include examples/deprecated/msg/mc/promela_bugged2_liveness
-include examples/deprecated/simdag/dag-dotload/dag.dot
 include examples/deprecated/simdag/dag-dotload/dag_with_cycle.dot
 include examples/deprecated/simdag/dag-dotload/sd_dag-dotload.c
 include examples/deprecated/simdag/dag-dotload/sd_dag-dotload.tesh
index bdb4c51..d48566c 100644 (file)
@@ -24,7 +24,6 @@ set(xml_files    ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/scheduling/Montage
                                   ${CMAKE_CURRENT_SOURCE_DIR}/daxload/simple_dax_with_cycle.xml
                                   ${CMAKE_CURRENT_SOURCE_DIR}/daxload/smalldax.xml                         PARENT_SCOPE)
 set(txt_files    ${txt_files}     ${CMAKE_CURRENT_SOURCE_DIR}/dag-dotload/dag_with_cycle.dot
-                                  ${CMAKE_CURRENT_SOURCE_DIR}/dag-dotload/dag.dot
                                   ${CMAKE_CURRENT_SOURCE_DIR}/scheduling/expected_output.jed               PARENT_SCOPE)
 
 foreach(x daxload scheduling)
diff --git a/examples/deprecated/simdag/dag-dotload/dag.dot b/examples/deprecated/simdag/dag-dotload/dag.dot
deleted file mode 100644 (file)
index 56a5745..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-digraph G {
-end [size="10000000129.452715"];
-0 [size="10000000129.452715" category="taskA"];
-1 [size="10000000131.133657" category="taskA"];
-2 [size="10000000121.12487" category="taskA"];
-3 [size="10000000230.608025" category="taskA"];
-4 [size="10000000004.994019" category="taskB"];
-5 [size="10000000046.016401" category="taskB"];
-6 [size="10000000091.598791" category="taskB"];
-7 [size="10000000040.679438" category="taskB"];
-8 [size="10000000250.490017" category="taskC"];
-9 [size="10000000079.267649" category="taskC"];
-0->1  [size="10001.389601075407" category="oi"];
-1->2  [size="10004.164631264117"];
-2->3  [size="10001.781644976922"];
-3->4  [size="-1"];
-4->5  [size="10029.262823275711"];
-5->6  [size="0.0"];
-6->7  [size="10004.920415194067"];
-7->8  [size="10000.234048984707"];
-8->9  ;
-7->end  [size="10014000.0"];
-root->5  [size="10014000.0"];
-}
index 559c756..3753651 100644 (file)
@@ -16,8 +16,6 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Logging specific to this SimDag example");
 int main(int argc, char **argv)
 {
   xbt_dynar_t dot;
-  unsigned int cursor;
-  SD_task_t task;
 
   /* initialization of SD */
   SD_init(&argc, argv);
@@ -36,72 +34,5 @@ int main(int argc, char **argv)
     exit(2);
   }
 
-  char *tracefilename;
-  const char* last = strrchr(argv[2], '.');
-  tracefilename = bprintf("%.*s.trace", (int) (last == NULL ? strlen(argv[2]) : last - argv[2]),argv[2]);
-  if (argc == 4)
-    tracefilename = xbt_strdup(argv[3]);
-
-  /* Display all the tasks */
-  XBT_INFO("------------------- Display all tasks of the loaded DAG ---------------------------");
-  xbt_dynar_foreach(dot, cursor, task) {
-    SD_task_dump(task);
-  }
-
-  FILE *dotout = fopen("dot.dot", "w");
-  fprintf(dotout, "digraph A {\n");
-  xbt_dynar_foreach(dot, cursor, task) {
-    SD_task_dotty(task, dotout);
-  }
-  fprintf(dotout, "}\n");
-  fclose(dotout);
-
-  /* Schedule them all on the first workstation */
-  XBT_INFO("------------------- Schedule tasks ---------------------------");
-  sg_host_t *hosts = sg_host_list();
-
-  int count = sg_host_count();
-  xbt_dynar_foreach(dot, cursor, task) {
-    if (SD_task_get_kind(task) == SD_TASK_COMP_SEQ) {
-      if (!strcmp(SD_task_get_name(task), "end"))
-        SD_task_schedulel(task, 1, hosts[0]);
-      else
-        SD_task_schedulel(task, 1, hosts[cursor % count]);
-    }
-  }
-  xbt_free(hosts);
-
-  XBT_INFO("------------------- Run the schedule ---------------------------");
-  SD_simulate(-1);
-
-  XBT_INFO("------------------- Produce the trace file---------------------------");
-  XBT_INFO("Producing the trace of the run into %s", basename(tracefilename));
-  FILE *out = fopen(tracefilename, "w");
-  xbt_assert(out, "Cannot write to %s", tracefilename);
-  free(tracefilename);
-
-  xbt_dynar_foreach(dot, cursor, task) {
-    int kind = SD_task_get_kind(task);
-    sg_host_t *wsl = SD_task_get_workstation_list(task);
-    switch (kind) {
-    case SD_TASK_COMP_SEQ:
-      fprintf(out, "[%f->%f] %s compute %f flops # %s\n",
-          SD_task_get_start_time(task), SD_task_get_finish_time(task),
-          sg_host_get_name(wsl[0]), SD_task_get_amount(task), SD_task_get_name(task));
-      break;
-    case SD_TASK_COMM_E2E:
-      fprintf(out, "[%f -> %f] %s -> %s transfer of %.0f bytes # %s\n",
-          SD_task_get_start_time(task), SD_task_get_finish_time(task),
-          sg_host_get_name(wsl[0]), sg_host_get_name(wsl[1]), SD_task_get_amount(task), SD_task_get_name(task));
-      break;
-    default:
-      xbt_die("Task %s is of unknown kind %u", SD_task_get_name(task), SD_task_get_kind(task));
-    }
-    SD_task_destroy(task);
-  }
-  xbt_dynar_free_container(&dot);
-  fclose(out);
-
-  /* exit */
   return 0;
 }
index bf07071..5e453d6 100644 (file)
@@ -1,221 +1,6 @@
 #!/usr/bin/env tesh
 p Test the loader of DAG written in the DOT format
 
-# The order differ when executed with gcc's thread sanitizer
-! output sort
-
-$ ${bindir:=.}/dag-dotload/sd_dag-dotload --log=no_loc ${srcdir:=.}/../../platforms/cluster_backbone.xml ${srcdir:=.}/dag-dotload/dag.dot
-> [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.
-> [0.000000] [test/INFO] ------------------- Display all tasks of the loaded DAG ---------------------------
-> [0.000000] [sd_task/INFO] Displaying task root
-> [0.000000] [sd_task/INFO]   - state: schedulable not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 0
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 0
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     0
-> [0.000000] [sd_task/INFO]     root->5
-> [0.000000] [sd_task/INFO] Displaying task 0
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 10000000129
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     root
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     0->1
-> [0.000000] [sd_task/INFO] Displaying task 1
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 10000000131
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     0->1
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     1->2
-> [0.000000] [sd_task/INFO] Displaying task 2
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 10000000121
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     1->2
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     2->3
-> [0.000000] [sd_task/INFO] Displaying task 3
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 10000000231
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     2->3
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     4
-> [0.000000] [sd_task/INFO] Displaying task 4
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 10000000005
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     3
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     4->5
-> [0.000000] [sd_task/INFO] Displaying task 5
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 10000000046
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 2
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     4->5
-> [0.000000] [sd_task/INFO]     root->5
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     6
-> [0.000000] [sd_task/INFO] Displaying task 6
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 10000000092
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     5
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     6->7
-> [0.000000] [sd_task/INFO] Displaying task 7
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 10000000041
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     6->7
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     7->8
-> [0.000000] [sd_task/INFO]     7->end
-> [0.000000] [sd_task/INFO] Displaying task 8
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 10000000250
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     7->8
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     9
-> [0.000000] [sd_task/INFO] Displaying task 9
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 10000000079
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     8
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     end
-> [0.000000] [sd_task/INFO] Displaying task 0->1
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - amount: 10001
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     0
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     1
-> [0.000000] [sd_task/INFO] Displaying task 1->2
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - amount: 10004
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     1
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     2
-> [0.000000] [sd_task/INFO] Displaying task 2->3
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - amount: 10002
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     2
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     3
-> [0.000000] [sd_task/INFO] Displaying task 4->5
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - amount: 10029
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     4
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     5
-> [0.000000] [sd_task/INFO] Displaying task 6->7
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - amount: 10005
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     6
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     7
-> [0.000000] [sd_task/INFO] Displaying task 7->8
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - amount: 10000
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     7
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     8
-> [0.000000] [sd_task/INFO] Displaying task 7->end
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - amount: 10014000
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     7
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     end
-> [0.000000] [sd_task/INFO] Displaying task root->5
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: end-to-end communication
-> [0.000000] [sd_task/INFO]   - amount: 10014000
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 1
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     root
-> [0.000000] [sd_task/INFO]   - post-dependencies:
-> [0.000000] [sd_task/INFO]     5
-> [0.000000] [sd_task/INFO] Displaying task end
-> [0.000000] [sd_task/INFO]   - state: not scheduled not runnable
-> [0.000000] [sd_task/INFO]   - kind: sequential computation
-> [0.000000] [sd_task/INFO]   - amount: 10000000129
-> [0.000000] [sd_task/INFO]   - Dependencies to satisfy: 2
-> [0.000000] [sd_task/INFO]   - pre-dependencies:
-> [0.000000] [sd_task/INFO]     9
-> [0.000000] [sd_task/INFO]     7->end
-> [0.000000] [test/INFO] ------------------- Schedule tasks ---------------------------
-> [0.000000] [test/INFO] ------------------- Run the schedule ---------------------------
-> [110.004162] [test/INFO] ------------------- Produce the trace file---------------------------
-> [110.004162] [test/INFO] Producing the trace of the run into dag.trace
-
-$ cat ${srcdir:=.}/dag-dotload/dag.trace
-> [0.000000->0.000000] node-0.simgrid.org compute 0.000000 flops # root
-> [0.000000->10.000000] node-1.simgrid.org compute 10000000129.452715 flops # 0
-> [10.000680->20.000680] node-10.simgrid.org compute 10000000131.133657 flops # 1
-> [20.001360->30.001360] node-11.simgrid.org compute 10000000121.124870 flops # 2
-> [30.002040->40.002041] node-12.simgrid.org compute 10000000230.608025 flops # 3
-> [40.002041->50.002041] node-13.simgrid.org compute 10000000004.994019 flops # 4
-> [50.002721->60.002721] node-14.simgrid.org compute 10000000046.016401 flops # 5
-> [60.002721->70.002721] node-15.simgrid.org compute 10000000091.598791 flops # 6
-> [70.003401->80.003401] node-16.simgrid.org compute 10000000040.679438 flops # 7
-> [80.004161->90.004161] node-17.simgrid.org compute 10000000250.490017 flops # 8
-> [90.004161->100.004161] node-18.simgrid.org compute 10000000079.267649 flops # 9
-> [10.000000 -> 10.000680] node-1.simgrid.org -> node-10.simgrid.org transfer of 10001 bytes # 0->1
-> [20.000680 -> 20.001360] node-10.simgrid.org -> node-11.simgrid.org transfer of 10004 bytes # 1->2
-> [30.001360 -> 30.002040] node-11.simgrid.org -> node-12.simgrid.org transfer of 10002 bytes # 2->3
-> [50.002041 -> 50.002721] node-13.simgrid.org -> node-14.simgrid.org transfer of 10029 bytes # 4->5
-> [70.002721 -> 70.003401] node-15.simgrid.org -> node-16.simgrid.org transfer of 10005 bytes # 6->7
-> [80.003401 -> 80.004161] node-16.simgrid.org -> node-17.simgrid.org transfer of 10000 bytes # 7->8
-> [80.003401 -> 80.084193] node-16.simgrid.org -> node-0.simgrid.org transfer of 10014000 bytes # 7->end
-> [0.000000 -> 0.080712] node-0.simgrid.org -> node-14.simgrid.org transfer of 10014000 bytes # root->5
-> [100.004161->110.004162] node-0.simgrid.org compute 10000000129.452715 flops # end
-
-$ rm -f ${srcdir:=.}/dag-dotload/dag.trace ${srcdir:=.}/dot.dot
-
 ! expect return 2
 $ ${bindir:=.}/dag-dotload/sd_dag-dotload --log=no_loc ${srcdir:=.}/../../platforms/cluster_backbone.xml ${srcdir:=.}/dag-dotload/dag_with_cycle.dot
 > [0.000000] [xbt_cfg/INFO] Switching to the L07 model to handle parallel tasks.