¿Qué es la computación paralela?

Grupo de empresarios trabajando, el equipo está sentado en una mesa de sala de juntas mirando un ordenador portátil

¿Qué es la computación paralela?

La computación paralela, también conocida como programación paralela, es un proceso en el que grandes problemas informáticos se dividen en problemas más pequeños que pueden ser resueltos simultáneamente por varios procesadores.

Los procesadores se comunican mediante memoria compartida y sus soluciones se combinan mediante un algoritmo. La computación paralela es significativamente más rápida que la computación en serie , su predecesora que utiliza un único procesador para resolver problemas en secuencia.

Cuando se inventaron los ordenadores a finales de la década de 1940 y en la de 1950, el software se programaba para resolver los problemas en secuencia, lo que restringía la velocidad de procesamiento. Para resolver problemas más rápido, los algoritmos tenían que crearse e implementarse siguiendo un conjunto de instrucciones en una unidad central de procesamiento (CPU). Solo después de ejecutar una instrucción se podía resolver otra.

A partir de la década de 1950, la computación paralela permitió a los ordenadores ejecutar código de forma más rápida y eficiente al dividir los problemas informáticos en problemas más pequeños y similares. Estos problemas, conocidos como algoritmos paralelos, se distribuyeron entre varios procesadores.

Hoy en día, los sistemas paralelos han evolucionado hasta el punto de utilizarse en varios ordenadores, lo que hace que las tareas cotidianas, como consultar el correo electrónico o enviar un mensaje de texto, sean cientos de veces más rápidas que si se realizaran mediante computación en serie. Además de alimentar dispositivos personales como ordenadores portátiles y smartphones, los sistemas paralelos también alimentan los superordenadores más avanzados y las tecnologías punta como la inteligencia artificial (IA) y el Internet de las cosas (IoT).

Computación en serie versus computación paralela

La computación en serie, también conocida como computación secuencial, es un tipo de computación en el que las instrucciones para resolver problemas de computación se siguen una a la vez o secuencialmente. Los fundamentos de la computación en serie requieren que los sistemas utilicen un solo procesador en lugar de distribuir los problemas entre varios procesadores.

A medida que la informática evolucionó, se introdujo la computación paralela porque la computación en serie tenía velocidades lentas. Los sistemas operativos que utilizan programación paralela permiten a los ordenadores ejecutar procesos y realizar cálculos simultáneamente, una técnica conocida como procesamiento paralelo.

Procesamiento paralelo versus computación paralela

El procesamiento paralelo y la computación paralela son términos muy similares, pero vale la pena señalar algunas diferencias. El procesamiento paralelo, o paralelismo, separa una tarea en tiempo de ejecución en partes más pequeñas que se realizan de forma independiente y simultánea utilizando más de un procesador. Normalmente se requiere una red informática o un ordenador con más de un procesador para volver a ensamblar los datos una vez que las ecuaciones se han resuelto en varios procesadores.

Aunque el procesamiento paralelo y la computación paralela a veces se utilizan indistintamente, el procesamiento paralelo se refiere al número de núcleos y CPU que se ejecutan junto a un ordenador, mientras que la computación paralela se refiere a lo que hace el software para facilitar el proceso.

Las últimas novedades sobre tecnología, respaldadas por conocimientos de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Se ha suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

¿Por qué es importante la computación paralela?

La velocidad y la eficiencia de la computación paralela impulsan algunos de los avances tecnológicos más importantes del último medio siglo, incluidos los smartphones, la computación de alto rendimiento (HPC), la IA y el machine learning (ML). Al permitir que los ordenadores resuelvan problemas más complejos más rápido y con menos recursos, la computación paralela también es un controlador crucial de la transformación digital para muchas empresas.

Historia y desarrollo

El interés por la computación paralela comenzó cuando los programadores y fabricantes de ordenadores empezaron a buscar formas de crear procesadores más eficientes energéticamente. En las décadas de 1950, 1960 y 1970, los líderes de la ciencia y la ingeniería construyeron ordenadores que utilizaban espacio de memoria compartido y ejecutaban operaciones paralelas en conjuntos de datos por primera vez.

