StarPU Handbook - StarPU FAQs
Loading...
Searching...
No Matches
Heteroprio Scheduler

This is the interface for the heteroprio scheduler. More...

Macros

#define STARPU_HETEROPRIO_MAX_PREFETCH
 
#define STARPU_AUTOHETEROPRIO_PRIORITY_ORDERING_POLICY_COUNT
 

Enumerations

enum  starpu_autoheteroprio_priority_ordering_policy {
  STARPU_HETEROPRIO_NOD_TIME_COMBINATION , STARPU_HETEROPRIO_BEST_NODS_SCORE , STARPU_HETEROPRIO_BEST_NODS , STARPU_HETEROPRIO_URT_PURE ,
  STARPU_HETEROPRIO_URT , STARPU_HETEROPRIO_URT_2 , STARPU_HETEROPRIO_URT_DOT_DIFF_PURE , STARPU_HETEROPRIO_URT_DOT_DIFF_PURE_2 ,
  STARPU_HETEROPRIO_URT_DOT_REL_DIFF_PURE , STARPU_HETEROPRIO_URT_DOT_REL_DIFF_PURE_2 , STARPU_HETEROPRIO_URT_DOT_DIFF_2 , STARPU_HETEROPRIO_URT_DOT_DIFF_3 ,
  STARPU_HETEROPRIO_URT_DOT_DIFF_4 , STARPU_HETEROPRIO_URT_DOT_DIFF_5 , STARPU_HETEROPRIO_URT_DOT_DIFF_6 , STARPU_HETEROPRIO_URT_DOT_DIFF_7 ,
  STARPU_HETEROPRIO_URT_DOT_DIFF_8 , STARPU_HETEROPRIO_URT_DOT_DIFF_9 , STARPU_HETEROPRIO_URT_DOT_DIFF_10 , STARPU_HETEROPRIO_URT_DOT_DIFF_11 ,
  STARPU_HETEROPRIO_URTS_PER_SECONDS , STARPU_HETEROPRIO_URTS_PER_SECONDS_2 , STARPU_HETEROPRIO_URTS_PER_SECONDS_DIFF , STARPU_HETEROPRIO_URTS_TIME_RELEASED_DIFF ,
  STARPU_HETEROPRIO_URTS_TIME_COMBINATION , STARPU_HETEROPRIO_NODS_PER_SECOND , STARPU_HETEROPRIO_NODS_TIME_RELEASED , STARPU_HETEROPRIO_NODS_TIME_RELEASED_DIFF
}
 

Functions

void starpu_heteroprio_set_use_locality (unsigned sched_ctx_id, unsigned use_locality)
 
void starpu_heteroprio_set_nb_prios (unsigned sched_ctx_id, enum starpu_worker_archtype arch, unsigned max_prio)
 
void starpu_heteroprio_set_mapping (unsigned sched_ctx_id, enum starpu_worker_archtype arch, unsigned source_prio, unsigned dest_bucket_id)
 
void starpu_heteroprio_set_faster_arch (unsigned sched_ctx_id, enum starpu_worker_archtype arch, unsigned bucket_id)
 
void starpu_heteroprio_set_arch_slow_factor (unsigned sched_ctx_id, enum starpu_worker_archtype arch, unsigned bucket_id, float slow_factor)
 
void starpu_heteroprio_map_wgroup_memory_nodes (unsigned sched_ctx_id)
 
void starpu_heteroprio_print_wgroups (FILE *stream, unsigned sched_ctx_id)
 

Variables

static const char starpu_autoheteroprio_priority_ordering_policy_names [STARPU_AUTOHETEROPRIO_PRIORITY_ORDERING_POLICY_COUNT][64]
 

Detailed Description

This is the interface for the heteroprio scheduler.

Enumeration Type Documentation

◆ starpu_autoheteroprio_priority_ordering_policy

Function Documentation

◆ starpu_heteroprio_set_use_locality()

void starpu_heteroprio_set_use_locality ( unsigned  sched_ctx_id,
unsigned  use_locality 
)

Set if heteroprio should use data locality or not

◆ starpu_heteroprio_set_nb_prios()

void starpu_heteroprio_set_nb_prios ( unsigned  sched_ctx_id,
enum starpu_worker_archtype  arch,
unsigned  max_prio 
)

Tell how many prio there are for a given arch

◆ starpu_heteroprio_set_mapping()

void starpu_heteroprio_set_mapping ( unsigned  sched_ctx_id,
enum starpu_worker_archtype  arch,
unsigned  source_prio,
unsigned  dest_bucket_id 
)

Set the mapping for a given arch prio=>bucket

◆ starpu_heteroprio_set_faster_arch()

void starpu_heteroprio_set_faster_arch ( unsigned  sched_ctx_id,
enum starpu_worker_archtype  arch,
unsigned  bucket_id 
)

Tell which arch is the faster for the tasks of a bucket (optional)

◆ starpu_heteroprio_set_arch_slow_factor()

void starpu_heteroprio_set_arch_slow_factor ( unsigned  sched_ctx_id,
enum starpu_worker_archtype  arch,
unsigned  bucket_id,
float  slow_factor 
)

Tell how slow is a arch for the tasks of a bucket (optional)

◆ starpu_heteroprio_map_wgroup_memory_nodes()

void starpu_heteroprio_map_wgroup_memory_nodes ( unsigned  sched_ctx_id)

One memory node will be one wgroup

◆ starpu_heteroprio_print_wgroups()

void starpu_heteroprio_print_wgroups ( FILE *  stream,
unsigned  sched_ctx_id 
)

Print the current setup groups