1. A method for network structure learning comprising: determining whether a score cache includes a score for each of a plurality of network node families, the family scores to provide values with which to compute scores for multiple neighbors; placing, in a queue, node families for which the score cache does not include scores; distributing an integer value comprising the integer quotient of [M/N] of node families out of the queue to each parallel computing device to score, wherein M is an integer representing the number of node families to score and N is an integer representing the number of parallel computing devices; loading resulting scores from the parallel computing devices for the scored node families into a master score node; and synchronizing the parallel computing devices with the master score node to make the resulting scores available to the parallel computing devices for scoring the neighbors.