-
Notifications
You must be signed in to change notification settings - Fork 110
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
Handoff data to other distributed services #223
Comments
There is a generic (but usually not the fastest) I would recommend starting with these interfaces for loading data into Elemental, and there are equivalent "pull" analogues to the above "puts": Please see
Once this is working, we could look into ways of avoiding all of the unnecessary row and column metadata sent by said routines. |
And, as luck would have it, I already exposed a Python interface to the above: Elemental/python/core/DistMatrix.py Line 1675 in 73c658c
|
That is indeed fortunate. I suspect we might end up being bound by python for loops, but I agree that this is probably enough to demonstrate feasibility and that that should come before optimization. |
I haven't yet added C/Python interfaces to |
My end goal is to share data between distributed Dask.array and Elemental. For most of this question though Dask-specifics shouldn't be important. Instead, consider the case where I have several Python processes running in an MPI world and that each Python process has a few numpy arrays which, when arranged together, form the chunks of a distributed array. To be concrete, here is a case with a world of size two:
Process 1
Process 2
I also know the shape of the array, the datatypes, etc. My chunks aren't necessarily uniformly arranged. In this case rank 0 has three chunks while rank 1 has one. I would be willing to rearrange chunks arbitrarily if necessary, but would prefer to avoid the communication if possible.
I would like to take all of these numpy arrays hand them to Elemental within each process, and then do more computationally intense operations using Elemental's algorithms. Afterwards, I would like to reverse the process and get back a bunch of NumPy arrays in all of my Python processes:
Process 1
Process 2
Is this feasible? If so then what is the best way to go about it?
The text was updated successfully, but these errors were encountered: