Los sistemas paralelos dividen un problema en partes para que varios procesadores lo resuelvan simultáneamente, reduciendo el tiempo de procesamiento. Existen dos tipos principales: de memoria compartida, donde los procesadores acceden a una memoria central común, y de memoria distribuida, donde cada procesador tiene su propia memoria. Los sistemas distribuidos de memoria compartida combinan las ventajas de ambos modelos al proveer una abstracción de memoria compartida a pesar de tener memorias físicamente distribuidas.