StarPU Internal Handbook
load_data_interface.h
Go to the documentation of this file.
1 /* StarPU --- Runtime system for heterogeneous multicore architectures.
2  *
3  * Copyright (C) 2016-2021 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
4  *
5  * StarPU is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU Lesser General Public License as published by
7  * the Free Software Foundation; either version 2.1 of the License, or (at
8  * your option) any later version.
9  *
10  * StarPU is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13  *
14  * See the GNU Lesser General Public License in COPYING.LGPL for more details.
15  */
16 
17 #include <starpu.h>
18 
21 #ifndef __LOAD_DATA_INTERFACE_H
22 #define __LOAD_DATA_INTERFACE_H
23 
26 {
28  double start;
31  double elapsed_time;
34  int phase;
45  double wakeup_ratio;
46 };
47 
48 void load_data_data_register(starpu_data_handle_t *handle, unsigned home_node, int sleep_task_threshold, double wakeup_ratio);
49 
50 int load_data_get_sleep_threshold(starpu_data_handle_t handle);
51 int load_data_get_wakeup_threshold(starpu_data_handle_t handle);
52 int load_data_get_current_phase(starpu_data_handle_t handle);
53 int load_data_get_nsubmitted_tasks(starpu_data_handle_t handle);
54 int load_data_get_nfinished_tasks(starpu_data_handle_t handle);
55 
56 int load_data_inc_nsubmitted_tasks(starpu_data_handle_t handle);
57 int load_data_inc_nfinished_tasks(starpu_data_handle_t handle);
58 
59 int load_data_next_phase(starpu_data_handle_t handle);
60 
61 int load_data_update_elapsed_time(starpu_data_handle_t handle);
62 double load_data_get_elapsed_time(starpu_data_handle_t handle);
63 
64 int load_data_update_wakeup_cond(starpu_data_handle_t handle);
65 int load_data_wakeup_cond(starpu_data_handle_t handle);
66 
67 #define LOAD_DATA_GET_NSUBMITTED_TASKS(interface) (((struct load_data_interface *)(interface))->nsubmitted_tasks)
68 #define LOAD_DATA_GET_SLEEP_THRESHOLD(interface) (((struct load_data_interface *)(interface))->sleep_task_threshold)
69 #define LOAD_DATA_GET_WAKEUP_THRESHOLD(interface) (((struct load_data_interface *)(interface))->wakeup_task_threshold)
70 
71 #endif /* __LOAD_DATA_INTERFACE_H */
int nfinished_tasks
Definition: load_data_interface.h:38
double wakeup_ratio
Definition: load_data_interface.h:45
double elapsed_time
Definition: load_data_interface.h:31
int phase
Definition: load_data_interface.h:34
int nsubmitted_tasks
Definition: load_data_interface.h:36
int sleep_task_threshold
Definition: load_data_interface.h:40
int wakeup_task_threshold
Definition: load_data_interface.h:42
double start
Definition: load_data_interface.h:28
Definition: load_data_interface.h:26