Está en la página 1de 10

Introducción a

los Sistemas
Paralelos

Algoritmos
Concurrentes y
Paralelos

1
1. Introducción
Tradicionalmente, para resolver un problema el software se planteaba
dividiéndolo en una serie discreta de instrucciones que se ejecutaban
secuencialmente, en un solo procesador y donde solo se podía ejecutar una
instrucción en cada momento.

Figura 1: Procesamiento en serie

Una computadora
paralela está formada
por un conjunto de
procesadores que
pueden trabajar de
manera cooperativa en
la resolución de
problemas Fuente: elaboración propia.
computacionales que
requieren elevado
tiempo de cómputo. En la programación paralela se hace uso simultáneo de múltiples elementos
Esta definición es lo de procesamiento para resolver un problema a través de un software, es
suficientemente decir que para resolver un problema se divide en partes discretas e
amplia como para independientes, pero que pueden resolverse en forma simultánea. Cada
incluir
parte se resuelve mediante una serie de instrucciones que se ejecutan en
supercomputadoras
con múltiples forma simultánea al resto en procesadores diferentes y empleando un
procesadores, redes mecanismo general de control y coordinación. Las variantes de una
de estaciones de computadora con múltiples procesadores, varios ordenadores en red,
trabajo, estaciones de hardware especializado o cualquier combinación de los ejemplos anteriores
trabajo con múltiples
son algunas de las presentaciones de los recursos usados para el
procesadores y
sistemas integrados. procesamiento de estas partes en simultáneo.
Las computadoras
paralelas son
interesantes porque
Desde mediados de los 80 hasta el 2004, las mejoras en el rendimiento de
ofrecen la posibilidad las computadoras se basaron en el aumento de la frecuencia de reloj. Este
de concentrar los aumento de frecuencia de reloj, manteniendo todo lo demás constante,
recursos reduce a su vez el tiempo medio en que se ejecuta una instrucción y, en
computacionales, ya consecuencia, se reduce el tiempo de ejecución de los programas. El tiempo
sean procesadores,
memoria o ancho de
de ejecución de un programa se obtiene como producto entre el tiempo
banda, sobre todo en promedio por instrucción y el número de instrucciones que tiene el
problemas programa.
computacionales
importantes.

2
Ahora bien, el aumento de la frecuencia del procesador trae como
consecuencia el aumento de la cantidad de energía necesaria para el
procesador. El fin del paradigma dominante en la arquitectura de las
computadoras fue la cancelación en 2004 de los proyectos de Intel
conocidos como procesadores Tejas y Jayhawk, por considerar inviable la
cantidad de energía que utilizaban estos procesadores.

Se conoce como ley de Moore a la observación empírica que plantea que


cada dos años se duplica la densidad de transistores en un microprocesador.
A pesar de los problemas de consumo de energía, la ley de Moore sigue
vigente. Ya sin el foco en el aumento de la frecuencia, estos transistores
adicionales, que ya no se usan para el aumento de la frecuencia, se utilizan
para añadir un hardware adicional que permita la computación paralela.

Figura 2: Procesamiento en paralelo

Fuente: elaboración propia.

El problema computacional debería ser capaz de dividir en piezas de trabajo


discretas que se puedan resolver en forma simultánea y ejecutar diversas
instrucciones de programa en cualquier momento para derivar en una
resolución en menos tiempo, con múltiples recursos informáticos y no solo
con un recurso informático.

El procesamiento paralelo puede hacerse con una sola computadora, con


múltiples procesadores, o núcleos, o con un número arbitrario de dichas
computadoras conectadas por una red.

En la actualidad, prácticamente todas las computadoras son paralelas desde


una perspectiva de hardware. Poseen múltiples unidades funcionales (caché

3
L1, caché L2, rama, captación previa, decodificación, punto flotante,
procesamiento de gráficos [GPU], entero, etc.), múltiples unidades o núcleos
de ejecución, múltiples hilos de hardware, etcétera.

Figura 3: CPU de arquitectura paralela IBM BG/Q Compute Chip con 18


núcleos (PU) y 16 unidades de caché L2 (L2)

Fuente: IBM Corporation, 2011, https://goo.gl/yi9Nqx

Las redes conectan varias computadoras independientes (nodos) para hacer


grupos de computadoras paralelas más grandes.

4
Figura 4: Cluster de computadoras

Fuente: elaboración propia.

Por ejemplo, la Figura 4 muestra un clúster de computadora paralelo LLNL


típico. Aquí cada nodo de cálculo es una computadora paralela
multiprocesador en sí mismo y varios nodos de cómputo están conectados
en red junto con una red InfiniBand (red de alta velocidad). Por su parte, los
nodos de propósito especial son también multiprocesadores y se usan para
otros propósitos.

La mayoría de las grandes computadoras paralelas (supercomputadoras) del


mundo son grupos de hardware producidos por un puñado de vendedores
conocidos (en su mayoría).

