La computación paralela es una forma de cómputo en la que se hace uso de 2 o más procesadores para resolver una tarea.
La técnica se basa en el principio según el cual, algunas tareas se pueden dividir en partes más pequeñas que pueden ser resueltas simultáneamente.
La computación paralela se ha convertido en el paradigma dominante a la hora de fabricar procesadores, por lo tanto, es fundamental conocer no solo las aplicaciones actuales de esta forma de cómputo, sino también la importancia que tendrá en el futuro.
![La computación paralela: alta capacidad de procesamiento parallel computing](https://www.teldat.com/wp-content/uploads/2022/06/jorge1-300x183.png)
Figura 1 Computación en serie vs. computación paralela
Computación paralela: un poco de historia…
En el pasado, el aumento de frecuencia en los procesadores fue la razón imperante de las mejoras de rendimiento de los computadores, al menos hasta el año 2004. Al aumentar la frecuencia de reloj de los procesadores, el tiempo de ejecución de los problemas se reduce.
Sin embargo, el aumento de la frecuencia tiene un efecto negativo con respecto al consumo energético. El consumo de energía de las CPU viene dado por la siguiente ecuación:
Donde C es el cambio de capacitancia, V es el voltaje y f es la frecuencia del procesador. Al aumentar la frecuencia, se aumenta proporcionalmente el consumo de energía.
Este fue el motivo principal por el cual la computación paralela se estableció como el paradigma dominante. Esto lo podemos apreciar en el hecho de que la gran mayoría de computadores son multinúcleo; desde los supercomputadores hasta los ordenadores personales. ¡Incluso algunos smartphones alcanzan ya la cifra de hasta 8 cores! .
Según la tendencia actual, es fácil vaticinar que los futuros procesadores seguirán siendo multinúcleo con una cantidad de elementos de proceso que no parará de crecer; especialmente teniendo en cuenta que cada vez es más necesario disponer de una alta capacidad de procesamiento.
Figura 2 Evolución de los microprocesadores
En la imagen anterior se puede apreciar claramente el punto de inflexión que se produjo alrededor del año 2004. Vemos también cómo en los últimos años la frecuencia y el consumo de los procesadores se ha mantenido constante mientras que el número de elementos de proceso no deja de crecer.
Tipos de paralelismo
En general, existen tres tipos de paralelismo:
- Paralelismo a nivel de bit: referido al tamaño de los datos con los que puede trabajar el procesador. Por ejemplo, un procesador con un tamaño de palabra (32 bits), puede efectuar 4 sumas independientes de 1 byte de tamaño al mismo tiempo. En el caso de que el tamaño del procesador fuese de 1 byte, necesitaría efectuar 4 operaciones.
- Paralelismo a nivel de instrucción: las instrucciones de un programa se reordenan y agrupan para ser ejecutadas en paralelo. Los procesadores modernos poseen unas estructuras conocidas como pipelines (tuberías), que permiten segmentar la ejecución de las instrucciones. De este modo, es posible ejecutar diferentes etapas de varias instrucciones al mismo tiempo.
- Paralelismo a nivel de tarea: un problema concreto se puede descomponer en tareas más pequeñas que pueden ser resueltas de manera concurrente por los diferentes elementos de proceso (procesadores, hilos, etc.).
¿Por qué es tan importante la computación paralela?
Por último, la computación paralela es una técnica fundamental en el ámbito de investigación científica, especialmente en el campo de la simulación, donde se llevan a cabo cálculos y operaciones complejas que requieren de una gran capacidad de procesamiento. También tiene aplicaciones en la creación de modelos de todo tipo: matemáticos, estadísticos, climáticos e incluso en imágenes médicas.
Otros ejemplos relevantes serían los sistemas en tiempo real, la inteligencia artificial, el procesamiento de gráficos o los servidores. En estos últimos los procesadores multinúcleo son ideales porque permiten a muchos usuarios conectarse simultáneamente a un mismo servicio (por ejemplo, en el caso de un servidor web).
En Teldat, siempre aprovechamos al máximo las características que nos ofrece el hardware de nuestros equipos con el objetivo de obtener siempre el máximo rendimiento.