Don't run user function until all UserRRefs in the args are confirmed (#34497)

Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/34497

Use a thread_local table to intercept UserRRefs created during user
function args deserialization, and then wait for confirmations of
those UserRRefs before launching the given user function.

Differential Revision: D20347464

Test Plan: Imported from OSS

Pulled By: mrshenli

fbshipit-source-id: 087484a2d2f03fbfb156752ab25653f39b412a07
This commit is contained in:
Shen Li
2020-03-16 18:23:45 -07:00
committed by Facebook GitHub Bot
parent d876fef743
commit 422e348619
26 changed files with 590 additions and 122 deletions

View File

@ -113,6 +113,10 @@ bool PyRRef::isOwner() const {
return rref_->isOwner();
}
bool PyRRef::confirmedByOwner() const {
return rref_->confirmedByOwner();
}
WorkerInfo PyRRef::owner() const {
return RRefContext::getInstance().agent()->getWorkerInfo(rref_->owner());
}