Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add NUMA-awareness to allocators #2

Open
3 tasks
lukemartinlogan opened this issue Feb 19, 2023 · 0 comments
Open
3 tasks

Add NUMA-awareness to allocators #2

lukemartinlogan opened this issue Feb 19, 2023 · 0 comments

Comments

@lukemartinlogan
Copy link
Member

We need to have the ability to choose the NUMA node where memory is allocated from.

Three options:

  1. Make this apart of the MemoryBackend.
  • MemoryBackend would contain a vector of (char*,string) tuples.
  • Would have to add an API to the backend for querying NUMA
  • Would have to add an API to the allocator for querying NUMA
  • Would need to update backend to support multiple mappings
  1. Make this apart of an Allocator.
  • Would need to add an API to the allocator for querying NUMA
  • Would need to add a vector to allocator support multiple mapping
  1. Make this apart of the specific data structure
  • User will need to know which allocators belong to which NUMA node
  • Could add an API to memory manager to create an allocator per NUMA node
  • Could add an Allocator takes those allocators as input, and internally determines the NUMA node of the process.

Option 3 is the best. It requires no changes to MemoryBackend or Allocator. Only a NUMA-aware backend and a simple wrapper allocator need to be added.

  • Add backend which enables mapping of a specific NUMA node
  • Add allocator which takes as input a vector of pairs of allocators
  • Add AllocateNuma* wrapper functions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant