Skip to content

runtime: NUMA optimization for channels #12298

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

Closed
shawnl opened this issue Aug 24, 2015 · 4 comments
Closed

runtime: NUMA optimization for channels #12298

shawnl opened this issue Aug 24, 2015 · 4 comments

Comments

@shawnl
Copy link

shawnl commented Aug 24, 2015

This is a big job. This is an optimization of the sharing memory by communicating method.[1]

When a struct (not a pointer) above a GO_NUMA_MIGRATE size (determined at compile time) is sent across a channel the slice should be relocated to run on a local NUMA node.

[1] http://blog.golang.org/share-memory-by-communicating

@bradfitz
Copy link
Contributor

A slice is just a pointer, basically. See http://blog.golang.org/go-slices-usage-and-internals

The scheduler continues to improve, and data locality is definitely a part of that.

I don't think there's anything specifically actionable here.

@shawnl
Copy link
Author

shawnl commented Aug 24, 2015

I edited it to a struct after I opened the bug.

@randall77
Copy link
Contributor

Structs are relocated to the target NUMA node, in particular they are copied to the target's stack frame.

@minux
Copy link
Member

minux commented Aug 24, 2015 via email

@mikioh mikioh changed the title NUMA optimization for channels runtime: NUMA optimization for channels Aug 24, 2015
@golang golang locked and limited conversation to collaborators Aug 24, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants