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

[Feature] Create shared memory graph store. #468

Merged
merged 94 commits into from Apr 8, 2019

Conversation

zheng-da
Copy link
Collaborator

@zheng-da zheng-da commented Mar 29, 2019

Description

This is to create a shared memory graph store for efficient multiprocessing training. In this way, all trainer processes can access the global graph data efficiently through shared memory. Trainer processes can link to the graph store and create node embeddings and run graph computation in the graph store directly.

Potentially, there is race condition when we update the node/edge embeddings in the graph store. We'll test if this can cause troubles later (e.g., how does it affact the training in GCN with control variate).

Checklist

Please feel free to remove inapplicable items for your PR.

  • The PR title starts with [$CATEGORY] (such as [Model], [Doc], [Feature]])
  • Changes are complete (i.e. I finished coding on this PR)
  • All changes have test coverage
  • Code is well-documented
  • To the my best knowledge, examples are either not affected by this change,
    or have been fixed to be compatible with this change
  • Related issue is referred in this PR

Changes

@zheng-da
Copy link
Collaborator Author

zheng-da commented Apr 4, 2019

@BarclayII do you have further comments?

include/dgl/runtime/shared_mem.h Show resolved Hide resolved
include/dgl/runtime/shared_mem.h Show resolved Hide resolved
include/dgl/vector.h Outdated Show resolved Hide resolved
include/dgl/vector.h Outdated Show resolved Hide resolved
include/dgl/vector.h Outdated Show resolved Hide resolved
shared_mem_name,
num_nodes, num_edges,
self._multigraph,
edge_dir)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The from_xxx list is growing too long. We should consider putting them in a dedicate file (e.g. convert.py) in the future.

python/dgl/contrib/graph_store.py Show resolved Hide resolved
src/graph/data_apis.cc Outdated Show resolved Hide resolved
src/graph/data_apis.cc Outdated Show resolved Hide resolved
src/graph/immutable_graph.cc Show resolved Hide resolved
@zheng-da zheng-da force-pushed the shared_mem_store branch 2 times, most recently from 2b217b9 to 23c0cf9 Compare April 7, 2019 20:43
@zheng-da zheng-da merged commit bfdd1ea into dmlc:master Apr 8, 2019
@jermainewang jermainewang mentioned this pull request May 26, 2019
26 tasks
@zheng-da zheng-da deleted the shared_mem_store branch May 28, 2019 22:18
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.

None yet

4 participants