|
StarPU Internal Handbook
|
#include <starpu.h>#include <common/config.h>#include <stdlib.h>#include <stdarg.h>#include <core/jobs.h>#include <datawizard/coherency.h>#include <datawizard/memalloc.h>Go to the source code of this file.
Functions | |
| void | _starpu_sort_task_handles (struct _starpu_data_descr descr[], unsigned nbuffers) |
| int | _starpu_handles_same_root (starpu_data_handle_t dataA, starpu_data_handle_t dataB) |
| void _starpu_sort_task_handles | ( | struct _starpu_data_descr | descr[], |
| unsigned | nbuffers | ||
| ) |
To avoid deadlocks, we reorder the different buffers accessed to by the task so that we always grab the rw-lock associated to the handles in the same order.
| int _starpu_handles_same_root | ( | starpu_data_handle_t | dataA, |
| starpu_data_handle_t | dataB | ||
| ) |
The reordering however puts alongside some different handles, just because they have the same root. When avoiding to lock/acquire/load the same handle several times, we need to keep looking among those.