| CPC G06F 9/4881 (2013.01) [G06F 16/9024 (2019.01); G06N 3/02 (2013.01)] | 17 Claims | 

| 
               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. 
               |