17#ifndef __STARPU_PARALLEL_WORKERS_CREATE_H__
18#define __STARPU_PARALLEL_WORKERS_CREATE_H__
23#include <core/workers.h>
28#include <mkl_service.h>
31#ifdef STARPU_PARALLEL_WORKER
37#pragma GCC visibility push(hidden)
42 hwloc_topology_t topology;
43 unsigned nparallel_workers;
45 struct _starpu_parallel_worker_group_list *groups;
55 char *sched_policy_name;
56 struct starpu_sched_policy *sched_policy_struct;
57 unsigned keep_homogeneous;
59 void (*create_func)(
void*);
60 void *create_func_arg;
62 unsigned awake_workers;
65LIST_TYPE(_starpu_parallel_worker_group,
67 hwloc_obj_t group_obj;
68 int nparallel_workers;
69 struct _starpu_parallel_worker_list *parallel_workers;
74LIST_TYPE(_starpu_parallel_worker,
76 hwloc_cpuset_t cpuset;
80 struct _starpu_parallel_worker_group *father;
88void _starpu_parallel_worker(
struct _starpu_parallel_worker_group *group);
96void _starpu_parallel_worker_init(
struct _starpu_parallel_worker *parallel_worker,
struct _starpu_parallel_worker_group *father);
97int _starpu_parallel_worker_create(
struct _starpu_parallel_worker *parallel_worker);
99int _starpu_parallel_worker_bind(
struct _starpu_parallel_worker *parallel_worker);
100int _starpu_parallel_worker_remove(
struct _starpu_parallel_worker_list *parallel_worker_list,
struct _starpu_parallel_worker *parallel_worker);
104int _starpu_parallel_worker_group_create(
struct _starpu_parallel_worker_group *group);
105int _starpu_parallel_worker_group_remove(
struct _starpu_parallel_worker_group_list *group_list,
struct _starpu_parallel_worker_group *group);
108void _starpu_parallel_worker_noop(
void *buffers[],
void *cl_arg)
114static struct starpu_codelet _starpu_parallel_worker_bind_cl=
116 .cpu_funcs = {_starpu_parallel_worker_noop},
118 .name =
"parallel_worker_internal_runtime_init"
121typedef void (*starpu_binding_function)(
void*);
122starpu_binding_function _starpu_parallel_worker_type_get_func(
enum starpu_parallel_worker_types type);
124#pragma GCC visibility pop
Definition: starpu_parallel_worker_create.h:40
Definition: starpu_parallel_worker_create.h:51