5
2. Razones de la computación
paralela
El mundo real es paralelo, muchos eventos complejos e interrelacionados
están sucediendo al mismo tiempo, pero dentro de una secuencia temporal.
En comparación con la computación en serie, la computación en paralelo es
mucho más adecuada para modelar, simular y comprender fenómenos
complejos del mundo real.

Por ejemplo, ¿te imaginas modelando en serie estos sistemas complejos de


la Figura 5?

Figura 5: Sistemas complejos

Fuente: elaboración propia.

Dedicar más recursos a una tarea acortará su tiempo hasta su finalización,


con posibles ahorros de costos. Las computadoras paralelas se pueden
construir a partir de componentes baratos y básicos.

Muchos problemas son tan grandes o complejos que no es práctico y es


imposible resolverlos en una sola computadora, especialmente dada su
limitada memoria. Un ejemplo claro es el de los problemas de gran desafío1,
los cuales requieren PetaFLOPS y PetaBytes de recursos informáticos. Otro

1
Ver más en https://en.wikipedia.org/wiki/Grand_Challenges

6
ejemplo es el de los buscadores web o las bases de datos que procesan
millones de transacciones cada segundo.

El paralelismo nos permite usar recursos informáticos en una red de área


amplia (red WAN), o incluso Internet cuando los recursos informáticos
locales son escasos o insuficientes. Presentamos dos ejemplos a
continuación, cada uno de los cuales tiene más de 1 millón y medio de
contribuyentes a nivel mundial (mayo de 2018):

 SETI@home (setiathome.berkeley.edu): SETI es un experimento


científico, desarrollado en la universidad de California en Berkeley,
que usa computadoras conectadas a Internet para la búsqueda de
inteligencia extraterrestre (SETI). Se puede participar ejecutando un
programa gratuito que descarga y analiza los datos del
radiotelescopio.

 Folding@home (fold.stanford.edu): Folding es un proyecto centrado


en la investigación de enfermedades. Los problemas que resuelve
requieren muchos cálculos computarizados y, de la misma forma que
en el proyecto anterior, también se pueden donar recursos de
computadoras personales.

Las computadoras modernas, incluso las computadoras portátiles, tienen


una arquitectura paralela con múltiples procesadores o núcleos. El software
paralelo está específicamente diseñado para hardware paralelo con
múltiples núcleos, hilos, etcétera. En la mayoría de los casos, los programas
en serie que se ejecutan en computadoras modernas desperdician la
potencia de la computación potencial.

Durante los últimos 20 años o más, las tendencias en redes cada vez más
rápidas, los sistemas distribuidos y las arquitecturas de computadora
multiprocesador (incluso a nivel de escritorio) muestran claramente que el
paralelismo es el futuro de la computación.

En el mismo período de tiempo, ha habido un aumento de más de 500 000


veces en el rendimiento de la supercomputadora, sin un final actualmente a
la vista.

7
3. Aplicaciones de la
computación paralela
Históricamente, la computación paralela ha sido considerada como el
extremo superior de la computación y se la ha utilizado para modelar
problemas difíciles en muchas áreas de la ciencia y la ingeniería, tales como:

 atmósfera, tierra, medio ambiente;


 física (aplicada, nuclear, partículas, materia condensada, alta
presión, fusión, fotónica);
 biociencia, biotecnología, genética;
 química, ciencias moleculares;
 geología, sismología;
 ingeniería mecánica (desde prótesis hasta naves espaciales);
 ingeniería eléctrica, diseño de circuitos, microelectrónica;
 ciencias de la computación, matemáticas, etcétera.

Figura 6: Aplicaciones de la computación paralela

Fuente: [Imagen sin título sobre aplicaciones de la computación paralela]. (s. f.). Recuperada de
https://goo.gl/Ga8KZb

8
La computación paralela se está utilizando en todo el mundo, en una amplia
variedad de aplicaciones. Las aplicaciones comerciales proporcionan una
fuerza motriz en el desarrollo de computadoras más rápidas. Estas
aplicaciones requieren el procesamiento de grandes cantidades de datos de
manera sofisticada:

 big data, bases de datos, minería de datos;


 inteligencia artificial (IA);
 buscadores web y servicios empresariales basados en web;
 imagen médica y diagnóstico;
 diseño farmacéutico;
 modelización financiera y económica;
 gestión de empresas nacionales y multinacionales;
 gráficos avanzados y realidad virtual, particularmente en la industria
del entretenimiento;
 video en red, tecnologías multimedia, etcétera.

9
Referencias
[Imagen sin título sobre aplicaciones de la computación paralela]. (s. f.).
Recuperada de
https://computing.llnl.gov/tutorials/parallel_comp/images/simulations01.j
pg

International Business Machines (IBM) Corporation. (2011). Blue Gene®/Q


Overview and Update. Recuperado de
www.alcf.anl.gov/files/IBM_BGQ_Architecture_0.pdf

10

También podría gustarte