StarPU Handbook
starpu_sched_ctx_hypervisor.h
Go to the documentation of this file.
1 /* StarPU --- Runtime system for heterogeneous multicore architectures.
2  *
3  * Copyright (C) 2010-2013 Inria
4  * Copyright (C) 2013,2015,2017 CNRS
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 #ifndef __STARPU_SCHED_CTX_HYPERVISOR_H__
19 #define __STARPU_SCHED_CTX_HYPERVISOR_H__
20 
21 #ifdef __cplusplus
22 extern "C"
23 {
24 #endif
25 
26 
27 
29 {
30  void (*notify_idle_cycle)(unsigned sched_ctx_id, int worker, double idle_time);
31  void (*notify_poped_task)(unsigned sched_ctx_id, int worker);
32  void (*notify_pushed_task)(unsigned sched_ctx_id, int worker);
33  void (*notify_post_exec_task)(struct starpu_task *task, size_t data_size, uint32_t footprint, int hypervisor_tag, double flops);
34  void (*notify_submitted_job)(struct starpu_task *task, uint32_t footprint, size_t data_size);
35  void (*notify_empty_ctx)(unsigned sched_ctx_id, struct starpu_task *task);
36  void (*notify_delete_context)(unsigned sched_ctx);
37 };
38 
39 #ifdef STARPU_USE_SC_HYPERVISOR
40 void starpu_sched_ctx_set_perf_counters(unsigned sched_ctx_id, void *perf_counters);
41 #endif //STARPU_USE_SC_HYPERVISOR
42 
44 
46 
47 void starpu_sched_ctx_update_start_resizing_sample(unsigned sched_ctx_id, double start_sample);
48 
49 #ifdef __cplusplus
50 }
51 #endif
52 
53 #endif /* __STARPU_SCHED_CTX_HYPERVISOR_H__ */
void(* notify_delete_context)(unsigned sched_ctx)
Definition: starpu_sched_ctx_hypervisor.h:36
void(* notify_pushed_task)(unsigned sched_ctx_id, int worker)
Definition: starpu_sched_ctx_hypervisor.h:32
unsigned sched_ctx
Definition: starpu_task.h:192
unsigned starpu_sched_ctx_check_if_hypervisor_exists(void)
Definition: starpu_task.h:129
void(* notify_submitted_job)(struct starpu_task *task, uint32_t footprint, size_t data_size)
Definition: starpu_sched_ctx_hypervisor.h:34
void starpu_sched_ctx_set_perf_counters(unsigned sched_ctx_id, void *perf_counters)
void(* notify_idle_cycle)(unsigned sched_ctx_id, int worker, double idle_time)
Definition: starpu_sched_ctx_hypervisor.h:30
Definition: starpu_sched_ctx_hypervisor.h:28
void starpu_sched_ctx_notify_hypervisor_exists(void)
void(* notify_poped_task)(unsigned sched_ctx_id, int worker)
Definition: starpu_sched_ctx_hypervisor.h:31
void(* notify_post_exec_task)(struct starpu_task *task, size_t data_size, uint32_t footprint, int hypervisor_tag, double flops)
Definition: starpu_sched_ctx_hypervisor.h:33
double flops
Definition: starpu_task.h:200
int hypervisor_tag
Definition: starpu_task.h:193