Skip to content

Replicaset update #243

@rpereira-dev

Description

@rpereira-dev

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions