Browse Source

use exclude_from_dag flag in the bound computation too

Samuel Thibault 14 years ago
parent
commit
dd9534fedc
5 changed files with 5 additions and 14 deletions
  1. 1 1
      src/core/jobs.c
  2. 2 3
      src/core/jobs.h
  3. 2 0
      src/profiling/bound.c
  4. 0 2
      src/util/execute_on_all.c
  5. 0 8
      src/util/malloc.c

+ 1 - 1
src/core/jobs.c

@@ -43,6 +43,7 @@ size_t _starpu_job_get_data_size(starpu_job_t j)
 #ifdef STARPU_USE_FXT
 /* we need to identify each task to generate the DAG. */
 static unsigned long job_cnt = 0;
+#endif
 
 void _starpu_exclude_task_from_dag(struct starpu_task *task)
 {
@@ -50,7 +51,6 @@ void _starpu_exclude_task_from_dag(struct starpu_task *task)
 
 	j->exclude_from_dag = 1;
 }
-#endif
 
 /* create an internal starpu_job_t structure to encapsulate the task */
 starpu_job_t __attribute__((malloc)) _starpu_job_create(struct starpu_task *task)

+ 2 - 3
src/core/jobs.h

@@ -71,9 +71,10 @@ LIST_TYPE(starpu_job,
 	unsigned submitted;
 	unsigned terminated;
 
+        unsigned exclude_from_dag;
+
 #ifdef STARPU_USE_FXT
 	unsigned long job_id;
-        unsigned exclude_from_dag;
         const char *model_name;
 #endif
 	struct bound_task *bound_task;
@@ -83,9 +84,7 @@ starpu_job_t __attribute__((malloc)) _starpu_job_create(struct starpu_task *task
 void _starpu_job_destroy(starpu_job_t j);
 void _starpu_wait_job(starpu_job_t j);
 
-#ifdef STARPU_USE_FXT
 void _starpu_exclude_task_from_dag(struct starpu_task *task);
-#endif
 
 /* try to submit job j, enqueue it if it's not schedulable yet */
 unsigned _starpu_enforce_deps_and_schedule(starpu_job_t j, unsigned job_is_already_locked);

+ 2 - 0
src/profiling/bound.c

@@ -150,6 +150,8 @@ void starpu_bound_start(int deps, int prio)
 static int good_job(starpu_job_t j)
 {
 	/* No codelet, nothing to measure */
+	if (j->exclude_from_dag)
+		return 0;
 	if (!j->task->cl)
 		return 0;
 	/* No performance model, no time duration estimation */

+ 0 - 2
src/util/execute_on_all.c

@@ -72,9 +72,7 @@ void starpu_execute_on_each_worker(void (*func)(void *), void *arg, uint32_t whe
 		tasks[worker]->detach = 0;
 		tasks[worker]->destroy = 0;
 
-#ifdef STARPU_USE_FXT
 		_starpu_exclude_task_from_dag(tasks[worker]);
-#endif
 
 		ret = starpu_task_submit(tasks[worker]);
 		if (ret == -ENODEV)

+ 0 - 8
src/util/malloc.c

@@ -91,9 +91,7 @@ int starpu_data_malloc_pinned_if_possible(void **A, size_t dim)
 
 		task->synchronous = 1;
 
-#ifdef STARPU_USE_FXT
 		_starpu_exclude_task_from_dag(task);
-#endif
 
 		push_res = starpu_task_submit(task);
 		STARPU_ASSERT(push_res != -ENODEV);
@@ -117,9 +115,7 @@ int starpu_data_malloc_pinned_if_possible(void **A, size_t dim)
 //
 //		task->synchronous = 1;
 //
-//#ifdef STARPU_USE_FXT
 //		_starpu_exclude_task_from_dag(task);
-//#endif
 //
 //		push_res = starpu_task_submit(task);
 //		STARPU_ASSERT(push_res != -ENODEV);
@@ -187,9 +183,7 @@ int starpu_data_free_pinned_if_possible(void *A)
 
 		task->synchronous = 1;
 
-#ifdef STARPU_USE_FXT
 		_starpu_exclude_task_from_dag(task);
-#endif
 
 		push_res = starpu_task_submit(task);
 		STARPU_ASSERT(push_res != -ENODEV);
@@ -208,9 +202,7 @@ int starpu_data_free_pinned_if_possible(void *A)
 //
 //		task->synchronous = 1;
 //
-//#ifdef STARPU_USE_FXT
 //		_starpu_exclude_task_from_dag(task);
-//#endif
 //
 //		push_res = starpu_task_submit(task);
 //		STARPU_ASSERT(push_res != -ENODEV);