diff options
author | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2015-03-05 15:12:28 +0100 |
---|---|---|
committer | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2015-03-05 15:12:28 +0100 |
commit | 274279789fbcb442acb2fe6ce805fd57bdcf0b8c (patch) | |
tree | 9e4e53dc8ab196afe76d8da2ab5090f8c1c9b865 /ufo/ufo-scheduler.c | |
parent | 6d82029c51cf5fe688df7569baa860c4031c6b06 (diff) |
Fix re-running the same task graph
Since we can do this implicitly, the ::enable-reruns property has been removed
too.
Diffstat (limited to 'ufo/ufo-scheduler.c')
-rw-r--r-- | ufo/ufo-scheduler.c | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/ufo/ufo-scheduler.c b/ufo/ufo-scheduler.c index fb76932..a3d1624 100644 --- a/ufo/ufo-scheduler.c +++ b/ufo/ufo-scheduler.c @@ -333,6 +333,8 @@ cleanup_task_local_data (TaskLocalData **tlds, for (guint i = 0; i < n; i++) { TaskLocalData *tld = tlds[i]; + ufo_task_node_reset (UFO_TASK_NODE (tld->task)); + g_free (tld->dims); g_free (tld->finished); g_free (tld); @@ -599,34 +601,17 @@ ufo_scheduler_run (UfoBaseScheduler *scheduler, guint n_nodes; GThread **threads; TaskLocalData **tlds; - gboolean rerun; gboolean expand; gboolean trace; priv = UFO_SCHEDULER_GET_PRIVATE (scheduler); g_object_get (scheduler, - "enable-reruns", &rerun, "enable-tracing", &trace, "expand", &expand, NULL); - if (rerun) { - graph = UFO_TASK_GRAPH (ufo_graph_copy (UFO_GRAPH (task_graph), error)); - } - else { - if (priv->ran) { - g_set_error (error, UFO_SCHEDULER_ERROR, UFO_SCHEDULER_ERROR_SETUP, - "UfoScheduler::run called for second time but ::enable-reruns is set to FALSE"); - return; - } - - graph = task_graph; - } - - if (graph == NULL) - return; - + graph = task_graph; arch = ufo_base_scheduler_get_arch (scheduler); gpu_nodes = ufo_base_scheduler_get_gpu_nodes (scheduler); @@ -636,7 +621,11 @@ ufo_scheduler_run (UfoBaseScheduler *scheduler, if (expand) { gboolean expand_remote = priv->mode == UFO_REMOTE_MODE_STREAM; - ufo_task_graph_expand (graph, arch, g_list_length (gpu_nodes), expand_remote); + + if (!priv->ran) + ufo_task_graph_expand (graph, arch, g_list_length (gpu_nodes), expand_remote); + else + g_debug ("Task graph already expanded, skipping."); } propagate_partition (graph); @@ -701,10 +690,6 @@ ufo_scheduler_run (UfoBaseScheduler *scheduler, g_list_free (groups); g_free (threads); - /* The graph is a copy which we do not need anymore */ - if (rerun) - g_object_unref (graph); - priv->ran = TRUE; } |