Estos esfuerzos culminaron en el innovador proyecto Caltech Concurrent Computation, que introdujo un nuevo tipo de computación paralela en la década de 1980 utilizando 64 procesadores Intel.

En la década de 1990, el superordenador ASCI Red, que utilizaba procesadores masivamente paralelos (MPP), logró un billón de operaciones por segundo sin precedentes, marcando el comienzo de una era de dominio MPP en la potencia informática1. Al mismo tiempo, se introdujeron en el mercado los clústeres, un tipo de computación paralela que vincula clústeres de ordenadores o "nodos" en una red comercial, que acabaron sustituyendo a los MPP para muchas aplicaciones. 

La computación paralela, en particular, los procesadores multinúcleo y las unidades de procesamiento gráfico (GPU), sigue siendo una parte crítica de la informática actual. Las GPU suelen implementarse simultáneamente con las CPU para ampliar el rendimiento de los datos y ejecutar más cálculos a la vez, lo que acelera muchas aplicaciones empresariales modernas.

Computación de alto rendimiento

4ª generación de procesadores Intel Xeon Scalable en IBM Cloud

Conozca el compromiso de Intel e IBM con la próxima generación de microarquitectura para el sector de la nube.

Beneficios empresariales de la computación paralela

1. Reducción de costes

Antes de la computación paralela, la computación en serie obligaba a los procesadores individuales a resolver problemas complejos paso a paso, añadiendo minutos y horas a tareas que la computación paralela podía realizar en unos segundos. Por ejemplo, los primeros iPhones utilizaban computación en serie y podían tardar un minuto en abrir una aplicación o un correo electrónico. Hoy en día, la computación paralela, utilizada por primera vez en iPhones en 2011, acelera significativamente esas tareas.

2. Resolución de problemas complejos

A medida que la informática madura y aborda problemas más complejos, los sistemas necesitan realizar miles, incluso millones, de tareas en un instante. Los modelos de ML actuales dependen en gran medida de la computación paralela, utilizando algoritmos muy complejos implementados en varios procesadores. Con la computación en serie, las tareas de ML tardarían mucho más debido a los cuellos de botella causados por solo poder realizar un cálculo a la vez en un único procesador.

3. Análisis más rápidos

La computación paralela y el procesamiento paralelo potencian el cálculo numérico en grandes conjuntos de datos, lo que permite las consultas interactivas detrás del análisis de datos. Con más de un quintillón de bytes de información generados cada día, las empresas pueden tener dificultades para filtrar la información digital en busca de conocimientos que sean útiles. El procesamiento paralelo implementa ordenadores con muchos núcleos en una estructura de datos y tamiza los datos mucho más rápido de lo que podría hacerlo un ordenador en serie.

4. Aumento de la eficiencia

Armados con computación paralela, los ordenadores pueden utilizar los recursos de forma mucho más eficiente que sus homólogos de computación en serie. Los sistemas informáticos más avanzados de hoy en día implementan múltiples núcleos y procesadores, lo que les permite ejecutar varios programas a la vez y realizar más tareas simultáneamente.

¿Cómo funciona la computación paralela?

La computación paralela se refiere a muchos tipos de dispositivos y arquitecturas informáticas, desde superordenadores hasta el smartphone de bolsillo. En su forma más compleja, la computación paralela utiliza cientos de miles de núcleos para abordar problemas como encontrar un nuevo medicamento contra el cáncer o ayudar en la búsqueda de inteligencia extraterrestre (SETI). En su forma más sencilla, la computación paralela le ayuda a enviar un correo electrónico desde su teléfono más rápido que si utilizara un sistema informático en serie. 

En términos generales, se utilizan tres arquitecturas únicas en la computación paralela: memoria compartida, memoria de computación distribuida y memoria híbrida. Cada arquitectura opera en su propia interfaz de paso de mensajes (MPI), un estándar para todas las arquitecturas de computación paralela. MPI describe protocolos para programas de paso de mensajes en lenguajes de programación como C++ y Fortran. La MPI de código abierto ha sido clave para el desarrollo de nuevas aplicaciones y software que se basan en capacidades de computación paralela.

Diferentes arquitecturas de computación paralela

Memoria compartida

La arquitectura de memoria compartida se utiliza en aplicaciones comunes y cotidianas de computación paralela, como ordenadores portátiles o smartphones. En una arquitectura de memoria compartida, los ordenadores paralelos dependen de varios procesadores para ponerse en contacto con el mismo recurso de memoria compartida.

Memoria distribuida

La memoria distribuida se utiliza en arquitecturas de cloud computing, por lo que es común en muchas aplicaciones empresariales. En un sistema distribuido para computación paralela, varios procesadores con sus propios recursos de memoria están vinculados a través de una red.

Memoria híbrida

Los superordenadores actuales se basan en arquitecturas de memoria híbrida, un sistema de computación paralela que combina ordenadores de memoria compartida en redes de memoria distribuida. Las CPU conectadas en un entorno de memoria híbrida pueden acceder a la memoria compartida y a las tareas asignadas a otras unidades en la misma red.

Arquitecturas especializadas

Además de las tres arquitecturas principales, otras arquitecturas informáticas paralelas menos comunes están
diseñadas para abordar problemas más grandes o tareas altamente especializadas. Entre ellos se incluyen los procesadores vectoriales (para matrices de datos denominadas “vectores”) y los procesadores para computación de propósito general en unidades de procesamiento gráfico (GPGCU). Uno de ellos, CUDA, una interfaz de programación de aplicaciones (API) patentada de GPGCU desarrollada por Nvidia, es crítico para el deep learning (DL), la Tecnología que sustenta la mayoría de las aplicaciones de IA.

Tipos de computación paralela

Hay cuatro tipos de computación paralela, cada uno con sus propios propósitos específicos:

1. Paralelismo a nivel de bits

El paralelismo a nivel de bits se basa en una técnica en la que se aumenta el tamaño de palabra del procesador y se reduce el número de instrucciones que el procesador debe ejecutar para resolver un problema. Hasta 1986, la arquitectura informática avanzó aumentando el paralelismo a nivel de bits de los procesadores de 4 bits a los de 8, 16, 32 y 64 bits, y cada generación superaba a la anterior. Quizás el ejemplo más famoso de un avance en el paralelismo de bits fue la Nintendo 64, la primera vez que una aplicación convencional utilizó 64 bits.

2. Paralelismo a nivel de instrucción

El paralelismo a nivel de instrucciones (ILP) es un tipo de computación paralela en el que el procesador elige qué instrucciones ejecutará. En ILP, los procesadores están diseñados para realizar ciertas operaciones simultáneamente para mejorar la optimización de recursos y aumentar el rendimiento.

3. Paralelismo de tareas

El paralelismo de tareas es un tipo de computación paralela que paraleliza el código en varios procesadores que ejecutan simultáneamente tareas en los mismos datos. El paralelismo de tareas se utiliza para reducir el tiempo de serie ejecutando tareas simultáneamente; en el pipelining, por ejemplo, donde se realiza una serie de tareas en un único conjunto de datos.

4. Paralelismo a nivel de superpalabra

Más avanzado que el ILP, el paralelismo a nivel de superpalabras (SLP) es una táctica de vectorización que se utiliza en el código en línea. La vectorización es un proceso de computación paralela que se utiliza para completar varias tareas similares a la vez, ahorrando tiempo y recursos. El SLP se utiliza para identificar instrucciones escalares que son redundantes en un bloque de código y combinarlas en una sola operación de superpalabra.

Casos de uso de computación paralela

