El procesamiento paralelo es el procesamiento simultáneo de la misma tarea en dos o más microprocesadores para obtener resultados más rápidos. Los recursos de la computadora pueden incluir una sola computadora con múltiples procesadores, o varias computadoras conectadas por una red, o una combinación de ambas. Los procesadores acceden a los datos a través de la memoria compartida. Algunos sistemas de procesamiento paralelo de supercomputadoras tienen cientos de miles de microprocesadores.
Con la ayuda del procesamiento en paralelo, se pueden realizar varios cálculos a la vez, lo que reduce el tiempo necesario para completar un proyecto. Es particularmente útil en proyectos que requieren cálculos complejos, como modelos meteorológicos y efectos especiales digitales. Tomemos un ejemplo de la vida real para comprender la eficacia de este tipo de procesamiento.
Si un centro comercial concurrido tiene un solo mostrador de efectivo, los clientes formarán una sola fila y esperarán su turno. Si hay dos contadores de efectivo, la tarea se puede dividir de manera efectiva. Los clientes formarán dos colas y serán atendidos el doble de rápido. Este es un caso en el que el procesamiento en paralelo es una solución eficaz.
Con la ayuda del procesamiento en paralelo, se pueden resolver eficazmente problemas científicos muy complicados que, de otro modo, serían extremadamente difíciles de resolver. La computación paralela se puede utilizar eficazmente para tareas que implican una gran cantidad de cálculos, tienen limitaciones de tiempo y se pueden dividir en varias tareas más pequeñas.
El procesamiento paralelo es particularmente beneficioso en áreas como el tiempo y el clima, reacciones químicas y nucleares, exploración de petróleo, medición de datos sísmicos, tecnología espacial, circuitos electrónicos, genoma humano, medicina, gráficos avanzados y realidad virtual y procesos de fabricación.
Con toda probabilidad, el paralelismo es el futuro de la informática. En general, la implementación exitosa de la computación paralela implica dos desafíos:
Las tareas deben estar estructuradas de tal manera que se puedan ejecutar al mismo tiempo.
Se debe mantener la secuencia de tareas que deben ejecutarse una tras otra.