Fix ParMETIS call so it uses all workers in cluster. #877
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #, if available:
Description of changes:
pm_dglpart
executable throughmpirun
using only a single/process worker. This PR pulls in a necessary file thatparmetis_preprocess.py
creates in the wrong path, and fixes the number of workers used to match the number of partitions.Detailed motivation for the change
The parmetis program implicitly expects a file named
<graph-name>_stats.txt
to be in the current working directory, the way the call is implemented at least. Actually the reference DGL implementation is wrong, it passes the graph_name whereas pm_dglpart actually expects a prefix path to which it appends _stats.txt. It just so happens that if we prefix the graph_name to a file in the cwd, and name it graph-name_stats.txt pm_dglpart will pick it up and use it.A more correct solution would be to pass the absolute path to graph-name_stats.txt as the first argument to pm_dglpart (which pm_dglpart refers to as
fstem
)You can check out the actual call here
The fstem var is used downstream here
Testing
Tested using Docker compose on ml-25M with 2 partitions.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.