1. A method for structure learning, comprising: assigning a first score computation task of a structure learning scoring process for learning a probabilistic relationship between a plurality of nodes of the structure to a first thread, the first thread to access only a first partition of a shared partitioned global score cache for the first score computation task and compute a first value for use in the first score computation task, the first score computation task comprising learning neighboring nodes of a first node of the structure, the shared partitioned global cache to include scores for node families based on probabilistic relationships within each node family, the first partition to include scores for at least one node family associated with the first node; assigning a second score computation task of the structure learning scoring process to a second thread, the second thread to access a second partition of the shared partitioned global score cache, to be restricted access to the first partition of the shared partitioned global score cache for the second score computation task, and to compute in parallel a second value for use in the second score computation task, the second score computation task comprising learning neighboring nodes of a second node of the structure, the second partition to include scores for at least one node family associated with the second node; and the first and the second threads storing the first and the second values in the first partition of the partitioned global score cache and the second partition of the global score cache, respectively.