Browse Source

Modified init value of task->specific_starpu

Andra Hugo 14 years ago
parent
commit
0cc1dfdce2

+ 1 - 1
include/starpu_task.h

@@ -207,7 +207,7 @@ struct starpu_task {
 	.predicted = -1.0,				\
 	.starpu_private = NULL,				\
 	.sched_ctx = 0,					\
-	.specific_starpu = 1				\
+	.specific_starpu = 0				\
 };
 
 /*

+ 3 - 3
src/core/dependencies/implicit_data_deps.c

@@ -261,7 +261,7 @@ void _starpu_detect_implicit_data_deps_with_handle(struct starpu_task *pre_sync_
 
 				_starpu_add_writer_after_readers(handle, new_sync_task, new_sync_task);
 
-				starpu_task_submit(new_sync_task);
+				_starpu_task_submit_internal(new_sync_task);
 			}
 	
 			_starpu_add_reader_after_writer(handle, pre_sync_task, post_sync_task);
@@ -444,7 +444,7 @@ void _starpu_unlock_post_sync_tasks(starpu_data_handle handle)
 			/* There is no need to depend on that task now, since it was already unlocked */
 			_starpu_release_data_enforce_sequential_consistency(link->task, handle);
 
-			int ret = starpu_task_submit(link->task);
+			int ret = _starpu_task_submit_internal(link->task);
 			STARPU_ASSERT(!ret);
 			link = link->next;
 		}
@@ -474,7 +474,7 @@ int _starpu_data_wait_until_available(starpu_data_handle handle, starpu_access_m
 		PTHREAD_MUTEX_UNLOCK(&handle->sequential_consistency_mutex);
 
 		/* TODO detect if this is superflous */
-		int ret = starpu_task_submit(sync_task);
+		int ret = _starpu_task_submit_internal(sync_task);
 		STARPU_ASSERT(!ret);
 		starpu_task_wait(sync_task);
 	}

+ 1 - 1
src/core/sched_ctx.c

@@ -98,7 +98,7 @@ static void _starpu_update_workers(int *workerids_in_ctx, int nworkerids_in_ctx,
 
 		_starpu_exclude_task_from_dag(tasks[i]);
 
-		ret = starpu_task_submit(tasks[i]);
+		ret = _starpu_task_submit_internal(tasks[i]);
 		if (ret == -ENODEV)
 		  {
 		    /* if the worker is not able to execute this tasks, we

+ 7 - 1
src/core/task.c

@@ -82,7 +82,7 @@ void starpu_task_init(struct starpu_task *task)
 
 	task->sched_ctx = _starpu_get_initial_sched_ctx()->sched_ctx_id;
 	
-	task->specific_starpu = 1;
+	task->specific_starpu = 0;
 }
 
 /* Free all the ressources allocated for a task, without deallocating the task
@@ -313,6 +313,12 @@ int starpu_task_submit(struct starpu_task *task)
 	return ret;
 }
 
+int _starpu_task_submit_internal(struct starpu_task *task)
+{
+	task->specific_starpu = 1;
+	return starpu_task_submit(task);
+}
+
 void starpu_display_codelet_stats(struct starpu_codelet_t *cl)
 {
 	unsigned worker;

+ 3 - 0
src/core/task.h

@@ -42,4 +42,7 @@ starpu_job_t _starpu_get_job_associated_to_task(struct starpu_task *task);
 
 struct starpu_task *_starpu_create_task_alias(struct starpu_task *task);
 
+/* Submits starpu internal tasks to the initial context */
+int _starpu_task_submit_internal(struct starpu_task *task);
+
 #endif // __CORE_TASK_H__

+ 3 - 3
src/datawizard/reduction.c

@@ -183,7 +183,7 @@ void starpu_data_end_reduction_mode(starpu_data_handle handle)
 					/* we don't perform the reduction until both replicates are ready */
 					starpu_task_declare_deps_array(redux_task, ndeps, task_deps); 
 		
-					int ret = starpu_task_submit(redux_task);
+					int ret = _starpu_task_submit_internal(redux_task);
 					STARPU_ASSERT(!ret);
 		
 				}
@@ -213,7 +213,7 @@ void starpu_data_end_reduction_mode(starpu_data_handle handle)
 		if (last_replicate_deps[0])
 			starpu_task_declare_deps_array(redux_task, 1, &last_replicate_deps[0]);
 
-		int ret = starpu_task_submit(redux_task);
+		int ret = _starpu_task_submit_internal(redux_task);
 		STARPU_ASSERT(!ret);
 
 #else
@@ -239,7 +239,7 @@ void starpu_data_end_reduction_mode(starpu_data_handle handle)
 			redux_task->buffers[1].handle = replicate_array[replicate];
 			redux_task->buffers[1].mode = STARPU_R;
 	
-			int ret = starpu_task_submit(redux_task);
+			int ret = _starpu_task_submit_internal(redux_task);
 			STARPU_ASSERT(!ret);
 		}
 #endif

+ 2 - 2
src/datawizard/user_interactions.c

@@ -155,7 +155,7 @@ int starpu_data_acquire_cb(starpu_data_handle handle,
 		PTHREAD_MUTEX_UNLOCK(&handle->sequential_consistency_mutex);
 
 		/* TODO detect if this is superflous */
-		int ret = starpu_task_submit(wrapper->pre_sync_task);
+		int ret = _starpu_task_submit_internal(wrapper->pre_sync_task);
 		STARPU_ASSERT(!ret);
 	}
 	else {
@@ -235,7 +235,7 @@ int starpu_data_acquire(starpu_data_handle handle, starpu_access_mode mode)
 
 		/* TODO detect if this is superflous */
 		wrapper.pre_sync_task->synchronous = 1;
-		int ret = starpu_task_submit(wrapper.pre_sync_task);
+		int ret = _starpu_task_submit_internal(wrapper.pre_sync_task);
 		STARPU_ASSERT(!ret);
 		//starpu_task_wait(wrapper.pre_sync_task);
 	}

+ 1 - 1
src/util/execute_on_all.c

@@ -74,7 +74,7 @@ void starpu_execute_on_each_worker(void (*func)(void *), void *arg, uint32_t whe
 
 		_starpu_exclude_task_from_dag(tasks[worker]);
 
-		ret = starpu_task_submit(tasks[worker]);
+		ret = _starpu_task_submit_internal(tasks[worker]);
 		if (ret == -ENODEV)
 		{
 			/* if the worker is not able to execute this tasks, we

+ 4 - 4
src/util/malloc.c

@@ -94,7 +94,7 @@ int starpu_malloc(void **A, size_t dim)
 
 		_starpu_exclude_task_from_dag(task);
 
-		push_res = starpu_task_submit(task);
+		push_res = _starpu_task_submit_internal(task);
 		STARPU_ASSERT(push_res != -ENODEV);
 #endif
 	}
@@ -118,7 +118,7 @@ int starpu_malloc(void **A, size_t dim)
 //
 //		_starpu_exclude_task_from_dag(task);
 //
-//		push_res = starpu_task_submit(task);
+//		push_res = _starpu_task_submit_internal(task);
 //		STARPU_ASSERT(push_res != -ENODEV);
 //#endif
 //        }
@@ -186,7 +186,7 @@ int starpu_free(void *A)
 
 		_starpu_exclude_task_from_dag(task);
 
-		push_res = starpu_task_submit(task);
+		push_res = _starpu_task_submit_internal(task);
 		STARPU_ASSERT(push_res != -ENODEV);
 #endif
 	}
@@ -205,7 +205,7 @@ int starpu_free(void *A)
 //
 //		_starpu_exclude_task_from_dag(task);
 //
-//		push_res = starpu_task_submit(task);
+//		push_res = _starpu_task_submit_internal(task);
 //		STARPU_ASSERT(push_res != -ENODEV);
 //#endif
 //	}

+ 1 - 1
src/util/starpu_create_sync_task.c

@@ -39,6 +39,6 @@ void starpu_create_sync_task(starpu_tag_t sync_tag, unsigned ndeps, starpu_tag_t
 	/* This task does nothing */
 	sync_task->cl = NULL;
 
-	int sync_ret = starpu_task_submit(sync_task);
+	int sync_ret = _starpu_task_submit_internal(sync_task);
 	STARPU_ASSERT(!sync_ret);
 }

+ 1 - 1
src/util/starpu_data_cpy.c

@@ -84,7 +84,7 @@ int starpu_data_cpy(starpu_data_handle dst_handle, starpu_data_handle src_handle
 
 	task->synchronous = !asynchronous;
 
-	int ret = starpu_task_submit(task);
+	int ret = _starpu_task_submit_internal(task);
 	STARPU_ASSERT(!ret);
 
 	return 0;

+ 0 - 1
src/util/starpu_insert_task.c

@@ -77,6 +77,5 @@ int starpu_insert_task(starpu_codelet *cl, ...)
 
 	va_start(varg_list, cl);
         struct starpu_task *task = starpu_task_create();
-	task->specific_starpu = 0;
         return _starpu_insert_task_create_and_submit(arg_buffer, cl, &task, varg_list);
 }