1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /* StarPU --- Runtime system for heterogeneous multicore architectures.
- *
- * Copyright (C) 2010-2015,2017 CNRS
- * Copyright (C) 2009-2011,2014 Université de Bordeaux
- * Copyright (C) 2011,2012 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
- * the Free Software Foundation; either version 2.1 of the License, or (at
- * your option) any later version.
- *
- * StarPU is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * See the GNU Lesser General Public License in COPYING.LGPL for more details.
- */
- /*! \defgroup API_Miscellaneous_Helpers Miscellaneous Helpers
- \fn 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)
- \ingroup API_Miscellaneous_Helpers
- Copy the content of \p src_handle into \p dst_handle. The parameter \p
- 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
- \p callback_func is not <c>NULL</c>, this callback function is executed after
- the handle has been copied, and it is given the pointer \p callback_arg as argument.
- \fn void starpu_execute_on_each_worker(void (*func)(void *), void *arg, uint32_t where)
- \ingroup API_Miscellaneous_Helpers
- Execute the given function \p func on a subset of workers. When
- calling this method, the offloaded function \p func is executed by
- every StarPU worker that are eligible to execute the function.
- The argument \p arg
- is passed to the offloaded function. The argument \p 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 \p func has been executed on every appropriate processing
- units, and thus may not be called from a callback function for
- instance.
- \fn void starpu_execute_on_each_worker_ex(void (*func)(void *), void *arg, uint32_t where, const char *name)
- \ingroup API_Miscellaneous_Helpers
- Same as starpu_execute_on_each_worker(), except that the task name is
- specified in the argument \p name.
- \fn void starpu_execute_on_specific_workers(void (*func)(void*), void *arg, unsigned num_workers, unsigned *workers, const char *name);
- \ingroup API_Miscellaneous_Helpers
- Call \p func(\p arg) on every worker in the \p workers array. \p
- num_workers indicates the number of workers in this array. This
- function is synchronous, but the different workers may execute the
- function in parallel.
- \fn double starpu_timing_now(void)
- \ingroup API_Miscellaneous_Helpers
- Return the current date in micro-seconds.
- */
|