| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | 
							- /* StarPU --- Runtime system for heterogeneous multicore architectures.
 
-  *
 
-  * Copyright (C) 2010-2013,2015,2017                      CNRS
 
-  * Copyright (C) 2009-2011,2014,2016                      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_Task_Bundles Task Bundles
 
- \typedef starpu_task_bundle_t
 
- \ingroup API_Task_Bundles
 
- 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.
 
- \fn void starpu_task_bundle_create(starpu_task_bundle_t *bundle)
 
- \ingroup API_Task_Bundles
 
- Factory function creating and initializing \p bundle, when the call
 
- returns, memory needed is allocated and \p bundle is ready to use.
 
- \fn int starpu_task_bundle_insert(starpu_task_bundle_t bundle, struct starpu_task *task)
 
- \ingroup API_Task_Bundles
 
- Insert \p task in \p bundle. Until \p task is removed from \p 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 \p bundle is already closed and/or \p task is already submitted.
 
- On success, it returns 0. There are two cases of error : if \p bundle
 
- is already closed it returns <c>-EPERM</c>, if \p task was already
 
- submitted it returns <c>-EINVAL</c>.
 
- \fn int starpu_task_bundle_remove(starpu_task_bundle_t bundle, struct starpu_task *task)
 
- \ingroup API_Task_Bundles
 
- Remove \p task from \p bundle. Of course \p task must have been
 
- previously inserted in \p bundle. This function must not be called if
 
- \p bundle is already closed and/or \p task is already submitted. Doing
 
- so would result in undefined behaviour. On success, it returns 0. If
 
- \p bundle is already closed it returns <c>-ENOENT</c>.
 
- \fn void starpu_task_bundle_close(starpu_task_bundle_t bundle)
 
- \ingroup API_Task_Bundles
 
- Inform the runtime that the user will not modify \p bundle anymore, it
 
- means no more inserting or removing task. Thus the runtime can destroy
 
- it when possible.
 
- \fn double starpu_task_bundle_expected_length(starpu_task_bundle_t bundle, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 
- \ingroup API_Task_Bundles
 
- Return the expected duration of \p bundle in micro-seconds.
 
- \fn double starpu_task_bundle_expected_energy(starpu_task_bundle_t bundle, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 
- \ingroup API_Task_Bundles
 
- Return the expected energy consumption of \p bundle in J.
 
- \fn double starpu_task_bundle_expected_data_transfer_time(starpu_task_bundle_t bundle, unsigned memory_node)
 
- \ingroup API_Task_Bundles
 
- Return the time (in micro-seconds) expected to transfer all data used within \p bundle.
 
- */
 
 
  |