Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

[MXNET-1294] Add PushPull API #15559

Merged
merged 3 commits into from
Sep 8, 2019
Merged

Conversation

anandj91
Copy link
Contributor

@anandj91 anandj91 commented Jul 16, 2019

Description

This PR introduces a new KVStore API called pushpull.
pushpull is a coalesced version of push and pull APIs. pushpull however can send and receive the key-value pairs with just one network call to the KVServer, thus eliminating the need to send a separate pull.

Checklist

Essentials

Please feel free to remove inapplicable items for your PR.

  • The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
  • Changes are complete (i.e. I finished coding on this PR)
  • All changes have test coverage:
  • Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
  • Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
  • Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
  • Code is well-documented:
  • For user-facing API changes, API doc string has been updated.
  • For new C++ functions in header files, their functionalities and arguments are documented.
  • For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
  • Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
  • To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

  • PushPull API, tests, (and when applicable, API doc)

Comments

  • If this change is a backward incompatible change, why must this change be made.
  • Interesting edge cases to note here

@anandj91
Copy link
Contributor Author

This is PR is work in progress and is raised to get the API definition reviewed.
This PR is part of the #15124.

@karan6181
Copy link
Contributor

@mxnet-label-bot add [KVStore, C API, pr-work-in-progress]

@marcoabreu marcoabreu added C API KVStore pr-work-in-progress PR is still work in progress labels Jul 16, 2019
@anandj91 anandj91 force-pushed the pushpull branch 2 times, most recently from e53c5cc to 3507312 Compare July 21, 2019 08:03
Copy link
Member

@eric-haibin-lin eric-haibin-lin left a comment

Choose a reason for hiding this comment

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

can you remove ignore_sparse from the interface, and add unit tests? Otherwise looks good.

include/mxnet/kvstore.h Outdated Show resolved Hide resolved
src/kvstore/kvstore_dist_server.h Show resolved Hide resolved
@roywei
Copy link
Member

roywei commented Aug 19, 2019

@anandj91 gentle ping to address the comments, thanks!

@anandj91 anandj91 force-pushed the pushpull branch 5 times, most recently from c1ceca4 to 2eb6321 Compare September 2, 2019 01:45
@eric-haibin-lin
Copy link
Member

@anandj91 thanks for the awesome contribution!

@eric-haibin-lin eric-haibin-lin merged commit 1c67928 into apache:master Sep 8, 2019
larroy pushed a commit to larroy/mxnet that referenced this pull request Sep 28, 2019
* Switch to latest ps-lite

* Add PushPull API

* Add PushPull test cases
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
C API KVStore pr-work-in-progress PR is still work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants