Está en la página 1de 4

Máquinas Paralelas basadas en Hardware

José Miguel Avendaño Infante

javenda@gmail.com

Universidad Central de Venezuela


Facultad de Ciencias
Postgrado en Ciencias de la Computación
Fundamentos de Sistemas Paralelos y Distribuidos
la ejecución simultanea y sincronizada de un cierto número
Abstract- Este artículo pretende listar algunas de las de elementos de proceso. Ejemplo son las máquinas
maquinas paralelas basadas en hardware que existen en vectoriales.
la actualidad. 3) Múltiples secuencias de instrucciones y una secuencia
de datos (MISD): cada procesador ejecuta una secuencia de
I. INTRODUCCIÓN instrucciones diferentes.
4) Múltiples secuencias de instrucciones y múltiples
La cantidad de datos que nuestra sociedad genera y secuencias de datos (MIMD): ejecutan procesos distintos
dispone para procesar cada día va creciendo en forma con datos distintos de manera simultanea. Ejemplo de
exponencial. Igualmente surgen problemas de cálculo más procesamiento en clusters.
complejos que resolver. Una manera de dar soluciones a
estos problemas es el uso máquinas paralelas basadas en
hardware. Ya estas máquinas tienen más de 55 años.
Existen problemas que para ser resueltos que
demandan una gran cantidad de cálculos como la
modelación del movimiento de cuerpos en la astronomía,
predicciones climáticas y son estas las maquinas que pueden
dar solución al ejecutar procesos de cálculo de manera
simultanea. Bajo el principio de dividir y conquistar
sabemos que grandes problemas pueden ser resueltos en
bloques más pequeños al mismo tiempo.
Un ordenador paralelo es un conjunto de procesadores
que son capaces de trabajar de forma cooperativa para
resolver un problema computacional. Esta definición es lo imagen 1:organización de computadores según taxonomía de Flynn
suficientemente amplia como para incluir superordenadores
paralelos que tienen cientos o miles de procesadores, redes III. TIPOS DE COMPUTADORAS PARALELAS
de estaciones de trabajo, estaciones de trabajo con múltiples
procesadores y sistemas integrados. Las computadoras 1) Memoria compartida multiprocesador: se tienen
paralelas son interesantes porque ofrecen la posibilidad de multiples procesadores en un computador con multiples
concentrar recursos computacionales, ya sean procesadores, módulos de memoria de manera que cada procesador puede
memoria o ancho de banda de E/S, en problemas accede a cualquier modulo de memoria.
computacionales importantes. 2) Memoria distribuida multicomputador: cuando se tiene
computadores completos, cada uno con su memoria y están
interconectados por una red.

II. TIPOS DE SISTEMAS PARALELOS.:


IV. MAQUINAS ACTUALES
Según la Taxonomía de Flynn se clasifican a los
sistemas según sus capacidades de procesamiento paralelo: A) Procesadores Vectoriales: un procesador vectorial o
procesador de matrices es una unidad central de
procesamiento (CPU) que implementa un conjunto de
1) Una secuencia de instrucciones y una secuencia de instrucciones que contienen instrucciones que operan en
datos (SISD): un único procesador interpreta una única matrices unidimensionales de datos llamadas vectores, en
secuencia de instrucciones. Los computadores comparación con los procesadores escalares, cuyas
monoprocesadores pertenecen a este grupo. instrucciones operan en elementos de datos individuales. Los
2) Una secuencia de instrucciones y múltiples secuencias procesadores vectoriales pueden mejorar enormemente el
de datos (SIMD): una única instrucción controla paso a paso rendimiento en determinadas cargas de trabajo,
especialmente en la simulación numérica y en tareas
similares como la simulación de espacios continuos donde se
realizan de forma repetitiva operaciones aritméticas en coma B) GPGPU
flotante. Las máquinas vectoriales aparecieron a principios La computación de propósito general en las unidades de
de la década de 1970 y dominaron el diseño de procesamiento gráfico (GPGPU) es el uso de una unidad de
supercomputadoras hasta la década de 1970. La rápida caída procesamiento gráfico (GPU), que normalmente se encarga
en la relación precio-rendimiento de los diseños de de la computación sólo para gráficos por ordenador, para
microprocesadores convencionales llevó a la desaparición entonces realizar cálculos en aplicaciones que
del superordenador vectorial a finales de la década de 1990 tradicionalmente se manejan en la unidad central de
no obtante aún existen algunas máquinas vectoriales. procesamiento (CPU). El uso de múltiples tarjetas de vídeo
Estas máquinas llevan aún más lejos la técnica de en un ordenador, o de un gran número de chips gráficos,
“instruction pipelining” ya que en lugar de canalizar sólo las paraleliza aún más la naturaleza ya de por sí paralela del
instrucciones, también canalizan los datos en si mismos. El procesamiento de gráficos. Además, incluso un único marco
procesador recibe instrucciones que dicen no sólo que hay de trabajo de GPU-CPU proporciona ventajas que las
que sumar A a B, sino que hay que sumar todos los números múltiples CPUs por sí solas no ofrecen debido a la
"de aquí a aquí" a todos los números "de allí a allí". En lugar especialización en cada chip.
de tener que decodificar constantemente las instrucciones y
luego obtener los datos necesarios para completarlas, el Esencialmente, un pipeline de GPGPU es una especie de
procesador lee una sola instrucción de la memoria, y procesamiento paralelo entre una o más GPUs y CPUs que
simplemente está implícito en la definición de la instrucción analiza los datos como si estuvieran en imagen u otra forma
misma que la instrucción operará de nuevo en otro elemento gráfica. Aunque las GPU funcionan a frecuencias más bajas,
de datos, en una dirección un incremento mayor que el suelen tener muchas veces más núcleos. Por lo tanto, las
último. Esto permite un ahorro significativo en el tiempo de GPUs pueden procesar muchas más imágenes y datos
decodificación. gráficos por segundo que una CPU tradicional. La migración
de datos a un formato gráfico y el uso de la GPU para
A partir de 2015, la mayoría de las CPUs implementan escanearlos y analizarlos pueden crear una gran aceleración.
arquitecturas que incluyen instrucciones para una forma de
procesamiento vectorial en múltiples conjuntos de datos Los canales de la GPGPU se desarrollaron a principios del
(vectorizados). Algunos ejemplos comunes son las siglo XXI para el procesamiento de gráficos (por ejemplo,
instrucciones MMX, SSE y AVX de Intel x86, las para mejorar los sombreadores). Se descubrió que estas
extensiones 3DNow! de AMD, la extensión VIS de Sparc, pipelines se ajustaban bien a las necesidades de la
AltiVec de PowerPC y MSA de MIPS. Las técnicas de informática científica, y desde entonces se han desarrollado
procesamiento vectorial también funcionan en el hardware en esta dirección. Hoy en encontramos que son de gran
de la consola de videojuegos y en los aceleradores de utilidad en las siguientes aplicaciones:
gráficos. En 2000, IBM, Toshiba y Sony colaboraron para • Transformaciones de fourrier
crear el procesador Cell. • Clusters (agrupaciones) de computadoras o variants
de computadores paralelos que son usadas para
Un ejemplo actual de este tipo de computadoras es el SX- intensivas tareas de cálculo
Aurora TSUBASA de NEC de la familia de arquitecturas • Machine learning.
SX de NEC. A diferencia de los anteriores superordenadores • Logica difusa y muchas otras.
SX, el SX-Aurora TSUBASA se suministra como una tarjeta
PCIe, denominada por NEC como un "Vector Engine". Se Un ejemplo de una GCPU muy poderosa actualmente es
pueden insertar ocho tarjetas VE en un host vectorial (VH) la NVIDIA QUADRO GV 100 con 5120 nucleos CUDA de
que normalmente es un servidor x86-64 que ejecuta el procesamiento paralelo, una memoria GPU de 32 GB y un
sistema operativo Linux. tensor performance de 118,5 tflops.

Imagen 2: maquina vectorial SX Aurora Imagen 3: Nvidia QUADRO GV 100


C) Manycore Processors:
Los procesadores Manycore son procesadores multinúcleo
especializados diseñados para un alto grado de
procesamiento paralelo, que contienen un gran número de
núcleos de procesamiento más simples e independientes
(desde unas pocas decenas de núcleos hasta miles o más).
Los procesadores Manycore se distinguen de los
procesadores multinúcleo por estar optimizados desde el
principio para un mayor grado de paralelismo explícito y
para un mayor rendimiento (o un menor consumo de
energía) a expensas de la latencia y un menor rendimiento de imagen 5: Solaris cluster de Sun Microsystems
un solo hilo. Los procesadores Manycore se utilizan
ampliamente en ordenadores embebidos y en ordenadores de
alto rendimiento. A partir de noviembre de 2018, el tercer
superordenador más rápido del mundo (según la lista
TOP500), es el chino Sunway TaihuLight, que obtiene su
rendimiento de 40.960 procesadores manycore SW26010,
cada uno con 256 núcleos.

imagen 6: cluster de varias computadoras

D) Procesadores multinúcleo:
Un procesador multinúcleo es aquel que combina dos o
más microprocesadores independientes en un solo paquete, a
menudo un solo circuito integrado. Un dispositivo de doble
imagen 4: supercomputadora Sunway TaihuLight núcleo contiene solamente dos microprocesadores
independientes. En general, los microprocesadores
multinúcleo permiten que un dispositivo computacional
exhiba una cierta forma del paralelismo a nivel de thread
C) Cluster de ordenadores: (thread-level parallelism) (TLP) sin incluir múltiples
Un clúster de ordenadores es un conjunto de ordenadores microprocesadores en paquetes físicos separados. Esta forma
conectados entre sí de forma flexible o estrecha que trabajan de TLP se conoce a menudo como multiprocesamiento a
juntos, de modo que, en muchos aspectos, pueden nivel de chip (chip-level multiprocessing) o CMP.
considerarse como un único sistema. A diferencia de las La gran mayoría de las computadoras personales
computadoras de red, los clusters de computadoras tienen actualmente cuentan con un procesador de este tipo.
cada nodo configurado para realizar la misma tarea,
controlada y programada por software.
SUPERCOMPUTADORES QUE USAN MAQUINAS
Los componentes de un clúster suelen estar conectados PARALELAS
entre sí a través de redes de área local rápidas, y cada nodo • Xeon Phi es una serie de procesadores x86
(ordenador utilizado como servidor) ejecuta su propia manycore diseñados y fabricados por Intel. Está
instancia de un sistema operativo. En la mayoría de los diseñado para su uso en supercomputadoras,
casos, todos los nodos utilizan el mismo hardware y el servidores y estaciones de trabajo de gama alta. Su
mismo sistema operativo, aunque en algunas arquitectura permite el uso de lenguajes de
configuraciones (por ejemplo, utilizando recursos de programación estándar y APIs como OpenMP.
aplicaciones de clúster de código abierto (OSCAR)), se
pueden utilizar diferentes sistemas operativos en cada
• El Summit u OLCF-4 es
ordenador, o bien hardware diferente.
un superordenador desarrollado por IBM para su
uso en el OAK Ridge National Laboratory de
El Solaris Cluster de Sun Microsystems es un ejemplo.
Estados Unidos, que desde el 8 de junio de 2018 es
el superordenador más potente del mundo. Su
velocidad se sitúa en los 200 petaflops. Cada nodo
tiene más de 600GB de memoria coherente (gran
ancho de banda + DDR4 SDRAM) direccionable
por todas las CPUs y GPUs más 800GB de RAM
no volátil, que puede ser utilizada como búfer o [5] https://en.wikipedia.org/wiki/Parallel_computing
[6] https://en.wikipedia.org/wiki/NEC_SX-Aurora_TSUBASA
memoria extendida.7 Las CPUs Power9 y Volta
[7] https://en.wikipedia.org/wiki/Vector_processor
GPUs están conectadas mediante el protocolo de [8] https://www.nvidia.com/en-us/design-visualization/quadro-store/
alta velocidad NVLink de NVIDIA. Esto permite [9] https://en.wikipedia.org/wiki/Manycore_processor
un modelo de Computación Heterogénea [10] https://en.wikipedia.org/wiki/Xeon_Phi
[11] https://en.wikipedia.org/wiki/Computer_cluster
[12] https://es.wikipedia.org/wiki/Procesador_multin%C3%BAcleo
[13] https://es.wikipedia.org/wiki/Summit_(superordenador)

imagen 6: Supercomuputadora SUMMIT

COMPUTADORAS PERSONALES QUE USAN


MAQUINAS PARALELAS

Neural Compute Stick


El Intel Movidius Neural Compute Stick (NCS) es un
pequeño dispositivo de aprendizaje profundo sin ventilador
que puede utilizar para aprender programación de IA en el
borde. NCS funciona con la misma unidad de procesamiento
Intel Movidius Vision Processing Unit (VPU) de bajo
consumo y alto rendimiento que se puede encontrar en
millones de cámaras de seguridad inteligentes, aviones
teledirigidos por gestos, equipos de visión industrial y
mucho más. Los frameworks soportados son Tensorflow y
Caffe (software)

imagen 8: Neural Computer Stick

BIBLIOGRAFÍA

[1] Stallings William (2005). Organización y Arquitectura de


Computadores. Pearson
[2] Dobre Ciprian (2014) Parallel Programming Paradigms and
Frameworks in Big Data Era. Artículo en International Journal of
Parallel Programming.
[3] http://www.cs.csi.cuny.edu/~gu/teaching/courses/csc429/slides/slides1
.pdf
[4] https://www.mcs.anl.gov/~itf/dbpp/text/node6.html

También podría gustarte