US 12,141,605 B2
Scheduling operations on a computation graph
Erik Nathan Vee, Hillsborough, CA (US); Manish Deepak Purohit, Fremont, CA (US); Joshua Ruizhi Wang, Mountain View, CA (US); Shanmugasundaram Ravikumar, Piedmont, CA (US); and Zoya Svitkina, Mountain View, CA (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on Jul. 18, 2023, as Appl. No. 18/223,495.
Application 18/223,495 is a continuation of application No. 17/214,699, filed on Mar. 26, 2021, granted, now 11,755,367.
Application 17/214,699 is a continuation of application No. 16/932,581, filed on Jul. 17, 2020, granted, now 10,963,301, issued on Mar. 30, 2021.
Claims priority of provisional application 62/875,433, filed on Jul. 17, 2019.
Prior Publication US 2024/0126596 A1, Apr. 18, 2024
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/48 (2006.01); G06F 16/901 (2019.01); G06N 3/02 (2006.01)
CPC G06F 9/4881 (2013.01) [G06F 16/9024 (2019.01); G06N 3/02 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A method comprising:
obtaining, by a system, data representing a computation graph including a plurality of nodes and directed edges, each of the plurality of nodes representing a respective operation to be performed by one or more computing devices;
receiving, by the system, a request to generate a schedule for processing the computation graph, wherein the schedule defines a sequence of operations represented by the computation graph to be performed by the one or more computing devices according to an ordering;
generating a particular portion of the computation graph based on performing either tree decomposition or path decomposition, wherein the particular portion (i) includes a separator when tree decomposition is performed, and (ii) includes a bag when path decomposition is performed;
generating the schedule, comprising:
initializing the schedule; and
for each node in the particular portion and according to a particular order defined by the computation graph, adding, to the schedule, (i) all predecessor nodes of the node and (ii) all further predecessor nodes of the all predecessor nodes based on one or more of the directed edges and the node; and
causing the one or more computing devices to execute the sequence of operations defined by the schedule.