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 starpu_codelet::modes or starpu_codelet::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().