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;
54 char *sched_policy_name;
55 struct starpu_sched_policy *sched_policy_struct;
56 unsigned keep_homogeneous;
58 void (*create_func)(
void*);
59 void *create_func_arg;
61 unsigned awake_workers;
64LIST_TYPE(_starpu_parallel_worker_group,
66 hwloc_obj_t group_obj;
67 int nparallel_workers;
68 struct _starpu_parallel_worker_list *parallel_workers;
73LIST_TYPE(_starpu_parallel_worker,
75 hwloc_cpuset_t cpuset;
79 struct _starpu_parallel_worker_group *father;
87void _starpu_parallel_worker(
struct _starpu_parallel_worker_group *group);
95void _starpu_parallel_worker_init(
struct _starpu_parallel_worker *parallel_worker,
struct _starpu_parallel_worker_group *father);
96int _starpu_parallel_worker_create(
struct _starpu_parallel_worker *parallel_worker);
98int _starpu_parallel_worker_bind(
struct _starpu_parallel_worker *parallel_worker);
99int _starpu_parallel_worker_remove(
struct _starpu_parallel_worker_list *parallel_worker_list,
struct _starpu_parallel_worker *parallel_worker);
103int _starpu_parallel_worker_group_create(
struct _starpu_parallel_worker_group *group);
104int _starpu_parallel_worker_group_remove(
struct _starpu_parallel_worker_group_list *group_list,
struct _starpu_parallel_worker_group *group);
107void _starpu_parallel_worker_noop(
void *buffers[],
void *cl_arg)
113static struct starpu_codelet _starpu_parallel_worker_bind_cl=
115 .cpu_funcs = {_starpu_parallel_worker_noop},
117 .name =
"parallel_worker_internal_runtime_init"
120typedef void (*starpu_binding_function)(
void*);
121starpu_binding_function _starpu_parallel_worker_type_get_func(
enum starpu_parallel_worker_types type);
123#pragma GCC visibility pop
Definition starpu_parallel_worker_create.h:40
Definition starpu_parallel_worker_create.h:50