Patent attributes
Disclosed herein are methods, systems, and apparatus, including computer programs encoded on computer storage media, for performing allocation of M resources among N users into K pools by solving a knapsack problem (KP) using a distributed computing system that includes a number of individual solvers. The method includes: receiving data representing K global constraints and L local constraints of the KP; decomposing the KP into N sub-problems using K dual multipliers, each of the N sub-problems corresponding to a respective one of the N users and subject to the L local constraints w.r.t. the corresponding user, wherein N is in an order of billions or larger; determining the number of individual solvers for solving the N sub-problems; distributing the N sub-problems among the number of individual solvers; and solving the KP by the distributed computing system by performing two or more iterations.