US 11,809,915 B1
Parallel processing techniques for expediting reconciliation for a hierarchy of forecasts on a computer system
Matthew Wayne Simpson, Cary, NC (US); Caiqin Wang, Cary, NC (US); Nilesh Jakhotiya, Cary, NC (US); and Michele Angelo Trovero, Cary, NC (US)
Assigned to SAS Institute Inc., Cary, NC (US)
Filed by SAS Institute Inc., Cary, NC (US)
Filed on Aug. 2, 2023, as Appl. No. 18/229,333.
Claims priority of provisional application 63/461,208, filed on Apr. 21, 2023.
Claims priority of provisional application 63/457,391, filed on Apr. 5, 2023.
Int. Cl. G06F 9/46 (2006.01); G06F 9/52 (2006.01)
CPC G06F 9/52 (2013.01) 30 Claims
OG exemplary drawing
 
1. A system comprising:
one or more processors; and
one or more memories including program code that is executable by the one or more processors for causing the one or more processors to:
receive a plurality of forecasts that have a hierarchical relationship with respect to one another, wherein each forecast among the plurality of forecasts corresponds to a respective level of a hierarchy, and wherein at least one forecast in the plurality of forecasts corresponds to a higher level of the hierarchy than at least one other forecast of the plurality of forecasts; and
distribute the plurality of forecasts among a plurality of computing nodes of a distributed computing environment by time point, such that all data points corresponding to a same time point in the plurality of forecasts are assigned to a same computing node of the plurality of computing nodes, the plurality of computing nodes being configured to collectively process the plurality of forecasts in parallel to implement a reconciliation process that involves adjusting the plurality of forecasts subject to an aggregation constraint, the plurality of computing nodes being further configured to:
receive a plurality of datasets corresponding to a plurality of time points, each dataset of the plurality of datasets including a respective set of data points from the plurality of forecasts corresponding to a single time point;
organize the respective set of data points in each of the plurality of datasets by forecast to generate a plurality of ordered datasets;
assign the plurality of ordered datasets to a plurality of processing threads on the plurality of computing nodes, the plurality of processing threads being executable in parallel to implement respective portions of the reconciliation process using the plurality of ordered datasets;
execute the plurality of processing threads to implement the reconciliation process on the plurality of forecasts, to thereby generate a plurality of reconciled values; and
output the plurality of reconciled values.