CPC G06F 9/52 (2013.01) [G06F 9/46 (2013.01); G06F 9/466 (2013.01); G06F 9/467 (2013.01); G06F 9/48 (2013.01); G06F 9/4806 (2013.01); G06F 9/50 (2013.01); G06F 9/5005 (2013.01); G06F 9/5016 (2013.01); G06F 9/5022 (2013.01); G06F 9/5038 (2013.01); G06F 9/522 (2013.01); G06F 9/524 (2013.01); G06F 9/526 (2013.01); G06F 16/901 (2019.01); G06F 16/9024 (2019.01)] | 23 Claims |
1. A system comprising:
a plurality of computers and one or more storage devices storing instructions that are operable, when executed by the plurality of computers, to cause the plurality of computers to perform operations comprising:
receiving a representation of a computational graph having a critical section subgraph, the critical section subgraph specifying a lock operation, an unlock operation, and one or more other operations; and
executing, by a task server, the critical section subgraph including:
executing the lock operation including providing, by the task server, a first request to a value server to create a shared critical section object,
determining, by the task server, that the shared critical section object was created by the value server,
in response to determining that the shared critical section object was created by the value server, executing, by the task server, the one or more other operations of the critical section subgraph in serial, and
executing, by the task server, the unlock operation including providing, by the task server, a second request to the value server to delete the shared critical section object.
|