28#include <common/config.h>
41#ifdef STARPU_HAVE_HWLOC
48#include <drivers/hip/driver_hip.h>
51#ifdef STARPU_USE_MPI_MASTER_SLAVE
55#ifdef STARPU_USE_TCPIP_MASTER_SLAVE
56#include <drivers/tcpip/driver_tcpip_source.h>
64#pragma GCC visibility push(hidden)
66#define STARPU_MAX_PIPELINE 4
91 struct mc_cache_entry *mc_cache;
93 starpu_ssize_t mc_cache_size;
113 struct _starpu_data_request_prio_list prefetch_requests[STARPU_MAXNODES][2];
114 struct _starpu_data_request_prio_list idle_requests[STARPU_MAXNODES][2];
115 starpu_pthread_mutex_t data_requests_list_mutex[STARPU_MAXNODES][2];
119 unsigned data_requests_npending[STARPU_MAXNODES][2];
120 starpu_pthread_mutex_t data_requests_pending_list_mutex[STARPU_MAXNODES][2];
125 int malloc_on_node_default_flags;
145 starpu_pthread_mutex_t lock_nodes;
146 starpu_pthread_cond_t cond_nodes;
153struct _starpu_ctx_change_list;
157 starpu_pthread_mutex_t mutex;
160 struct starpu_perfmodel_arch perf_arch;
181#ifdef STARPU_SPINLOCK_CHECK
182 const char *relax_on_file;
184 const char *relax_on_func;
185 const char *relax_off_file;
187 const char *relax_off_func;
214 struct _starpu_ctx_change_list ctx_change_list;
215 struct starpu_task_prio_list local_tasks;
221 struct starpu_task *current_tasks[STARPU_MAX_PIPELINE];
223 starpu_pthread_wait_t wait;
226 struct timespec cl_start;
227 struct timespec cl_expend;
228 struct timespec cl_end;
235 unsigned worker_is_running;
236 unsigned worker_is_initialized;
237 unsigned wait_for_worker_initialization;
252 unsigned removed_from_ctx[STARPU_NMAX_SCHED_CTXS+1];
264 unsigned shares_tasks_lists[STARPU_NMAX_SCHED_CTXS+1];
266 unsigned poped_in_ctx[STARPU_NMAX_SCHED_CTXS+1];
272 unsigned reverse_phase[2];
282#ifdef STARPU_HAVE_HWLOC
283 hwloc_bitmap_t hwloc_cpu_set;
284 hwloc_obj_t hwloc_obj;
287 struct starpu_profiling_worker_info profiling_info;
289 starpu_pthread_mutex_t profiling_info_mutex;
293 unsigned profiling_registered_start[STATUS_INDEX_NR];
294 struct timespec profiling_registered_start_date[STATUS_INDEX_NR];
296 struct timespec profiling_status_start_date;
299 int64_t __w_total_executed__value;
300 double __w_cumul_execution_time__value;
303 int bindid_requested;
307 char padding[STARPU_CACHELINE_SIZE];
316 int combined_workerid[STARPU_NMAXWORKERS];
319 starpu_pthread_mutex_t count_mutex;
325#ifdef STARPU_HAVE_HWLOC
326 hwloc_bitmap_t hwloc_cpu_set;
340 starpu_pthread_mutex_t mutex;
347 unsigned set_is_initialized;
348 unsigned wait_for_set_initialization;
359 unsigned nsched_ctxs;
361#ifdef STARPU_HAVE_HWLOC
364 hwloc_bitmap_t log_cpuset;
365 hwloc_bitmap_t log_coreset;
444#ifdef STARPU_HAVE_HWLOC
451 char currently_bound[STARPU_NMAXWORKERS];
452 char currently_shared[STARPU_NMAXWORKERS];
477 starpu_pthread_mutex_t submitted_mutex;
531 void *(*run_worker)(
void *);
534#ifdef STARPU_HAVE_HWLOC
558extern int _starpu_worker_parallel_blocks;
561extern int _starpu_keys_initialized;
562extern starpu_pthread_key_t _starpu_worker_key;
563extern starpu_pthread_key_t _starpu_worker_set_key;
565void _starpu_set_catch_signals(
int do_catch_signal);
568void _starpu_set_argc_argv(
int *argc,
char ***argv);
569int *_starpu_get_argc();
570char ***_starpu_get_argv();
573void _starpu_conf_check_environment(
struct starpu_conf *
conf);
576void _starpu_may_pause(
void);
579static inline unsigned _starpu_machine_is_running(
void)
585 ANNOTATE_HAPPENS_AFTER(&_starpu_config.
running);
587 ANNOTATE_HAPPENS_BEFORE(&_starpu_config.
running);
596uint32_t _starpu_worker_exists(
struct starpu_task *) STARPU_ATTRIBUTE_VISIBILITY_DEFAULT;
599uint32_t _starpu_can_submit_ms_task(
void);
602uint32_t _starpu_can_submit_cuda_task(
void);
605uint32_t _starpu_can_submit_hip_task(
void);
608uint32_t _starpu_can_submit_cpu_task(
void);
611uint32_t _starpu_can_submit_opencl_task(
void);
615unsigned _starpu_worker_can_block(
unsigned memnode,
struct _starpu_worker *worker);
622static inline unsigned _starpu_worker_get_count(
void)
624 return _starpu_config.topology.
nworkers;
626#define starpu_worker_get_count _starpu_worker_get_count
631static inline void _starpu_set_local_worker_key(
struct _starpu_worker *worker)
633 STARPU_ASSERT(_starpu_keys_initialized);
634 STARPU_PTHREAD_SETSPECIFIC(_starpu_worker_key, worker);
639static inline struct _starpu_worker *_starpu_get_local_worker_key(
void)
641 if (!_starpu_keys_initialized)
643 return (
struct _starpu_worker *) STARPU_PTHREAD_GETSPECIFIC(_starpu_worker_key);
651 STARPU_ASSERT(_starpu_keys_initialized);
652 STARPU_PTHREAD_SETSPECIFIC(_starpu_worker_set_key, worker);
659 if (!_starpu_keys_initialized)
661 return (
struct _starpu_worker_set *) STARPU_PTHREAD_GETSPECIFIC(_starpu_worker_set_key);
666static inline struct _starpu_worker *_starpu_get_worker_struct(
unsigned id)
668 STARPU_ASSERT(
id < STARPU_NMAXWORKERS);
669 return &_starpu_config.
workers[id];
674static inline struct _starpu_node *_starpu_get_node_struct(
unsigned id)
676 STARPU_ASSERT(
id < STARPU_MAXNODES);
677 return &_starpu_config.
nodes[id];
684 return (
id > STARPU_NMAX_SCHED_CTXS) ? NULL : &_starpu_config.
sched_ctxs[
id];
693 return &_starpu_config;
697static inline int _starpu_get_disable_kernels(
void)
699 return _starpu_config.disable_kernels;
712 STARPU_ASSERT(!(_starpu_config.
workers[workerid].
status & (1 << status)));
713 if (starpu_profiling_status_get())
722 STARPU_ASSERT((_starpu_config.
workers[workerid].
status & (1 << status)));
723 if (starpu_profiling_status_get())
724 _starpu_worker_stop_state(workerid, status, NULL);
731 return &_starpu_config.
sched_ctxs[STARPU_GLOBAL_SCHED_CTX];
740int _starpu_worker_get_nids_ctx_free_by_type(
enum starpu_worker_archtype type,
int *workerids,
int maxsize);
742static inline unsigned _starpu_worker_mutex_is_sched_mutex(
int workerid, starpu_pthread_mutex_t *mutex)
748static inline int _starpu_worker_get_nsched_ctxs(
int workerid)
754static inline unsigned _starpu_get_nsched_ctxs(
void)
758 return _starpu_config.topology.nsched_ctxs;
762static inline int _starpu_worker_get_id(
void)
766 worker = _starpu_get_local_worker_key();
778#define starpu_worker_get_id _starpu_worker_get_id
782static inline unsigned __starpu_worker_get_id_check(
const char *f,
int l)
786 int id = starpu_worker_get_id();
787 STARPU_ASSERT_MSG(
id>=0,
"%s:%d Cannot be called from outside a worker\n", f, l);
790#define _starpu_worker_get_id_check(f,l) __starpu_worker_get_id_check(f,l)
794struct _starpu_sched_ctx* _starpu_worker_get_ctx_stream(
unsigned stream_workerid);
801static inline void _starpu_worker_request_blocking_in_parallel(
struct _starpu_worker *
const worker)
803 _starpu_worker_parallel_blocks = 1;
824 STARPU_PTHREAD_COND_BROADCAST(&worker->
sched_cond);
826 starpu_pthread_queue_broadcast(&_starpu_simgrid_task_queue[worker->
workerid]);
842 STARPU_PTHREAD_COND_BROADCAST(&worker->
sched_cond);
850static inline void _starpu_worker_request_unblocking_in_parallel(
struct _starpu_worker *
const worker)
871 STARPU_PTHREAD_COND_BROADCAST(&worker->
sched_cond);
885 STARPU_PTHREAD_COND_BROADCAST(&worker->
sched_cond);
899static inline void _starpu_worker_process_block_in_parallel_requests(
struct _starpu_worker *
const worker)
914 STARPU_PTHREAD_COND_BROADCAST(&worker->
sched_cond);
931 STARPU_PTHREAD_COND_BROADCAST(&worker->
sched_cond);
935#ifdef STARPU_SPINLOCK_CHECK
936#define _starpu_worker_enter_sched_op(worker) __starpu_worker_enter_sched_op((worker), __FILE__, __LINE__, __starpu_func__)
937static inline void __starpu_worker_enter_sched_op(
struct _starpu_worker *
const worker,
const char*file,
int line,
const char* func)
955static inline void _starpu_worker_enter_sched_op(
struct _starpu_worker *
const worker)
962 _starpu_worker_process_block_in_parallel_requests(worker);
969 _starpu_worker_process_block_in_parallel_requests(worker);
991#ifdef STARPU_SPINLOCK_CHECK
992 worker->relax_on_file = file;
993 worker->relax_on_line = line;
994 worker->relax_on_func = func;
1000#ifdef STARPU_SPINLOCK_CHECK
1001#define _starpu_worker_leave_sched_op(worker) __starpu_worker_leave_sched_op((worker), __FILE__, __LINE__, __starpu_func__)
1002static inline void __starpu_worker_leave_sched_op(
struct _starpu_worker *
const worker,
const char*file,
int line,
const char* func)
1008static inline void _starpu_worker_leave_sched_op(
struct _starpu_worker *
const worker)
1013#ifdef STARPU_SPINLOCK_CHECK
1014 worker->relax_off_file = file;
1015 worker->relax_off_line = line;
1016 worker->relax_off_func = func;
1019 STARPU_PTHREAD_COND_BROADCAST(&worker->
sched_cond);
1023static inline int _starpu_worker_sched_op_pending(
void)
1025 int workerid = starpu_worker_get_id();
1029 STARPU_ASSERT(worker != NULL);
1042static inline void _starpu_worker_enter_changing_ctx_op(
struct _starpu_worker *
const worker)
1065 STARPU_PTHREAD_COND_BROADCAST(&worker->
sched_cond);
1066#ifdef STARPU_SIMGRID
1067 starpu_pthread_queue_broadcast(&_starpu_simgrid_task_queue[worker->
workerid]);
1084static inline void _starpu_worker_leave_changing_ctx_op(
struct _starpu_worker *
const worker)
1088 STARPU_PTHREAD_COND_BROADCAST(&worker->
sched_cond);
1091#ifdef STARPU_SPINLOCK_CHECK
1092#define _starpu_worker_relax_on() __starpu_worker_relax_on(__FILE__, __LINE__, __starpu_func__)
1093static inline void __starpu_worker_relax_on(
const char*file,
int line,
const char* func)
1097static inline void _starpu_worker_relax_on(
void)
1105 STARPU_PTHREAD_MUTEX_LOCK_SCHED(&worker->
sched_mutex);
1106#ifdef STARPU_SPINLOCK_CHECK
1107 STARPU_ASSERT_MSG(worker->
state_relax_refcnt<UINT_MAX,
"relax last turn on in %s (%s:%d)\n", worker->relax_on_func, worker->relax_on_file, worker->relax_on_line);
1112#ifdef STARPU_SPINLOCK_CHECK
1113 worker->relax_on_file = file;
1114 worker->relax_on_line = line;
1115 worker->relax_on_func = func;
1117 STARPU_PTHREAD_COND_BROADCAST(&worker->
sched_cond);
1118 STARPU_PTHREAD_MUTEX_UNLOCK_SCHED(&worker->
sched_mutex);
1120#define starpu_worker_relax_on _starpu_worker_relax_on
1122#ifdef STARPU_SPINLOCK_CHECK
1123#define _starpu_worker_relax_on_locked(worker) __starpu_worker_relax_on_locked(worker,__FILE__, __LINE__, __starpu_func__)
1124static inline void __starpu_worker_relax_on_locked(
struct _starpu_worker *worker,
const char*file,
int line,
const char* func)
1127static inline void _starpu_worker_relax_on_locked(
struct _starpu_worker *worker)
1132#ifdef STARPU_SPINLOCK_CHECK
1133 STARPU_ASSERT_MSG(worker->
state_relax_refcnt<UINT_MAX,
"relax last turn on in %s (%s:%d)\n", worker->relax_on_func, worker->relax_on_file, worker->relax_on_line);
1138#ifdef STARPU_SPINLOCK_CHECK
1139 worker->relax_on_file = file;
1140 worker->relax_on_line = line;
1141 worker->relax_on_func = func;
1143 STARPU_PTHREAD_COND_BROADCAST(&worker->
sched_cond);
1146#ifdef STARPU_SPINLOCK_CHECK
1147#define _starpu_worker_relax_off() __starpu_worker_relax_off(__FILE__, __LINE__, __starpu_func__)
1148static inline void __starpu_worker_relax_off(
const char*file,
int line,
const char* func)
1150static inline void _starpu_worker_relax_off(
void)
1153 int workerid = starpu_worker_get_id();
1157 STARPU_ASSERT(worker != NULL);
1160 STARPU_PTHREAD_MUTEX_LOCK_SCHED(&worker->
sched_mutex);
1161#ifdef STARPU_SPINLOCK_CHECK
1162 STARPU_ASSERT_MSG(worker->
state_relax_refcnt>0,
"relax last turn off in %s (%s:%d)\n", worker->relax_on_func, worker->relax_on_file, worker->relax_on_line);
1167#ifdef STARPU_SPINLOCK_CHECK
1168 worker->relax_off_file = file;
1169 worker->relax_off_line = line;
1170 worker->relax_off_func = func;
1172 STARPU_PTHREAD_MUTEX_UNLOCK_SCHED(&worker->
sched_mutex);
1174#define starpu_worker_relax_off _starpu_worker_relax_off
1176#ifdef STARPU_SPINLOCK_CHECK
1177#define _starpu_worker_relax_off_locked() __starpu_worker_relax_off_locked(__FILE__, __LINE__, __starpu_func__)
1178static inline void __starpu_worker_relax_off_locked(
const char*file,
int line,
const char* func)
1180static inline void _starpu_worker_relax_off_locked(
void)
1183 int workerid = starpu_worker_get_id();
1187 STARPU_ASSERT(worker != NULL);
1190#ifdef STARPU_SPINLOCK_CHECK
1191 STARPU_ASSERT_MSG(worker->
state_relax_refcnt>0,
"relax last turn off in %s (%s:%d)\n", worker->relax_on_func, worker->relax_on_file, worker->relax_on_line);
1196#ifdef STARPU_SPINLOCK_CHECK
1197 worker->relax_off_file = file;
1198 worker->relax_off_line = line;
1199 worker->relax_off_func = func;
1203static inline int _starpu_worker_get_relax_state(
void)
1205 int workerid = starpu_worker_get_id();
1209 STARPU_ASSERT(worker != NULL);
1212#define starpu_worker_get_relax_state _starpu_worker_get_relax_state
1218static inline void _starpu_worker_lock(
int workerid)
1221 STARPU_ASSERT(worker != NULL);
1222 int cur_workerid = starpu_worker_get_id();
1225 starpu_worker_relax_on();
1227 STARPU_PTHREAD_MUTEX_LOCK_SCHED(&worker->
sched_mutex);
1235 STARPU_PTHREAD_MUTEX_LOCK_SCHED(&worker->
sched_mutex);
1238#define starpu_worker_lock _starpu_worker_lock
1240static inline int _starpu_worker_trylock(
int workerid)
1242 struct _starpu_worker *cur_worker = _starpu_get_local_worker_key();
1243 STARPU_ASSERT(cur_worker != NULL);
1244 int cur_workerid = cur_worker->
workerid;
1246 STARPU_ASSERT(worker != NULL);
1249 int ret = STARPU_PTHREAD_MUTEX_TRYLOCK_SCHED(&cur_worker->
sched_mutex);
1257 ret = STARPU_PTHREAD_MUTEX_TRYLOCK_SCHED(&worker->
sched_mutex);
1263 STARPU_PTHREAD_MUTEX_UNLOCK_SCHED(&worker->
sched_mutex);
1266 _starpu_worker_relax_on_locked(cur_worker);
1267 STARPU_PTHREAD_MUTEX_UNLOCK_SCHED(&cur_worker->
sched_mutex);
1270#define starpu_worker_trylock _starpu_worker_trylock
1272static inline void _starpu_worker_unlock(
int workerid)
1275 STARPU_ASSERT(worker != NULL);
1276 STARPU_PTHREAD_MUTEX_UNLOCK_SCHED(&worker->
sched_mutex);
1277 int cur_workerid = starpu_worker_get_id();
1280 starpu_worker_relax_off();
1283#define starpu_worker_unlock _starpu_worker_unlock
1285static inline void _starpu_worker_lock_self(
void)
1289 STARPU_ASSERT(worker != NULL);
1290 STARPU_PTHREAD_MUTEX_LOCK_SCHED(&worker->
sched_mutex);
1292#define starpu_worker_lock_self _starpu_worker_lock_self
1294static inline void _starpu_worker_unlock_self(
void)
1298 STARPU_ASSERT(worker != NULL);
1299 STARPU_PTHREAD_MUTEX_UNLOCK_SCHED(&worker->
sched_mutex);
1301#define starpu_worker_unlock_self _starpu_worker_unlock_self
1303static inline int _starpu_wake_worker_relax(
int workerid)
1306 int ret = starpu_wake_worker_locked(
workerid);
1310#define starpu_wake_worker_relax _starpu_wake_worker_relax
1312int starpu_wake_worker_relax_light(
int workerid) STARPU_ATTRIBUTE_VISIBILITY_DEFAULT;
1318void _starpu_worker_refuse_task(
struct _starpu_worker *worker,
struct starpu_task *task);
1320void _starpu_set_catch_signals(
int do_catch_signal);
1321int _starpu_get_catch_signals(
void);
1324static inline int _starpu_perf_counter_paused(
void)
1330void _starpu_crash_add_hook(
void (*hook_func)(
void));
1331void _starpu_crash_call_hooks();
1333uint32_t _starpu_worker_exists(
struct starpu_task *task);
1337#pragma GCC visibility pop
Definition barrier_counter.h:29
_starpu_worker_status
Definition errorcheck.h:44
_starpu_worker_status_index
Definition errorcheck.h:32
starpu_worker_archtype
Definition starpu_worker.h:66
#define starpu_worker_get_id_check()
Definition starpu_worker.h:257
starpu_node_kind
Definition starpu_worker.h:44
@ STARPU_NARCH
Definition starpu_worker.h:74
@ STARPU_MAX_RAM
Definition starpu_worker.h:54
void _starpu_worker_start_state(int workerid, enum _starpu_worker_status_index index, struct timespec *start_time)
void _starpu_worker_apply_deferred_ctx_changes(void)
Definition sched_ctx_list.h:27
Definition starpu_spinlock.h:82
char padding[STARPU_CACHELINE_SIZE]
Definition workers.h:331
unsigned memory_node
Definition workers.h:315
struct starpu_perfmodel_arch perf_arch
Definition workers.h:312
uint32_t worker_mask
Definition workers.h:313
hwloc_obj_t(* get_hwloc_obj)(hwloc_topology_t topology, int devid)
Definition workers.h:535
void(* init_worker_binding)(struct _starpu_machine_config *config, int no_mp_config STARPU_ATTRIBUTE_UNUSED, struct _starpu_worker *workerarg)
Definition workers.h:532
const struct _starpu_driver_ops * driver_ops
Definition workers.h:530
unsigned wait_for_worker_initialization
Definition workers.h:529
void(* init_worker_memory)(struct _starpu_machine_config *config, int no_mp_config STARPU_ATTRIBUTE_UNUSED, struct _starpu_worker *workerarg)
Definition workers.h:533
double alpha
Definition workers.h:528
enum starpu_node_kind memory_kind
Definition workers.h:527
const char * name_upper
Definition workers.h:524
const char * name_var
Definition workers.h:525
const char * name_lower
Definition workers.h:526
struct _starpu_combined_worker combined_workers[STARPU_NMAX_COMBINEDWORKERS]
Definition workers.h:475
struct _starpu_machine_config::@6 * bindid_workers
unsigned running
Definition workers.h:499
unsigned nbindid
Definition workers.h:488
int pause_depth
Definition workers.h:505
int current_tcpip_deviceid
Definition workers.h:458
struct _starpu_sched_ctx sched_ctxs[STARPU_NMAX_SCHED_CTXS+1]
Definition workers.h:508
int arch_nodeid[STARPU_NARCH]
Definition workers.h:461
struct _starpu_node nodes[STARPU_MAXNODES]
Definition workers.h:471
int current_bindid
Definition workers.h:450
struct _starpu_worker workers[STARPU_NMAXWORKERS]
Definition workers.h:468
uint32_t worker_mask
Definition workers.h:493
char padding2[STARPU_CACHELINE_SIZE]
Definition workers.h:480
int perf_counter_pause_depth
Definition workers.h:516
unsigned submitting
Definition workers.h:511
int current_devid[STARPU_NARCH]
Definition workers.h:455
char padding1[STARPU_CACHELINE_SIZE]
Definition workers.h:464
struct starpu_conf conf
Definition workers.h:496
unsigned nhwdevices[STARPU_NARCH]
Definition workers.h:388
struct starpu_tree * tree
Definition workers.h:368
hwloc_topology_t hwtopology
Definition workers.h:363
int hip_th_per_dev
Definition workers.h:414
int devid[STARPU_NARCH][STARPU_NMAXDEVS]
Definition workers.h:404
unsigned workers_devid[STARPU_NARCH][STARPU_NMAXWORKERS]
Definition workers.h:437
unsigned nworker[STARPU_NARCH][STARPU_NMAXDEVS]
Definition workers.h:400
int cuda_th_per_stream
Definition workers.h:407
unsigned nworkers
Definition workers.h:354
unsigned ncombinedworkers
Definition workers.h:357
unsigned nhwworker[STARPU_NARCH][STARPU_NMAXDEVS]
Definition workers.h:392
unsigned nusedpus
Definition workers.h:383
unsigned ndevices[STARPU_NARCH]
Definition workers.h:396
unsigned workers_nbindid
Definition workers.h:429
int cuda_th_per_dev
Definition workers.h:409
unsigned nhwpus
Definition workers.h:373
unsigned workers_bindid[STARPU_NMAXWORKERS]
Definition workers.h:423
int hip_th_per_stream
Definition workers.h:412
unsigned firstusedpu
Definition workers.h:378
enum starpu_worker_archtype worker_archtype
Definition workers.h:549
const struct _starpu_node_ops * ops
Definition workers.h:550
const char * name_upper
Definition workers.h:548
struct _starpu_spinlock mc_lock
Definition workers.h:76
unsigned evictable
Definition workers.h:106
volatile int prefetch_out_of_memory
Definition workers.h:103
struct _starpu_data_request_prio_list data_requests[STARPU_MAXNODES][2]
Definition workers.h:112
unsigned mc_nb
Definition workers.h:89
unsigned reclaiming
Definition workers.h:98
int nfreechunks
Definition workers.h:129
struct _starpu_mem_chunk_list mc_list
Definition workers.h:81
starpu_pthread_mutex_t chunk_mutex
Definition workers.h:131
char padding[STARPU_CACHELINE_SIZE]
Definition workers.h:150
struct _starpu_data_request_prio_list data_requests_pending[STARPU_MAXNODES][2]
Definition workers.h:118
struct _starpu_chunk_list chunks
Definition workers.h:127
struct _starpu_mem_chunk * mc_dirty_head
Definition workers.h:84
unsigned tidying
Definition workers.h:96
Definition sched_ctx.h:48
unsigned id
Definition sched_ctx.h:50
unsigned started
Definition workers.h:343
starpu_pthread_t worker_thread
Definition workers.h:341
starpu_pthread_cond_t ready_cond
Definition workers.h:346
unsigned state_blocked_in_parallel_observed
Definition workers.h:193
struct starpu_task * current_task
Definition workers.h:220
unsigned state_block_in_parallel_ack
Definition workers.h:195
unsigned state_relax_refcnt
Definition workers.h:180
struct starpu_task * task_transferring
Definition workers.h:258
unsigned state_changing_ctx_waiting
Definition workers.h:190
unsigned subworkerid
Definition workers.h:164
unsigned devid
Definition workers.h:162
starpu_pthread_t thread_changing_ctx
Definition workers.h:206
int current_rank
Definition workers.h:168
unsigned state_unblock_in_parallel_req
Definition workers.h:196
unsigned nb_buffers_transferred
Definition workers.h:256
starpu_pthread_t worker_thread
Definition workers.h:161
starpu_pthread_cond_t ready_cond
Definition workers.h:171
unsigned memory_node
Definition workers.h:172
int workerid
Definition workers.h:166
unsigned nb_buffers_totransfer
Definition workers.h:257
unsigned devnum
Definition workers.h:163
unsigned state_keep_awake
Definition workers.h:239
struct _starpu_worker_set * set
Definition workers.h:233
int worker_size
Definition workers.h:169
unsigned pop_ctx_priority
Definition workers.h:274
unsigned state_unblock_in_parallel_ack
Definition workers.h:197
unsigned numa_memory_node
Definition workers.h:173
unsigned char pipeline_stuck
Definition workers.h:232
unsigned char pipeline_length
Definition workers.h:231
unsigned nsched_ctxs
Definition workers.h:247
unsigned spinning_backoff
Definition workers.h:254
unsigned state_blocked_in_parallel
Definition workers.h:192
unsigned current_ordered_task_order
Definition workers.h:219
starpu_pthread_cond_t started_cond
Definition workers.h:170
starpu_pthread_mutex_t sched_mutex
Definition workers.h:179
enum starpu_worker_archtype arch
Definition workers.h:158
unsigned run_by_starpu
Definition workers.h:242
unsigned local_ordered_tasks_size
Definition workers.h:217
struct starpu_task ** local_ordered_tasks
Definition workers.h:216
unsigned is_slave_somewhere
Definition workers.h:275
struct _starpu_worker_set * driver_worker_set
Definition workers.h:234
starpu_pthread_cond_t sched_cond
Definition workers.h:178
unsigned has_prev_init
Definition workers.h:250
unsigned char ntasks
Definition workers.h:230
int bindid
Definition workers.h:165
unsigned state_block_in_parallel_req
Definition workers.h:194
unsigned state_changing_ctx_notice
Definition workers.h:191
unsigned state_sched_op_pending
Definition workers.h:189
int combined_workerid
Definition workers.h:167
unsigned char first_task
Definition workers.h:229
unsigned current_ordered_task
Definition workers.h:218
unsigned block_in_parallel_ref_count
Definition workers.h:205
uint32_t worker_mask
Definition workers.h:159
enum _starpu_worker_status status
Definition workers.h:238