|
@@ -1,7 +1,8 @@
|
|
|
/* StarPU --- Runtime system for heterogeneous multicore architectures.
|
|
|
*
|
|
|
- * Copyright (C) 2011, 2012, 2013 Centre National de la Recherche Scientifique
|
|
|
+ * Copyright (C) 2011, 2012, 2013, 2014 Centre National de la Recherche Scientifique
|
|
|
* Copyright (C) 2011-2013 Université de Bordeaux 1
|
|
|
+ * Copyright (C) 2014 INRIA
|
|
|
*
|
|
|
* StarPU is free software; you can redistribute it and/or modify
|
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
@@ -395,6 +396,12 @@ int _starpu_mpi_task_decode_v(struct starpu_codelet *codelet, int me, int nb_nod
|
|
|
STARPU_ASSERT_MSG(*xrank <= nb_nodes, "Node %d to execute codelet is not a valid node (%d)", *xrank, nb_nodes);
|
|
|
*do_execute = 1;
|
|
|
}
|
|
|
+ else if (arg_type==STARPU_EXECUTE_ON_WORKER)
|
|
|
+ {
|
|
|
+ // the flag is decoded and set later when
|
|
|
+ // calling function _starpu_task_insert_create()
|
|
|
+ va_arg(varg_list_copy, int);
|
|
|
+ }
|
|
|
else if (arg_type==STARPU_R || arg_type==STARPU_W || arg_type==STARPU_RW || arg_type==STARPU_SCRATCH || arg_type==STARPU_REDUX)
|
|
|
{
|
|
|
starpu_data_handle_t data = va_arg(varg_list_copy, starpu_data_handle_t);
|
|
@@ -585,6 +592,12 @@ int _starpu_mpi_task_build_v(MPI_Comm comm, struct starpu_codelet *codelet, stru
|
|
|
{
|
|
|
va_arg(varg_list_copy, starpu_data_handle_t);
|
|
|
}
|
|
|
+ else if (arg_type==STARPU_EXECUTE_ON_WORKER)
|
|
|
+ {
|
|
|
+ // the flag is decoded and set later when
|
|
|
+ // calling function _starpu_task_insert_create()
|
|
|
+ va_arg(varg_list_copy, int);
|
|
|
+ }
|
|
|
else if (arg_type==STARPU_HYPERVISOR_TAG)
|
|
|
{
|
|
|
(void)va_arg(varg_list_copy, int);
|
|
@@ -702,6 +715,10 @@ int _starpu_mpi_task_postbuild_v(MPI_Comm comm, struct starpu_codelet *codelet,
|
|
|
{
|
|
|
va_arg(varg_list_copy, starpu_data_handle_t);
|
|
|
}
|
|
|
+ else if (arg_type==STARPU_EXECUTE_ON_WORKER)
|
|
|
+ {
|
|
|
+ va_arg(varg_list_copy, int);
|
|
|
+ }
|
|
|
else if (arg_type==STARPU_HYPERVISOR_TAG)
|
|
|
{
|
|
|
(void)va_arg(varg_list_copy, int);
|