Paralelización automática, también auto paralelización, autoparalelización, o paralelización, se refiere a convertir código secuencial en multihilo o vectorizado (o los dos) con objeto de utilizar múltiples procesadores simultáneamente en una máquina con multiprocesador (SMP) de memoria compartida.
La utilidad de la paralelización automática es liberar a los programadores del proceso tedioso y tendente a errores de la paralelización manual.
Aunque parece contraproducente, el código no siempre se beneficia de la ejecución paralela.
El código Fortran que aparece a continuación puede ser auto-paralelizado por un compilador porque cada iteración es independiente de las demás, y el resultado final del vector z será correcto independientemente del orden de ejecución de las iteraciones.
La paralelización automática de los compiladores o herramientas es muy compleja debido a las siguientes causas: Debido a las dificultades inherentes a la paralelización automática completa, existen varias aproximaciones más sencillas para conseguir un programa paralelo de más calidad, como son: La mayoría de las investigadores en compiladores para la paralelización automática prefieren los programas Fortran,[cita requerida] porque Fortran ofrece mayores garantías sobre aliasing que otros lenguajes como C. Ejemplos típicos son: