StarPU Internal Handbook
helper_mct.h
Go to the documentation of this file.
1 /* StarPU --- Runtime system for heterogeneous multicore architectures.
2  *
3  * Copyright (C) 2013-2022 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
4  * Copyright (C) 2020 Télécom-Sud Paris
5  *
6  * StarPU is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or (at
9  * your option) any later version.
10  *
11  * StarPU is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14  *
15  * See the GNU Lesser General Public License in COPYING.LGPL for more details.
16  */
17 
18 #pragma GCC visibility push(hidden)
19 
23 {
24  double alpha;
25  double beta;
26  double _gamma;
27  double idle_power;
28  starpu_pthread_mutex_t scheduling_mutex;
29 };
30 
31 struct _starpu_mct_data *starpu_mct_init_parameters(struct starpu_sched_component_mct_data *params);
32 
33 unsigned starpu_mct_compute_execution_times(struct starpu_sched_component *component,
34  struct starpu_task *task,
35  double *estimated_lengths,
36  double *estimated_transfer_length,
37  unsigned *suitable_components);
38 
39 
40 void starpu_mct_compute_expected_times(struct starpu_sched_component *component,
41  struct starpu_task *task,
42  double *estimated_lengths,
43  double *estimated_transfer_length,
44  double *estimated_ends_with_task,
45  double *min_exp_end_of_task,
46  double *max_exp_end_of_workers,
47  unsigned *suitable_components,
48  unsigned nsuitable_components);
49 
50 double starpu_mct_compute_fitness(struct _starpu_mct_data * d,
51  double exp_end,
52  double min_exp_end,
53  double max_exp_end,
54  double transfer_len,
55  double local_energy);
56 
57 int starpu_mct_get_best_component(struct _starpu_mct_data *d,
58  struct starpu_task *task,
59  double *estimated_lengths,
60  double *estimated_transfer_length,
61  double *estimated_ends_with_task,
62  double *local_energy,
63  double min_exp_end_of_task,
64  double max_exp_end_of_workers,
65  unsigned *suitable_components,
66  unsigned nsuitable_components);
67 
68 
69 void starpu_mct_compute_energy(struct starpu_sched_component *component,
70  struct starpu_task *task ,
71  double *local_energy,
72  unsigned *suitable_components,
73  unsigned nsuitable_components);
74 
75 int eager_calibration_push_task(struct starpu_sched_component * component, struct starpu_task * task);
76 
77 #pragma GCC visibility pop
Definition: helper_mct.h:23