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
31struct _starpu_mct_data *starpu_mct_init_parameters(struct starpu_sched_component_mct_data *params);
32
33unsigned 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
40void 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
50double 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
57int 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
69void 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
75int eager_calibration_push_task(struct starpu_sched_component * component, struct starpu_task * task);
76
77#pragma GCC visibility pop
Definition: helper_mct.h:23