StarPU Handbook
Miscellaneous Helpers


int starpu_data_cpy (starpu_data_handle_t dst_handle, starpu_data_handle_t src_handle, int asynchronous, void(*callback_func)(void *), void *callback_arg)
void starpu_execute_on_each_worker (void(*func)(void *), void *arg, uint32_t where)
void starpu_execute_on_each_worker_ex (void(*func)(void *), void *arg, uint32_t where, const char *name)
void starpu_execute_on_specific_workers (void(*func)(void *), void *arg, unsigned num_workers, unsigned *workers, const char *name)
double starpu_timing_now (void)

Detailed Description

Function Documentation

◆ starpu_data_cpy()

int starpu_data_cpy ( starpu_data_handle_t  dst_handle,
starpu_data_handle_t  src_handle,
int  asynchronous,
void(*)(void *)  callback_func,
void *  callback_arg 

Copy the content of src_handle into dst_handle. The parameter asynchronous indicates whether the function should block or not. In the case of an asynchronous call, it is possible to synchronize with the termination of this operation either by the means of implicit dependencies (if enabled) or by calling starpu_task_wait_for_all(). If callback_func is not NULL, this callback function is executed after the handle has been copied, and it is given the pointer callback_arg as argument.

◆ starpu_execute_on_each_worker()

void starpu_execute_on_each_worker ( void(*)(void *)  func,
void *  arg,
uint32_t  where 

This function executes the given function on a subset of workers. When calling this method, the offloaded function func is executed by every StarPU worker that may execute the function. The argument arg is passed to the offloaded function. The argument where specifies on which types of processing units the function should be executed. Similarly to the field starpu_codelet::where, it is possible to specify that the function should be executed on every CUDA device and every CPU by passing STARPU_CPU|STARPU_CUDA. This function blocks until the function has been executed on every appropriate processing units, so that it may not be called from a callback function for instance.

◆ starpu_execute_on_each_worker_ex()

void starpu_execute_on_each_worker_ex ( void(*)(void *)  func,
void *  arg,
uint32_t  where,
const char *  name 

Same as starpu_execute_on_each_worker(), except that the task name is specified in the argument name.

◆ starpu_execute_on_specific_workers()

void starpu_execute_on_specific_workers ( void(*)(void *)  func,
void *  arg,
unsigned  num_workers,
unsigned *  workers,
const char *  name 

Call func(arg) on every worker in the workers array. num_workers indicates the number of workers in this array. This function is synchronous, but the different workers may execute the function in parallel.

◆ starpu_timing_now()

double starpu_timing_now ( void  )

Return the current date in micro-seconds.