|
|
@@ -34,52 +34,52 @@ extern
|
|
|
|
|
|
struct _starpu_cluster_parameters
|
|
|
{
|
|
|
- int min_nb;
|
|
|
- int max_nb;
|
|
|
- int nb;
|
|
|
- char* sched_policy_name;
|
|
|
- struct starpu_sched_policy* sched_policy_struct;
|
|
|
- unsigned keep_homogeneous;
|
|
|
- unsigned prefere_min;
|
|
|
- void (*create_func)(void*);
|
|
|
- void* create_func_arg;
|
|
|
- int type;
|
|
|
- unsigned awake_workers;
|
|
|
+ int min_nb;
|
|
|
+ int max_nb;
|
|
|
+ int nb;
|
|
|
+ char* sched_policy_name;
|
|
|
+ struct starpu_sched_policy* sched_policy_struct;
|
|
|
+ unsigned keep_homogeneous;
|
|
|
+ unsigned prefere_min;
|
|
|
+ void (*create_func)(void*);
|
|
|
+ void* create_func_arg;
|
|
|
+ int type;
|
|
|
+ unsigned awake_workers;
|
|
|
};
|
|
|
|
|
|
LIST_TYPE(_starpu_cluster_group,
|
|
|
- unsigned id;
|
|
|
- hwloc_obj_t group_obj;
|
|
|
- int nclusters;
|
|
|
- struct _starpu_cluster_list* clusters;
|
|
|
- struct starpu_cluster_machine* father;
|
|
|
- struct _starpu_cluster_parameters* params;
|
|
|
+ unsigned id;
|
|
|
+ hwloc_obj_t group_obj;
|
|
|
+ int nclusters;
|
|
|
+ struct _starpu_cluster_list* clusters;
|
|
|
+ struct starpu_cluster_machine* father;
|
|
|
+ struct _starpu_cluster_parameters* params;
|
|
|
)
|
|
|
|
|
|
LIST_TYPE(_starpu_cluster,
|
|
|
- unsigned id;
|
|
|
- hwloc_cpuset_t cpuset;
|
|
|
- int ncores;
|
|
|
- int* cores;
|
|
|
- int* workerids;
|
|
|
- struct _starpu_cluster_group* father;
|
|
|
- struct _starpu_cluster_parameters* params;
|
|
|
- );
|
|
|
+ unsigned id;
|
|
|
+ hwloc_cpuset_t cpuset;
|
|
|
+ int ncores;
|
|
|
+ int* cores;
|
|
|
+ int* workerids;
|
|
|
+ struct _starpu_cluster_group* father;
|
|
|
+ struct _starpu_cluster_parameters* params;
|
|
|
+)
|
|
|
|
|
|
|
|
|
/* Machine discovery and cluster creation main funcitons */
|
|
|
void _starpu_cluster_machine(hwloc_obj_type_t cluster_level,
|
|
|
- struct starpu_cluster_machine* machine);
|
|
|
+ struct starpu_cluster_machine* machine);
|
|
|
void _starpu_cluster_topology(hwloc_obj_type_t cluster_level,
|
|
|
- struct starpu_cluster_machine* machine);
|
|
|
+ struct starpu_cluster_machine* machine);
|
|
|
void _starpu_cluster_group(hwloc_obj_type_t cluster_level,
|
|
|
- struct starpu_cluster_machine* machine);
|
|
|
+ struct starpu_cluster_machine* machine);
|
|
|
void _starpu_cluster(struct _starpu_cluster_group* group);
|
|
|
|
|
|
/* Parameter functions */
|
|
|
void _starpu_cluster_init_parameters(struct _starpu_cluster_parameters* globals);
|
|
|
void _starpu_cluster_copy_parameters(struct _starpu_cluster_parameters* src,
|
|
|
- struct _starpu_cluster_parameters* dst);
|
|
|
+ struct _starpu_cluster_parameters* dst);
|
|
|
int _starpu_cluster_analyze_parameters(struct _starpu_cluster_parameters* params, int npus);
|
|
|
|
|
|
/* Cluster helper functions */
|
|
|
@@ -88,14 +88,14 @@ void _starpu_cluster_create(struct _starpu_cluster* cluster);
|
|
|
|
|
|
int _starpu_cluster_bind(struct _starpu_cluster* cluster);
|
|
|
int _starpu_cluster_remove(struct _starpu_cluster_list* cluster_list,
|
|
|
- struct _starpu_cluster* cluster);
|
|
|
+ struct _starpu_cluster* cluster);
|
|
|
|
|
|
/* Cluster group helper function */
|
|
|
void _starpu_cluster_group_init(struct _starpu_cluster_group* group,
|
|
|
- struct starpu_cluster_machine* father);
|
|
|
+ struct starpu_cluster_machine* father);
|
|
|
void _starpu_cluster_group_create(struct _starpu_cluster_group* group);
|
|
|
int _starpu_cluster_group_remove(struct _starpu_cluster_group_list* group_list,
|
|
|
- struct _starpu_cluster_group* group);
|
|
|
+ struct _starpu_cluster_group* group);
|
|
|
|
|
|
/* Binding helpers */
|
|
|
void _starpu_cluster_noop(void* buffers[], void* cl_arg)
|