Desde blockchains hasta smartphones, videoconsolas y chatbots, la computación paralela es una parte esencial de muchas de las tecnologías que impulsan nuestro mundo. Estos son algunos ejemplos:

Smartphones

Muchos smartphones dependen del procesamiento paralelo para realizar sus tareas de forma más rápida y eficiente. Por ejemplo, el iPhone 14 tiene una CPU de 6 núcleos y una GPU que potencian su capacidad líder en el mercado para ejecutar 17 billones de tareas por segundo, un nivel de rendimiento impensable utilizando la computación en serie.

Blockchains

La tecnología blockchain, la tecnología que sustenta las criptomonedas, las máquinas de votación, la sanidad y muchas otras aplicaciones avanzadas de la tecnología digital, se basa en la computación paralela para conectar varios ordenadores para validar transacciones y entradas. La computación paralela permite que las transacciones en una blockchain se procesen simultáneamente en lugar de una a la vez, lo que aumenta el rendimiento y lo hace altamente escalable y eficiente.

Ordenadores portátiles

Los ordenadores portátiles más potentes de hoy en día (MacBooks, ChromeBooks y ThinkPads) utilizan chips con múltiples núcleos de procesamiento, una base del paralelismo. Algunos ejemplos de procesadores multinúcleo son el Intel Core i5 y el HP Z8, que permiten a los usuarios editar vídeo en tiempo real, ejecutar gráficos 3D y realizar otras tareas complejas que requieren muchos recursos.

Internet de las cosas

El Internet de las cosas (IoT) se basa en datos recopilados por sensores conectados a internet. Una vez recopilados los datos, se requiere computación paralela para analizarlos en busca de conocimiento y ayudar a sistemas complejos, como centrales eléctricas, presas y sistemas de tráfico, a funcionar. La computación en serie tradicional no puede filtrar los datos lo suficientemente rápido como para que IoT funcione, lo que hace que la computación paralela sea crucial para el avance de la tecnología IoT.

Inteligencia artificial y machine learning

La computación paralela desempeña un papel crítico en el entrenamiento de modelos de ML para aplicaciones de IA, como el reconocimiento facial y el procesamiento del lenguaje natural (NLP). Al realizar operaciones simultáneamente, la computación paralela reduce significativamente el tiempo que se tarda en entrenar modelos de ML con precisión en los datos.

El transbordador espacial

El ordenador que dirige el transbordador espacial se basa en cinco ordenadores IBM® AP-101 que funcionan en paralelo para controlar su aviónica y monitorizar los datos en tiempo real. Estas potentes máquinas, que también se utilizan en aviones de combate, pueden ejecutar casi 500 000 instrucciones por segundo.

Superordenadores

Los superordenadores dependen tanto de la computación paralela que a menudo se denominan ordenadores paralelos. El superordenador American Summit, por ejemplo, procesa 200 cuatrillones de operaciones por segundo para ayudar a los humanos a comprender mejor la física y el entorno natural2.

Soluciones relacionadas
IBM Spectrum LSF Suites 

La suite IBM Spectrum LSF es una plataforma de gestión de carga y programación de trabajos para computación distribuida de alto rendimiento (HPC).

Explore las suites de Spectrum LSF
Soluciones de almacenamiento y servidores de computación de alto rendimiento (HPC) | IBM

Las soluciones de HPC de nube híbrida de IBM ayudan a abordar desafíos de gran escala y de uso intensivo de recursos informáticos y aceleran el tiempo de conocimiento.

Explore las soluciones HPC
Soluciones de infraestructura en la nube

Encuentre la solución de infraestructura en la nube adecuada para las necesidades de su empresa y escale los recursos según la demanda.

Soluciones en la nube
Dé el siguiente paso

Potencie sus cargas de trabajo de IA y computación intensivas más exigentes con las soluciones HPC de IBM. Aproveche la flexibilidad de la nube híbrida y la infraestructura de vanguardia para acelerar su camino hacia la innovación.

Explore las soluciones HPC