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-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 #ifndef __STARPU_SCHED_CTX_HYPERVISOR_H__
18 #define __STARPU_SCHED_CTX_HYPERVISOR_H__
19 
20 #ifdef __cplusplus
21 extern "C"
22 {
23 #endif
24 
40 {
45  void (*notify_idle_cycle)(unsigned sched_ctx_id, int worker, double idle_time);
46 
51  void (*notify_poped_task)(unsigned sched_ctx_id, int worker);
52 
58  void (*notify_pushed_task)(unsigned sched_ctx_id, int worker);
59 
63  void (*notify_post_exec_task)(struct starpu_task *task, size_t data_size, uint32_t footprint, int hypervisor_tag, double flops);
64 
68  void (*notify_submitted_job)(struct starpu_task *task, uint32_t footprint, size_t data_size);
69 
70  void (*notify_empty_ctx)(unsigned sched_ctx_id, struct starpu_task *task);
71 
75  void (*notify_delete_context)(unsigned sched_ctx);
76 };
77 
81 void starpu_sched_ctx_set_perf_counters(unsigned sched_ctx_id, void *perf_counters);
82 
87 void starpu_sched_ctx_call_pushed_task_cb(int workerid, unsigned sched_ctx_id);
88 
93 
98 
99 void starpu_sched_ctx_update_start_resizing_sample(unsigned sched_ctx_id, double start_sample);
100 
105 #ifdef __cplusplus
106 }
107 #endif
108 
109 #endif /* __STARPU_SCHED_CTX_HYPERVISOR_H__ */
unsigned sched_ctx
Definition: starpu_task.h:1106
int hypervisor_tag
Definition: starpu_task.h:1114
unsigned workerid
Definition: starpu_task.h:999
double flops
Definition: starpu_task.h:1151
Definition: starpu_task.h:567
void starpu_sched_ctx_call_pushed_task_cb(int workerid, unsigned sched_ctx_id)
unsigned starpu_sched_ctx_check_if_hypervisor_exists(void)
void starpu_sched_ctx_notify_hypervisor_exists(void)
void starpu_sched_ctx_set_perf_counters(unsigned sched_ctx_id, void *perf_counters)
Definition: starpu_sched_ctx_hypervisor.h:40
void(* notify_poped_task)(unsigned sched_ctx_id, int worker)
Definition: starpu_sched_ctx_hypervisor.h:51
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:63
void(* notify_pushed_task)(unsigned sched_ctx_id, int worker)
Definition: starpu_sched_ctx_hypervisor.h:58
void(* notify_delete_context)(unsigned sched_ctx)
Definition: starpu_sched_ctx_hypervisor.h:75
void(* notify_idle_cycle)(unsigned sched_ctx_id, int worker, double idle_time)
Definition: starpu_sched_ctx_hypervisor.h:45
void(* notify_submitted_job)(struct starpu_task *task, uint32_t footprint, size_t data_size)
Definition: starpu_sched_ctx_hypervisor.h:68