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 SLATE for Distributed Memory Linear Algebra #407

Draft
wants to merge 51 commits into
base: master
Choose a base branch
from

Conversation

wavefunction91
Copy link
Contributor

@wavefunction91 wavefunction91 commented Jun 1, 2023

Add a SLATE compatibility layer for distributed memory linear algebra. (WIP)

Open questions:

  1. For TA -> SLATE copies we can always enforce (although perhaps not optimally) zero-communication. I'm unclear as to what we would want the expected behaviour of a SLATE -> TA copy to be. We could create a custom PMap from the map that SLATE uses, but it's unclear that would play nicely with everything else in TA. We could also pass a desired PMap/TiledRange for the resulting DistArray, but that could (and likely would trigger communication). How far down the compatibility rabbit-hole do we want to go?

@evaleev
Copy link
Member

evaleev commented Jun 6, 2023

unclear as to what we would want the expected behaviour of a SLATE -> TA copy to be. We could create a custom PMap from the map that SLATE uses, but it's unclear that would play nicely with everything else in TA.

That should be totally fine. TA algorithms never rely on any particular pmap for their args.

We could also pass a desired PMap/TiledRange for the resulting DistArray, but that could (and likely would trigger communication). How far down the compatibility rabbit-hole do we want to go?

Makes sense to just keep the result's tiles where they are. User can rebind another pmap explicitly if needed.

Let's learn about the needs first before spending too much time on the API.

@wavefunction91
Copy link
Contributor Author

Just to put a comment where someone might actually see it - I've disabled the "smart" iterator in CyclicPmap because I couldn't work out the logic and how to extend it to ColMajor. If it's a condition for merging, I'll work out the logic.

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

Successfully merging this pull request may close these issues.

2 participants