El procesamiento paralelo es un tipo de procesamiento informático en el que las grandes tareas informáticas se dividen en subtareas más pequeñas que luego se procesan simultáneamente, o en paralelo, en lugar de secuencialmente. Esta tecnología es muy utilizada en la informática moderna, especialmente para problemas avanzados como los que se abordan en las ciencias naturales. Entre los ejemplos de tecnología de procesamiento paralelo dentro de un solo dispositivo se incluyen el multiprocesamiento simétrico y el procesamiento multinúcleo. También se pueden conectar varias computadoras para trabajar en paralelo a través de métodos como la computación distribuida, los clústeres de computadoras y las computadoras masivamente paralelas.
Un multiprocesador simétrico es una computadora con una única memoria principal común y una instancia de sistema operativo vinculada a múltiples procesadores idénticos. Los procesadores tienen las mismas capacidades y están vinculados a una memoria común, por lo que las tareas se pueden asignar o reasignar fácilmente según sea necesario para equilibrar la carga de trabajo entre ellos. En el procesamiento multinúcleo, cada procesador contiene al menos dos unidades centrales de procesamiento (CPU), llamadas núcleos, que son responsables de leer y ejecutar instrucciones. Básicamente, un procesador multinúcleo es en realidad varios procesadores en un solo componente integrado. Esto permite una comunicación más rápida y eficiente entre los núcleos de procesamiento, en comparación con las computadoras multiprocesador en las que cada CPU es un componente separado.
Las computadoras multiprocesador se utilizan ampliamente en aplicaciones científicas y comerciales. Es menos común en los sistemas de computadoras personales, que generalmente son diseños de un procesador, aunque los multiprocesadores se han vuelto más comunes en el mercado de consumo. El software de computadora debe estar diseñado específicamente para computadoras multiprocesador para aprovechar al máximo los beneficios que puede brindar, y este tipo de software a menudo tiene problemas de rendimiento en una computadora de un solo procesador como resultado. Del mismo modo, los programas escritos con un solo procesador en mente generalmente obtienen beneficios limitados del multiprocesamiento porque no están diseñados para aprovecharlo.
La tecnología de procesamiento paralelo distribuido utiliza múltiples computadoras independientes que trabajan en diferentes partes de un problema en paralelo, conectadas entre sí a través de Internet o una red interna para que puedan comunicarse entre sí. Este tipo de tecnología de procesamiento paralelo se puede utilizar con computadoras que están físicamente distantes entre sí, aunque no siempre es necesariamente el caso. Juntas, las computadoras conectadas forman lo que se llama una cuadrícula computacional.
Las cuadrículas computacionales pueden ser muy grandes e incorporar potencialmente miles de computadoras que podrían estar esparcidas por todo el mundo. Es posible que estas computadoras también estén trabajando en problemas no relacionados al mismo tiempo, con tareas en las que la cuadrícula se distribuye entre las computadoras de acuerdo con la capacidad de procesamiento libre que cada una tiene en ese momento. La computación en cuadrícula se diferencia de la mayoría de la computación paralela moderna porque una sola cuadrícula a menudo incluye una gama diversa de computadoras de diferentes capacidades, en lugar de un grupo de unidades idénticas.
Los clústeres de computadoras son una forma de tecnología de procesamiento paralelo en la que varias computadoras conectadas, generalmente con capacidades idénticas, trabajan en estrecha colaboración como una sola unidad. A diferencia del multiprocesamiento simétrico, que utiliza varios procesadores que comparten una memoria y un sistema operativo comunes, cada unidad individual de un clúster es una computadora independiente completa. Por lo general, se encuentran en la misma ubicación geográfica y están conectados en una red de área local. Algunas computadoras se construyen específicamente para su uso en grupos de computadoras, pero los grupos también se pueden formar conectando computadoras que fueron diseñadas originalmente para funcionar de forma autónoma.
Las computadoras masivamente paralelas tienen algunas similitudes con las computadoras en clúster, porque también están compuestas por varias computadoras unidas, pero son mucho más grandes y generalmente contienen cientos o miles de nodos. También tienen sus propios componentes especializados que unen las computadoras individuales que lo componen, mientras que los clústeres de computadoras están unidos por hardware estándar y listo para usar, a menudo denominado componentes básicos. Las computadoras masivamente paralelas más avanzadas pueden ser realmente colosales, ya que contienen decenas de miles de computadoras individuales que ocupan miles de pies cuadrados de espacio, todas trabajando juntas. La mayoría de las supercomputadoras avanzadas del mundo, utilizadas para cálculos complejos en áreas como la astrofísica y la modelización del clima global, son de este tipo.