Anteriormente los desarrolladores necesitaban reprogramar su software de forma que tomara explícitamente ventaja de los múltiples núcleos, hecho que fácilmente se volvía tedioso y problemático, especialmente en software complejo.