-
Notifications
You must be signed in to change notification settings - Fork 9
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
NUMA affinity #29
Comments
Could you elaborate? What is NUMA?
…On Oct 14, 2019, 03:59, at 03:59, Gerd Zellweger ***@***.***> wrote:
Not sure this is the right place to ask, but given the already
expansive API in the `Alloc` trait, would specifying a NUMA affinity
for allocations also be something that the API could offer? Or is this
out of scope?
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
#29
|
Sorry for being unspecific with acronyms. I'm talking about non-uniform memory accesses (NUMA). (Briefly: Server system are often multi-socket machines where the memory access latency is better when a thread on a NUMA node accesses memory that is local to that node) There are libraries like libnuma that offer the application writer a more explicit interface to control memory allocation by setting the affinity (i.e., which node you want to allocate from) because sometimes default policies like first-touch in Linux may lead to sub-optimal allocations. My question was about if something like this could be part of the Alloc traits too (i.e., as an optional NUMA affinity parameter or separate functions). |
Is it really necessary to make this part of the |
@Amanieu No, I don't think there is anything that prevents to do it the way you describe it. This is just about ergonomics and whether APIs in style of libnuma should be part of the language/Alloc traits. Please close if this is deemed out of scope. |
@gz I tend to think of the first iteration of the OTOH what @Amanieu suggests allows you to build your own If you have a particular API in mind for something that the |
Would like to mention that I've worked on NUMA affinity and created a NUMA-based allocator already. Bastion runtime uses these as unstable API but I am going to work on numanji to take various numa settings. |
NUMA affinity is a must-have on multi-socket server platforms. For a performance-oriented language it is very important to support this. It would enable rust to just outright demolish go on such platforms in memory intensive applications such as databases. |
Not sure this is the right place to ask, but given the already expansive API in the
Alloc
trait, would specifying a NUMA affinity for allocations also be something that the API could offer? Or is this out of scope?The text was updated successfully, but these errors were encountered: