Following this morning F2F discussions:
- Update replicaset interface from
int aml_replicaset_hwloc_create(
struct aml_replicaset **out,
const size_t size,
const hwloc_obj_type_t initiator_type,
const enum hwloc_distances_kind_e kind
);
to
int aml_replicaset_hwloc_create(
struct aml_replicaset **out,
const size_t size,
const enum aml_distance_kind_e kind
);
The aml_replicaset_hwloc_local_replica remains unchanged, it always assumed the replicaset was on a core object type
- Use hwloc's
memattr instead of distances interfaces, for several reasons:
distances currently only supports latency
memattr can create lists in the form: [(numa node x0, cpuset c0, distance d0), ...]
From AML perspective, implement aml_replicaset_hwloc_create as:
- sort the list by distance
- iterate through it to find a union of numa node that covers all cpus
- replicate memory on each numa node
and implement aml_replicaset_hwloc_local_replica as
- get current cpuset
- go through the list of replicate
- return the first replicate that matches the current cpuset
WIP https://github.com/anlsys/aml/tree/update-replicaset
Following this morning F2F discussions:
to
The
aml_replicaset_hwloc_local_replicaremains unchanged, it always assumed the replicaset was on a core object typememattrinstead ofdistancesinterfaces, for several reasons:distancescurrently only supports latencymemattrcan create lists in the form: [(numa node x0, cpuset c0, distance d0), ...]From AML perspective, implement
aml_replicaset_hwloc_createas:and implement
aml_replicaset_hwloc_local_replicaasWIP https://github.com/anlsys/aml/tree/update-replicaset