Pārlūkot izejas kodu

Bug fix: do not forget to support the STARPU_REDUX mode with the
starpu_insert_task helper.

Cédric Augonnet 14 gadi atpakaļ
vecāks
revīzija
8b31b4b44c
2 mainītis faili ar 8 papildinājumiem un 8 dzēšanām
  1. 5 5
      include/starpu_util.h
  2. 3 3
      src/util/starpu_insert_task_utils.c

+ 5 - 5
include/starpu_util.h

@@ -171,11 +171,11 @@ int starpu_data_cpy(starpu_data_handle dst_handle, starpu_data_handle src_handle
 			int asynchronous, void (*callback_func)(void*), void *callback_arg);
 
 /* Constants used by the starpu_insert_task helper to determine the different types of argument */
-#define STARPU_VALUE		(1<<3)	/* Pointer to a constant value */
-#define STARPU_CALLBACK		(1<<4)	/* Callback function */
-#define STARPU_CALLBACK_ARG	(1<<5)	/* Argument of the callback function (of type void *) */
-#define STARPU_PRIORITY		(1<<6)	/* Priority associated to the task */
-#define STARPU_EXECUTE		(1<<7)	/* Used by MPI to define which task is going to execute the codelet */
+#define STARPU_VALUE		(1<<4)	/* Pointer to a constant value */
+#define STARPU_CALLBACK		(1<<5)	/* Callback function */
+#define STARPU_CALLBACK_ARG	(1<<6)	/* Argument of the callback function (of type void *) */
+#define STARPU_PRIORITY		(1<<7)	/* Priority associated to the task */
+#define STARPU_EXECUTE		(1<<8)	/* Used by MPI to define which task is going to execute the codelet */
 
 /* Wrapper to create a task. */
 void starpu_insert_task(starpu_codelet *cl, ...);

+ 3 - 3
src/util/starpu_insert_task_utils.c

@@ -49,7 +49,7 @@ size_t _starpu_insert_task_get_arg_size(va_list varg_list)
 	arg_buffer_size += sizeof(char);
 
 	while ((arg_type = va_arg(varg_list, int)) != 0) {
-		if (arg_type==STARPU_R || arg_type==STARPU_W || arg_type==STARPU_RW || arg_type == STARPU_SCRATCH) {
+		if (arg_type==STARPU_R || arg_type==STARPU_W || arg_type==STARPU_RW || arg_type == STARPU_SCRATCH || arg_type == STARPU_REDUX) {
 			va_arg(varg_list, starpu_data_handle);
 		}
 		else if (arg_type==STARPU_VALUE) {
@@ -92,7 +92,7 @@ int _starpu_pack_cl_args(size_t arg_buffer_size, char **arg_buffer, va_list varg
 
 	while((arg_type = va_arg(varg_list, int)) != 0)
 	{
-		if (arg_type==STARPU_R || arg_type==STARPU_W || arg_type==STARPU_RW || arg_type == STARPU_SCRATCH)
+		if (arg_type==STARPU_R || arg_type==STARPU_W || arg_type==STARPU_RW || arg_type == STARPU_SCRATCH || arg_type == STARPU_REDUX)
 		{
 			va_arg(varg_list, starpu_data_handle);
 		}
@@ -144,7 +144,7 @@ int _starpu_insert_task_create_and_submit(char *arg_buffer, starpu_codelet *cl,
 
 	while((arg_type = va_arg(varg_list, int)) != 0)
 	{
-		if (arg_type==STARPU_R || arg_type==STARPU_W || arg_type==STARPU_RW || arg_type == STARPU_SCRATCH)
+		if (arg_type==STARPU_R || arg_type==STARPU_W || arg_type==STARPU_RW || arg_type == STARPU_SCRATCH || arg_type == STARPU_REDUX)
 		{
 			/* We have an access mode : we expect to find a handle */
 			starpu_data_handle handle = va_arg(varg_list, starpu_data_handle);