| StarPU Handbook
    | 
| Macros | |
| #define | STARPU_VALUE | 
| #define | STARPU_CALLBACK | 
| #define | STARPU_CALLBACK_WITH_ARG | 
| #define | STARPU_CALLBACK_ARG | 
| #define | STARPU_PRIORITY | 
| #define | STARPU_DATA_ARRAY | 
| #define | STARPU_EXECUTE_ON_WORKER | 
| #define | STARPU_TAG | 
| #define | STARPU_FLOPS | 
| #define | STARPU_SCHED_CTX | 
| Functions | |
| int | starpu_insert_task (struct starpu_codelet *cl,...) | 
| void | starpu_codelet_pack_args (void **arg_buffer, size_t *arg_buffer_size,...) | 
| void | starpu_codelet_unpack_args (void *cl_arg,...) | 
| struct starpu_task * | starpu_task_build (struct starpu_codelet *cl,...) | 
| #define STARPU_VALUE | 
this macro is used when calling starpu_insert_task(), and must be followed by a pointer to a constant value and the size of the constant
| #define STARPU_CALLBACK | 
this macro is used when calling starpu_insert_task(), and must be followed by a pointer to a callback function
| #define STARPU_CALLBACK_WITH_ARG | 
this macro is used when calling starpu_insert_task(), and must be followed by two pointers: one to a callback function, and the other to be given as an argument to the callback function; this is equivalent to using both STARPU_CALLBACK and STARPU_CALLBACK_WITH_ARG.
| #define STARPU_CALLBACK_ARG | 
this macro is used when calling starpu_insert_task(), and must be followed by a pointer to be given as an argument to the callback function
| #define STARPU_PRIORITY | 
this macro is used when calling starpu_insert_task(), and must be followed by a integer defining a priority level
| #define STARPU_DATA_ARRAY | 
TODO
| #define STARPU_EXECUTE_ON_WORKER | 
this macro is used when calling starpu_task_insert(), and must be followed by an integer value specifying the worker on which to execute the task (as specified by starpu_task::execute_on_a_specific_worker)
| #define STARPU_TAG | 
this macro is used when calling starpu_insert_task(), and must be followed by a tag.
| #define STARPU_FLOPS | 
this macro is used when calling starpu_insert_task(), and must be followed by an amount of floating point operations, as a double. Users MUST explicitly cast into double, otherwise parameter passing will not work.
| #define STARPU_SCHED_CTX | 
this macro is used when calling starpu_insert_task(), and must be followed by the id of the scheduling context to which we want to submit the task.
| int starpu_insert_task | ( | struct starpu_codelet * | cl, | 
| ... | |||
| ) | 
Create and submit a task corresponding to cl with the following arguments. The argument list must be zero-terminated.
The arguments following the codelet can be of the following types:
When using STARPU_DATA_ARRAY, the access mode of the data handles is not defined, it will be taken from the codelet ::modes or ::dyn_modes field.
Parameters to be passed to the codelet implementation are defined through the type STARPU_VALUE. The function starpu_codelet_unpack_args() must be called within the codelet implementation to retrieve them.
| void starpu_codelet_pack_args | ( | void ** | arg_buffer, | 
| size_t * | arg_buffer_size, | ||
| ... | |||
| ) | 
Pack arguments of type STARPU_VALUE into a buffer which can be given to a codelet and later unpacked with the function starpu_codelet_unpack_args().
| void starpu_codelet_unpack_args | ( | void * | cl_arg, | 
| ... | |||
| ) | 
Retrieve the arguments of type STARPU_VALUE associated to a task automatically created using the function starpu_insert_task().
| 
 | read | 
Create a task corresponding to cl with the following arguments. The argument list must be zero-terminated. The arguments following the codelet are the same as the ones for the function starpu_insert_task(). 
 1.8.1.2
 1.8.1.2