Publicado el 1 de Marzo del 2017
1.192 visualizaciones desde el 1 de Marzo del 2017
609,2 KB
23 paginas
Creado hace 19a (05/08/2005)
Hardware y software de tres supercomputadoras Pagina 1
Hardware y Software
de tres Supercomputadoras
Matías Zabaljáuregui
Hardware y software de tres supercomputadoras Pagina 2
0. Introducción
El presente informe intenta describir, con cierto nivel de detalle, a tres de las supercomputadoras
más potentes del mundo. Se seleccionaron de entre las primeras cinco posiciones del ranking que el sitio
web www.top500.org publicó en noviembre del 2004 (ya existe un nuevo ranking, pero las máquinas
elegidas siguen estando entre las primeras 5).
También se tuvo en cuenta, tal vez como factor excluyente, el sistema operativo que estas máquinas
ejecutan. Para este informe, se decidió investigar el soporte que ofrecen los sistemas operativos y
aplicaciones de código abierto/software libre, en particular, la versión 2.6 del kernel del sistema operativo
gnu/linux, el cual incluye una serie de mejoras importantes relacionadas con la escalabilidad y está siendo
utilizado por el 60 % de las supercomputadoras presentes en la lista de www.top500.org.
Dado que la descripción en detalle de todos los componentes de una máquina de este tipo puede
llegar a tener una longitud considerable, se decidió hacer incapié en lo que se supone influye en mayor
medida tanto al diseñador del sistema operativo, como al programador en cuanto al paradigma de
parogramación a elegir: tipo y cantidad de procesadores, tipo y distribución de la memoria principal, y por
último, tecnologías de interconexión. Por lo tanto, se ignoraron temas que, si bien son interesantes, no son
relevantes para el presente estudio: consumo eléctrico, ventilación, infraestructura de almacenamiento en
línea o fuera de línea, etc.
La descripción del hardware se completó con la mencion del sistema operativo y librerías que cada
máquina utiliza. Y se intentó una conclusión de cuales son los modelos de programación paralela que mejor
se adaptan a cada una de las arquitecturas mencionadas. En la segunda parte del informe, se intentará
hacer una descripción de las modificaciones de diseño e implementación que se realizaron al kernel linux 2.6
para soportar las característica específicas de estas supercomputadoras.
La descripción para cada máquina intenta una cierta estructura común. Para comenzar se
mencionan las características generales, y se listan sus componentes principales. Luego se estudian en
detalle los microprocesadores, memoria y tecnologías de red. Finalmente se hace mención de los temas
relacionados con el software que corre en la máquina.
El objetivo principal del informe es mostrar cuales son las tecnologías con las que se implementan
las máquinas con mayor poder de cómputo del mundo, tanto en la capa de hardware como en la de
software. Se intentó que los ejemplos correspondieran a distintos modelos teóricos de máquina paralela
(SMP, ccNUMA, etc) y que tuvieran distintos modelos de programación (memoria compartida, pasaje de
mensajes, etc). Sin embargo es evidente la tendencia hacia algún tipo de cluster como arquitectura y alguna
variante de pasaje de mensajes como modelo de programación en la evolución de sistemas paralelos, por lo
que las tres máquinas descriptas a continuación tienen muchas características en común, aunque no dejan
de ser interesantes los detalles de implementación que diferencia a una de otras. Por lo tanto, en lugar de
hacer extensa la lista de máquinas estudiadas (lo cual no agregaba diversidad al informe en términos de
modelos teóricos) se prefirió sumar detalles a las descripciones.
Hardware y software de tres supercomputadoras Pagina 3
1. BlueGene/L
Descripción General
Blue Gene es un proyecto de investigación de arquitectura de computadoras diseñado para producir varias
supercomputadoras de última generación operando en el rango de los PFLOPS [1]. Es un proyecto
coperativo entre el departamento de defensa de los Estados Unidos, IBM y la academia. Hay cinco
proyectos Blue Gene en desarrollo, entre ellos Blue Gene/L (tambien conocida como BG/L), Blue Gene/C,
and Blue Gene/P, pero hasta ahora sólo el primero llegó a implementarse.
[1] Repasando las equivalencias: megaFLOPS (MFLOPS, 106 FLOPS), gigaFLOPS (GFLOPS, 109 FLOPS), teraFLOPS (TFLOPS, 1012
FLOPS), petaFLOPS (PFLOPS, 1015 FLOPS).
El sistema se construye a partir de un gran número de nodos, cada uno con una velocidad de reloj moderada
(700 MHz) y bajo consumo eléctrico. Es un sistema escalable en el cual el máximo número de nodos
asignados a una única tarea paralela es de 65.536 y cada nodo es un único ASIC (Application Specific
Integrated Circuit o Circuito Integrado de Aplicación Específica) basado en la tecnología systemonachip
(SoC) de IBM que integra procesadores, memoria local (hasta 2 GB) y lógica de comunicación en un mismo
chip.
El diseño de ensamblado de puede verse en en la siguiente figura.
Como se puede observar, una plaqueta de cómputo contiene 2 nodos. Luego se ubican 16 plaquetas de
cómputo en una "placa de nodo" y 1024 de estas placas en un gabinete. Por último, 64 gabinetes dan el total
de 65.536 nodos de cómputo, es decir, 131.072 CPUs.
Además el sistema puede tener un número variable de nodos de entrada/salida (en este momento se
dispone de un nodo E/S por cada 64 nodos de cómputo lo que da un total de 1024 nodos E/S), que se
construyen con el mismo ASIC que los nodos de cómputo y tienen más memoria y conexiones gigabit
Ethernet. Para compilar y analizar los resultados se requiere una computadora 'host'. Los nodos E/S
manejan la comunicación entre los nodos de cómputo y otros sistemas, incluyendo la máquina host y los
servidores de archivo.
Hardware y software de tres supercomputadoras Pagina 4
Procesadores
El ASIC incluye dos núcleos de procesamiento PowerPC 440 de 32 bits, cada uno con dos
FPUs (FloatingPoint Units) de 64 bits. Cada núcleo tiene una cache de instrucciones y una cache de datos
L1 de 32 KB cada una, una cache L2 de 2KB y una cache compartida de 4MB.
A una velocidad de reloj de 700MHz, la máxima performance teórica de un nodo es 2.8 Gflops usando sólo
un núcleo y 5.6 Gflops cuando se usan ambos núcleos y las 4 FPUs. Esto le da al sistema entero una
performance teórica de 180/360 TFLOPS.
El ASIC incluye dos núcleos de procesamiento PowerPC 440 de 32 bits, cada uno con un núcleo PowerPC
440 FP2 el cual es una unidad "doble" de punto flotante de 64 bits.
El 440 es un microprocesador superescalar estándar de 32 bits que suele ser usado en aplicaciones
embebidas. Cada núcleo tiene una cache de instrucciones y una cache de datos L1 de 32 KB cada una,
una cache L2 de 2KB y una cache compartida de 4MB.
Como no implementa el hardware necesario para proveer soporte SMP, los dos núcleos no son coherentes a
nivel de cache L1 por lo que se utiliza un lock para permitir comunicación coherente entre procesadores.
En el modo de operación normal, un par CPU/FPU se usa para realizar computaciones mientras que el otro
par es usado para el envio y recepción de mensajes.Sin embargo, no existen impedimentos de hardware
para utilizar el segundo par CPU/FPU en algoritmos que tengan una baja relación entre
computación/comunicación.
La unidad FP2 consiste en dos subunidades, una primaria y una secundaria, y cada una es escencialmente
una unidad completa de punto flotante de 64 bits. Un conjunto ampliado de instrucciones incluye
capacidades que superan a las arquitecturas tradicionales SIMD ya que una única instrucción puede iniciar
operaciones, diferentes pero relacionadas, sobre datos distintos en cada una de las subunidades. A estas
instrucciones se las denominan SIMOMD (por Single Instruction Multiple Operation Multiple Data).
Otra ventaja sobre las arquitecturas SIMD estandar es la habilidad de cada una de las subunidades de
acceder a datos residentes en registros de la otra subunidad, lo cual logra notables mejoras de
performance, especialmente en el tratamiento de números complejos. Además un camino de datos de 128
Hardware y software de tres supercomputadoras Pagina 5
bits entre la cache de datos de la CPU y la FPU permite la transmisión simultánea de dos elementos de
datos en un ciclo de reloj.
Red de Interconexión
Los nodos se interconectan a través de cinco redes:
● una red torus 3D para pasaje de mensajes punto a punto y multicast (a una 'clase' seleccionada de
nodos) de uso general. La topología se construye con links seriales entre los routers embebidos en los
ASICs.
● un árbol global (combining/broadcast) para operaciones colectivas. El uso de registros programables
flexibilizan el control de la red árbol. En su forma más simple, los paquetes que viajan hacia la raiz del
árbol pueden ser punto a punto o combining. Los paquetes punto a punto se usan, por ejemplo, cuando
un nodo de cómputo necesita comunicarse con su nodo E/S. Los paquetes combining se usan para
soportar operaciones colectivas de MPI, como MPI_Allreduce, a través todos los nodos conectados al
árbol (usando MPI_COMM_WORLD).
● una red de interrupciones y barreras globales sólo entre nodos de cómputo
● una red “Gigabit Ethernet to JTAG (Joint Test Action Group)” para control y monitoreo de la máquina,
entre todos los nodos
● otra red Gigabit Ethernet para conexiones con otros sistemas como la máquina host y los servidores de
archivos y sistemas frontend.
Por cuestiones de costo y eficiencia, los nodos de cómputo no están directamente conectados a la red
gigabit ethernet, en cambio utilizan el global tree para comunicarse con sus nodos I/O, los cuales a su vez
utilizan la red Gigabit Ethernet para comunicarse con los otros sistemas.
Ademas de los tipos de nodos ya vistos, existen los ASIC "link". Cuando las redes torus, arbol y de
interrupciones cruzan el límite de la "placa de nodo", pasan a través de un ASIC especial, el cual tiene dos
Hardware y software de tres supercomputadoras Pagina 6
funciones. Primero, regenera las señales sobre los
Comentarios de: Hardware y software de tres supercomputadoras (0)
No hay comentarios