Shared Concepts

Multithreading

Threading refers to the organization of computational work into multiple tasks (processing units that can be scheduled by the operating system). A task is associated with a thread. Multithreading refers to the concurrent execution of threads. When multithreading is possible, substantial performance gains can be realized compared to sequential (single-threaded) execution. The number of threads spawned by a action in this book is determined by your installation.

The tasks that are multithreaded by actions in this book are primarily defined by dividing the data that are processed on a single machine among the threads—that is, the actions implement multithreading through a data-parallel model. For example, if the input data table has 1,000 observations and the action is running on four threads, then 250 observations are associated with each thread. All operations that require access to the data are then multithreaded. These operations include the following (not all operations are required for all actions):

  • variable levelization

  • effect levelization

  • formation of the initial crossproducts matrix

  • formation of approximate Hessian matrices for candidate evaluation during model selection

  • objective function calculation

  • gradient calculation

  • Hessian calculation

  • scoring of observations

In addition, operations on matrices such as sweeps can be multithreaded provided that the matrices are of sufficient size to realize performance benefits from managing multiple threads for the particular matrix operation.

Last updated: March 05, 2026