DistDGL doesn't create the mapping between etype/ntype and etype/ntype IDs correctly.
- Dominant language
- Python
- Stars
- 14.3k
- Forks
- 3.1k
- PR merge metrics
- No merged PRs in 30d
Description
## 🐛 Bug
When DistDGL loads the graph partitions to memory, it loads the mapping of ntype/etype and IDs as dicts from the JSON file. Afterwards, it converts the dicts to python list, where the index on the Python list is the ntype/edge IDs. However, the current implementation adds the ntype/etypes to the list based on the order of them in the dict and ignore the ntype/etype IDs in the dict. This wrong mapping causes a problem if users train on one graph and inference on another graph and the training and inference graphs store the ntype/etypes in the dict in a different order.
The right fix is to create the ntype/etype list correctly, which is indexable with the ntype/etype IDs in the dict.
## To Reproduce
Steps to reproduce the behavior:
1.
1.
1.
## Expected behavior
## Environment
- DGL Version (e.g., 1.0):
- Backend Library & Version (e.g., PyTorch 0.4.1, MXNet/Gluon 1.3):
- OS (e.g., Linux):
- How you installed DGL (`conda`, `pip`, source):
- Build command you used (if compiling from source):
- Python version:
- CUDA/cuDNN version (if applicable):
- GPU models and configuration (e.g. V100):
- Any other relevant information:
## Additional context
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.