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
[ENH] Improve how we check for MG path at the C++ level #995
Comments
moving to 0.16 and the big push for better MG support |
I think this issue is obsolete now. This is relevant to only 1D BFS & PageRank, but those will retire by the end of 0.16. Addressing this requires updating the old graph class and can require sizable amount of effort, and I don't think this is really worth the effort. This is already part of the new graph class and the pattern accelerator API based BFS & PageRank implementations. |
To summarize the effort so far, I added the bool template param to the graph classes in C++, but passing a non-type template arg in Cython was causing problems. I tried using a workaround described here, which made Cython happy, but the resulting C++ code looked suspicious and didn't compile, so I don't know if I used it correctly (still looking into that). Here's the generated code from the workaround for anyone interested:
@Iroy30 pointed me to a thread with some additional ideas here, which I have yet to try. Unfortunately it appears that formal support for non-type template args in Cython still hasn't been added yet, based on this still-open PR Another consideration is that since this is an additional template arg to the graph classes, it means that every Cython file will need to be updated, making it a fairly intrusive PR. I think that's normally okay, but as @seunghwak mentioned, it might be outside the intended scope of the issue if we already have it addressed in a new pattern accelerator-based approach to be applied soon. |
This issue is really about the old 1D structure and is now OBE. Closing |
In several places we are using comms initialization as a way to specify whether to take the MG path or not:
if (handle.comms_initialized()) {
We need a better way to separate MG distributed from MG batch other than checking the handle communicator. We should also keep consolidation in mind. There are several things we should do :
I think we should add both 1. and 2. first and consider 3. if 2. has complications at the python layer
The text was updated successfully, but these errors were encountered: