StarPU Handbook
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Task Bundles

Typedefs

typedef struct
_starpu_task_bundle * 
starpu_task_bundle_t

Functions

void starpu_task_bundle_create (starpu_task_bundle_t *bundle)
int starpu_task_bundle_insert (starpu_task_bundle_t bundle, struct starpu_task *task)
int starpu_task_bundle_remove (starpu_task_bundle_t bundle, struct starpu_task *task)
void starpu_task_bundle_close (starpu_task_bundle_t bundle)
double starpu_task_bundle_expected_length (starpu_task_bundle_t bundle, struct starpu_perfmodel_arch *arch, unsigned nimpl)
double starpu_task_bundle_expected_energy (starpu_task_bundle_t bundle, struct starpu_perfmodel_arch *arch, unsigned nimpl)
double starpu_task_bundle_expected_data_transfer_time (starpu_task_bundle_t bundle, unsigned memory_node)

Detailed Description

Typedef Documentation

Opaque structure describing a list of tasks that should be scheduled on the same worker whenever it’s possible. It must be considered as a hint given to the scheduler as there is no guarantee that they will be executed on the same worker.

Function Documentation

void starpu_task_bundle_create ( starpu_task_bundle_t bundle)

Factory function creating and initializing bundle, when the call returns, memory needed is allocated and bundle is ready to use.

int starpu_task_bundle_insert ( starpu_task_bundle_t  bundle,
struct starpu_task task 
)

Insert task in bundle. Until task is removed from bundle its expected length and data transfer time will be considered along those of the other tasks of bundle. This function must not be called if bundle is already closed and/or task is already submitted. On success, it returns 0. There are two cases of error : if bundle is already closed it returns -EPERM, if task was already submitted it returns -EINVAL.

int starpu_task_bundle_remove ( starpu_task_bundle_t  bundle,
struct starpu_task task 
)

Remove task from bundle. Of course task must have been previously inserted in bundle. This function must not be called if bundle is already closed and/or task is already submitted. Doing so would result in undefined behaviour. On success, it returns 0. If bundle is already closed it returns -ENOENT.

void starpu_task_bundle_close ( starpu_task_bundle_t  bundle)

Inform the runtime that the user will not modify bundle anymore, it means no more inserting or removing task. Thus the runtime can destroy it when possible.

double starpu_task_bundle_expected_length ( starpu_task_bundle_t  bundle,
struct starpu_perfmodel_arch arch,
unsigned  nimpl 
)

Return the expected duration of bundle in micro-seconds.

double starpu_task_bundle_expected_energy ( starpu_task_bundle_t  bundle,
struct starpu_perfmodel_arch arch,
unsigned  nimpl 
)

Return the expected energy consumption of bundle in J.

double starpu_task_bundle_expected_data_transfer_time ( starpu_task_bundle_t  bundle,
unsigned  memory_node 
)

Return the time (in micro-seconds) expected to transfer all data used within bundle.