StarPU Internal Handbook
Loading...
Searching...
No Matches
sort_data_handles.h File Reference
#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)
 

Function Documentation

◆ _starpu_sort_task_handles()

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.

◆ _starpu_handles_same_root()

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.