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

Use multi-piece queue mechanism to avoid unnecessary copying during collectives #70

Open
mrzv opened this issue May 22, 2018 · 0 comments

Comments

@mrzv
Copy link
Member

mrzv commented May 22, 2018

Large queues (> 2GB) are broken into smaller pieces (tagged with tags::piece) to work around MPI limitations. detail::VectorWindow<char> is used to put subsets of the MemoryBuffers into MPI i[s]send routines without having to make a copy. shared_ptrs are used to keep track of the original buffer as long as some in-flight message needs it.

We could use the same mechanism during, e.g., all-to-all operations to avoid making copies between buffers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant