1. A method for structure learning, comprising: assigning a score computation task of a structure learning scoring process to a first thread, the first thread to access only a first partition of a global score cache for the score computation task and compute a first value for use in the score computation task; assigning an additional score computation task to a second thread, the second thread to access a second partition of the global score cache, and not the first partition of the global score cache for the additional score computation task, and compute in parallel a second value for use in the additional score computation task; and the first and the second threads storing the first and the second values in the first partition of the global score cache and the second partition of the global score cache, respectively.