Calculo Cientıfico con Computadoras Paralelas
Victorio E. Sonzogni
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Objetivos
Presentar una introduccion al calculo cientıfico en computadorasparalelas
Desde el punto de vista del ingeniero analista numerico
Programacion de algoritmos de resolucion numerica
Problema tıpico: solucion de sistemas de ecuaciones algebraicassimultaneas lineales (SEAL)
Estrategias de paralelizacion
Eficiencia y escalabilidad de programas paralelos
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Temario
Introduccion - Arquitecturas de computadoras paralelas
Medicion de velocidad de procesamiento
Vectorizacion
Analisis de algoritmos mediante grafos
Modelos y estrategias de paralelizacion
Eficiencia de programas paralelos
Programacion en el modelo de memoria compartida
Programacion en el modelo de memoria local
Algoritmos paralelos para algebra lineal
Metodos directos e iterativos de resolucion de SEAL
Paralelizacion en programas de elementos finitos
Metodos de descomposicion del dominio
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Clase introductoria
Necesidades de calculo intensivo en ingenierıas
Evolucion de las computadoras
Computadoras con varios procesadores
Arquitecturas paralelas
Aspectos de la programacion paralela
Ejemplos de aplicacion en mecanica computacional
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
El calculo en ingenierıa
La evaluacion de magnitudes que cuantifiquen el estado mecanico deestructuras, piezas industriales, recursos naturales, tejidos organicos, etc.puede efectuarse por algunas de las siguientes maneras:
Experimental
Analıtica (Teorica)
Numerica
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
El calculo numerico
La metodologıa para realizar una simulacion numerica implica:
Desarrollo de un modelo matematico → problema matematico
Solucion numerica del problema matematico
Desarrollo de software para la solucion numerica
Verificacion de los metodos numericos con casos simples
Validacion del modelo matematico con resultados experimentales
Utilizacion practica para predecir comportamiento.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Aproximaciones
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Problema fısico
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Modelo teorico
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Modelo numerico
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Grandes desafıos de calculo cientıfico
Office of Science and Technology (USA)High Performance Computing and Communication (HPCC)
La Oficina de Ciencia y Tecnologıa del gobierno norteamericanoestablecio en 1987 los grandes desafıos computacionales para losproximos 10 anos, que incluıan:
Dinamica de fluidos computacional para:Diseno de vehıculos (aviones, automoviles, etc.)Prediccion meteorologicaExtraccion de petroleo, etc.
Calculos de estructura electronica para diseno de nuevos materialesDinamica de plasma (energıa nuclear)Cromodinamica cuanticaComputacion simbolica (reconocimiento del habla, visioncomputacional, etc.)
Luego se agregaron otras aplicaciones incluyendo:Genoma humanoDiseno de farmacosetc.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Grandes desafıos de calculo cientıfico
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Necesidad de calculo intensivo
Aun hoy sigue habiendo necesidad de altas prestaciones para poderafrontar muchos problemas entre ellos:
interaccion aerodinamica 3D entre el flujo de aire y una estructura;
flujo 3D en una camara de combustion ;
simulacion numerica de reservorios de petroleo;
modelado climatico;
diseno de materiales;
diseno de drogas;
comprension de sistemas biologicos;
analisis y manejo de riesgos;
manejo del efecto invernadero;
etc.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Nota diario ABC de Espana 27/02/2012
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Nota diario ABC de Espana 27/02/2012
En el Massachusetts Institute of Technology (MIT) explicaron, graciasa una simulacion por computadoras, el misterio que rodea a loselectrones de alta velocidad en el espacio que, ademas, son lo quecausan las auroras boreales.
El equipo informatico, llamado Kraken, tiene 112.000 procesadorestrabajando en paralelo y consume tanta electricidad como una ciudadpequena.
La Kraken figura en el puesto numero 11 del Top500 de noviembre de2011, detras de la RoadRunner.
En la investigacion se utilizaron 25.000 de estos procesadores durante11 dıas, para seguir los movimientos de las 180.000 millones departıculas en el espacio durante el transcurso de un evento dereconexion magnetica.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Porque se necesitan computadoras mas veloces?
Alcanzar el grado de realismo indispensableMatematico
estabilidad de las solucionescomportamiento no linealsingularidades
Numerico: convergencia de las solucionesFısico: realismo en la representacion del sistema estudiado
Integracion Metodos de solucion - Herramientas de diseno (CAD)
Calculo en tiempo real → procedimientos de control
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Evolucion de la potencia de calculo
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Evolucion de la potencia de calculo
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Por que computacion paralela ?
Computadoras clasicas → arquitectura de Von Neumann: unico flujo deinstrucciones y unico flujo de datos.
Un procesador toma datos de memoria; hace los calculos y escribe elresultado en memoria. Proceso secuencial.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Por que computacion paralela ?
Mejoras tecnologicas → mayor velocidad de calculo.
Lımite fısico → velocidad de la luz!.
El ciclo de reloj interno de computadoras: nanosegundos(1ns = 10−9s)
En 1ns la electricidad viaja unos 30cm. La distancia entre procesadory memoria puede ser una fraccion importante de esa distancia.
Por otro lado, la generacion de calor aumento con la potencia cubicade la velocidad de reloj. Un lımite practico es 3 ∼ 6 GHz.
Salida → procesamiento paralelo
en computadoras secuencialesen computadoras paralelas
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Diseno de computadoras frente a los desafıos en HPC
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Paralelismo en computadoras sequenciales
La ejecucion concurrente de diferentes tareas puede hacerse con variosprocesadores, pero tambien en computadoras con un solo procesador.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Paralelismo en computadoras sequenciales
Una computadora tradicional (Von Neumann) tiene una unidad funcional,una unidad de control, y una memoria. Un calculo basico se hace en lassiguientes etapas:
1) se trae una instruccion de memoria y se decodifica;
2) se calcula la direccion en memoria de los datos requeridos;
3) se traen los datos;
4) se hace la cuenta en la unidad funcional;
5) se escribe el resultado nuevamente en memoria.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Paralelismo en computadoras sequenciales
Hay varias maneras de introducir paralelismo en computadorassecuenciales:
Multiples unidades funcionales
Pipelining
Instrucciones vectoriales
Encadenamiento
Organizacion de memoria
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Multiples unidades funcionales
La unidad funcional esta dividida en varias unidades que puedentrabajar concurrentemente.
Por ejemplo: una unidad de adicion de punto flotante; una unidad demultiplicacion de punto flotante; y una unidad logica.
El compilador distribuye la tarea de modo de evitar tiempos muertos.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Paralelismo en computadoras sequenciales
Hay varias maneras de introducir paralelismo en computadorassecuenciales:
Multiples unidades funcionales
Pipelining
Instrucciones vectoriales
Encadenamiento
Organizacion de memoria
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Pipelining
Si una tarea se puede dividir en sub-tareas o pasos, la unidadfuncional tambien se puede dividir en segmentos, cada unoresponsable de cada sub-tarea. Lınea de montaje.
Cada sub-tarea: un ciclo de reloj.
Diferentes sub-tareas se realizan concurrentemente.
Una vez que la linea de montaje esta llena, se completa una tarea encada unidad de tiempo.
El costo de llenar la lınea de montaje depende de la cantidad desegmentos.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Pipelining
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Pipelining: adicion en punto flotante
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Pipelining: adicion en punto flotante
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Paralelismo en computadoras sequenciales
Hay varias maneras de introducir paralelismo en computadorassecuenciales:
Multiples unidades funcionales
Pipelining
Instrucciones vectoriales
Encadenamiento
Organizacion de memoria
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Instrucciones vectoriales
Las instrucciones vectoriales especifican una operacion a llevar a caboen un conjunto de datos ordenados en un arreglo unidimensional(vectores).
La unidad funcional esta dividida en varios segmentos
Tambien hay registros vectoriales donde puede accederse a loselementos de un vector en un ciclo de tiempo.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Paralelismo en computadoras sequenciales
Hay varias maneras de introducir paralelismo en computadorassecuenciales:
Multiples unidades funcionales
Pipelining
Instrucciones vectoriales
Encadenamiento
Organizacion de memoria
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Encadenamiento
El encadenamiento se combina con el pipelining.
El resultado de una operacion en pipelining se dirige a otra, sinesperar que la primera se complete.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Encadenamiento
Aplicacion tıpica: encadenar multiplicacion y adicion.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Encadenamiento
do i=1,nv5(i)=(v1(i)*v2(i))+v4(i)
end do
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Paralelismo en computadoras sequenciales
Hay varias maneras de introducir paralelismo en computadorassecuenciales:
Multiples unidades funcionales
Pipelining
Instrucciones vectoriales
Encadenamiento
Organizacion de memoria
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Organizacion de memoria
El flujo de datos desde y hacia la memoria: parte crıtica del diseno decomputadoras.
Evitar perdidas de tiempo moviendo datos.
Organizacion jerarquica de memoria.
Memoria → Cache → Registros
Re-uso
Memoria dividida en bancos, que pueden accederse en paralelo
Si los datos estan en el mismo banco: conflicto de bancos.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Memoria jerarquica
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Supercomputadoras
El termino supercomputadora refiere al equipo mas poderosodisponible en ese momento.
Este termino se uso por primera vez en 1964 cuando la CDC 6600alcanzo 1 MFLOPS (un millon de operaciones punto flotante porsegundo).
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Supercomputadoras
Los equipos mas poderosos pueden clasificarse en:
High Performance Workstations
Superservers
Near Supers
Large Supercomputers
High Performance Workstations → 10 ∼ 100MFLOPS;Superservers, → arriba de 500MFLOPS;Near Supers → en el orden de GFLOPS (gigaflops)
Large Supercomputers → en el orden de TFLOPS (teraflops).
Como la velocidad de procesamiento cambia tan rapido, un mejor ındice para
clasificarlos parece ser el precio . . . .
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Supercomputadoras
Primera generacion, 60’-70’:
pipelined CDC6600, CDC7600,STAR-100, etc,
y el array processor ILLIAC IV.
Segunda generacion:
CRAY-1 con instrucciones vectoriales,
CDC CYBER 203.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Supercomputadoras
Tercera generacion :Combina procesadores vectoriales y array processors,
CDC CYBER 205, CRAY-2, CRAY-XMP, ETA-10, Fujitsu VP-400, Hitachi
s810/20, NEC SX2-400, etc.
Cuarta:Multiprocesadores: multiprocesadores vectoriales y MPP (massivelyparallel processors).
CRAY-3, CRAY-T90, CRAY T3E, CM5, Intel Paragon XP/5, Fujitsu VPP500, NEC SX-4/32, etc.
En MPP pueden ponerse las maquinas actuales mas veloces, como ASCI
White, ASCI Red o ASCI Blue.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
La idea de calculo paralelo es aun anterior a las modernas computadoras.Menabrea, en 1842, refiriendose a la maquina analıtica de Babbage, de1822, dijo:
When a long series of identical computations is to beperformed, such as those required for the formation of numericaltables, the Babbage Analytical Engine can be brought into playso as to give several results at the same time, which will greatlyabridge the whole amount of the processes.
Charles Babbage(1791-1871)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
Primera calculadora electronica digital de proposito multiple: ENIAC(1943-1946).
25 unidades de computo independientes (adicionadores,multiplicadores), cada una siguiendo su propia secuencia deoperaciones y cooperando para resolver un problema comun.
Version electronica, discreta, de los analizadores diferencialesanalogicos.
Metodo numerico: diferencias finitas
Variables asignadas a diferentes unidades.
I/O fısicamente conectadas a un panel de enchufes, segun lasecuaciones a resolver.
No habıa programa almacenado en la computadora. Cada nuevoproblema requerıa redefinir la arquitectura.
Despues vinieron computadora con programa almacenado, y casi 35anos de computadoras mono-procesador
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
ENIAC (1943-1946)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
UNIVAC 1 (1950), primera computadora comercial de programaalmacenado. Aritmetica serial por bit: la suma de numeros de 32 bitsse efectuaba en 32 ciclos de maquina sumando un bit a otro.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
IBM
IBM 701 (1953). Primera computadora comercial con aritmeticaparalela.IBM 704 (1955). Primera computadora comercial con unidad de puntoflotante. Se produjo durante 20 anos. Operaciones I/O usabanregistros de la unidad aritmetica.IBM 709 (1958). Tenıa canales de I/O: procesadores separados paraI/O trabajando en paralelo con la unidad aritmetica.
IBM 701
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
Entre 1950 y 1980:
Tecnologıa de transistoresSolo sistemas basados en un unico flujo de instrucciones y datostuvieron exito comercial.
Disenos estructurales innovativos
Von Neumann (1952): diseno un arreglo 2D de procesadoresHolland (1959): conjunto de procesadores que obedecıan su propioflujo de instrucciones.Pease (1977): Hipercubos de dimensiones 1, 2, ..n conectando 2n
procesadores.Millard (1975): Hipercubo con dos procesadores en cada nodo(comunicacion y calculo).pero sin productos comercialmente viables
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
En los 60’ y 70’ se introdujo mas paralelismo en los monoprocesadores.
Ferranti ATLAS (1962)
Multiprogramas (tiempo compartido)Memoria virtualAcceso en paralelo a la memoria a traves de bancosMultiples unidades funcionales.Cache: buffer de alta velocidad entre la memoria y los registrosaritmeticos.Ejecucion de instrucciones en pipelining: trae la instruccion; calcula ladireccion de los operandos; trae los operandos; realiza la operacion.
CDC 6600 (1964, S, Cray):
Primera en usar el paralelismo funcional como caracterıstica destacada.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
Seymour Cray funda Cray Research Inc. en 1972.
CRAY-1 (1976):
Primera computadora vectorial12 unidades vectoriales funcionales (3 para vectores)Memoria accesible por 16 bancos8 registros vectoriales32 instrucciones vectoriales
CRAY X-MP (1982):
2 CRAY-1 con memoria comun, compartida.procesadores capaces de ejecutar sus propias instruccionessimultaneamente.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
Computadoras multiprocesadores. SIMD
SOLOMON (Simultaneous Operation Linked Ordinal MOdularNetwork) (Slotnik, 1962)
Arreglo 2D de 32× 32 elementos procesadores con memoria local de128 palabras y aritmetica serial por bit.Unico flujo de instrucciones, enviado por la unidad de control central.Memoria accesible por 16 bancosEsta maquina no se llego a construir, pero dio lugar a la ILLIAC IV,ICL DAP, ...
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
Computadoras multiprocesadores. SIMD
ILLIAC IV (1967-1975):
4 cuadrantes, cada uno con una unidad de control y un arreglo de8× 8 procesadores con 2K de memoria local.Cuadrantes conectados por un bus I/O.Muy ambicioso para su tiempo4 lenguajes desarrollados para ILLIAC (Tranquil, Glypnir, Actus, CFDFortran)
ICL Distributed Array Processor (1972-1980):
Arreglo de 64× 64 procesadores con conecciones near-neighbour.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
Computadoras multiprocesadores.SIMD (Single Instruction stream - Single Data steam)
Una unica instruccion es procesada simultaneamente sobre diferentesdatos.
Connection Machine CM-1 y CM-2 (65536 proc.)
DAP 610 (4096 proc.)
MasPar MP-1 (1024 a 16384 proc.)
fueron desarrolladas durante la decada de 1980
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Breve historia de las computadoras paralelas
Computadoras multiprocesadores.MIMD (Multiple Instruction stream - Multiple Data steam)
Varios flujos de instrucciones aplicados a diferentes flujos de datos.
CRAY X-MP y CRAY 2 (4 procesadores), ETA-10 (8 procesadores).
Carnegie-Mellon C.mmp y Cm* (1972-1977):
16 minicomputadoras DEC PDP-11 completamente conectadas a 16modulos de memoria; espacio de direccionamiento compartidoCm*: memoria local, espacio de direccionamiento virtual compartido..
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Architectura de computadoras paralelas
Computadoras multiprocesadores.MIMD (Multiple Instruction stream - Multiple Data steam)
Cosmic Cube (Fox-Seitz, 1984):
Hipercubo de 26 microprocesadores con un host (por ej. VAX 11/780).Memoria localComunicacion por intercambio de mensajes.Version comercial: Intel iPSC
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Architectura de computadoras paralelas
Computadoras multiprocesadores.MIMD (Multiple Instruction stream - Multiple Data steam)
En la ultima decada se construyeron los equipos mas velocescompuestos por miles de procesadores. MIMD.
Clusters: en 1994 T. Sterling y D. Becker, en la NASA, construyeronun sistema de microprocesadores conectados por redes de altavelocidad. Proyecto Clusters Beowulf.
Redes de computadoras. A escala mundial. Redes heterogeneas.Proyectos: Genoma Humano; SETI (busqueda de vida extraterrestre,etc.)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Architectura de computadoras paralelas
Las computadoras paralelas pueden clasificarse segun diferentes criterios:
Granularidad de hardware
Interconexion
Acceso a memoria
Control de flujo
etc.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Granularidad de hardware
Granularidad Gruesa:Pocos procesadores poderosos ( 2, 4, 8 hasta 16 proc.)CRAY-2, CRYA-XMP, CRAY-YMP, IBM 3090, NEXC SX3, DEC VAX9000, Silicon Graphics 4d/340, ETA 10E, Fujitsu VPP 300, etc.
Granularidad fina:Cientos o miles de pequenos procesadores.Connection Machine CM2 (65536 proc.), DAP 610 (4096 proc.),MasPar MP 1 (1024 - 16384 proc.), MPP (ASCI RED, etc.), GPGPU
Granularidad intermedia:Decenas o centenares de procesadores.Las hipercubos como Intel IPSC/860 (hasta 128 proc.), NCUBE (64 -2048 proc.), Meiko (4 - 512 proc.).
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Interconexion
Describe la topologıa de hardware.
Varias maneras de conectar los procesadores entre sı y con lamemoria.
Configuraciones estatica o dinamica.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Interconexion
En una configuracion estatica las conexiones son fijas, no puedenreconfigurarse.La topologıa estatica, puede a su vez ser:
uni-dimensional (arreglos lineales o anilllos)
bi-dimensional (grillas)
tri-dimensional (cubos)
n−dimensional (hipercubo).
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Interconexiones estaticas
(P: procesadores; M: memoria)Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Hipercubos
Topologıa n−dimensional
Vertices del hipercubo son procesadores y los lados son conexionesdirectas.
Cantidad de procesadores: p = 2n.
Cantidad de cables que llegan a un procesador: dimension del espacion = log2p.
Tambien n es la cantidad de pasos necesarios para comunicar unprocesador con cualquier otro.
Topologıa de tamano fijo: no puede crecer. (En un anillo o un arreglo
lineal es facil agregar un nodo y cada uno recibe dos cables, pero la cantidad
de pasos para alcanzar cualquier nodo crece con la cantidad de procesadores
p)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Hipercubos
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Toro 3D
Toro 3D usado en CRAY T3D (MPP) Cada nodo forma parte de tresanillos.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Topologıas dinamicas
Las topologıas dinamicas tienen llaves (switchs) que permiten cambiarla configuracion.
Pueden ser: single-stage, multi-stage o crossbar.
La forma mas simple de conectar varios procesadores es a traves deun bus
Un nodo puede conectarse con cualquier otro, y puede expandirse lared facilmente.Pero puede tener problemas de congestion
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Topologıas dinamicas
(a) Crossbar (b) Bus.
(P: processor; M: memory)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Interconexiones
Puede interpretarse que las interconexiones entran en una de los siguientesgrupos:
Cada procesador esta directamente conectado a todos los otros.
Cada procesador esta conectado a todos los otros por medio deswitches.
Cada procesador esta conectado solamente a alguno(s) procesadores.Se precisan varios pasos para alcanzar a cualquier otro en la red.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Acceso a la memoria
La forma en que los procesadores pueden acceder a la memoria permiteclasificarlos en memoria compartida y memoria local.
Memoria compartida: todos los procesadores pueden acceder acualquier posicion en la memoria. ( CRAY 2, Cray YMP, SGI Origin2000, DEC Alpha Server 8000, etc.)
Memoria local: cada procesador accede solamente a su propiamemoria. (Hipercubos, MPP o clusters de microprocesadores.)
La manera de programar en computadoras paralelas depende en gran partede como es el acceso a la memoria. En arquitecturas de memoria local seprecisa manejar envıo de mensajes.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Acceso a la memoria
Shared memory
Local memory
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Ubicacion de la memoria
Un topico diferente es la localizacion de la memoria. Esta puede sercentralizada o distribuida.
Memoria centralizada : fısicamente en un lugar.
Memoria distribuida: esta particionada y cada parte asociada a unprocesador.
Generalmente la memoria centralizada es de acceso compartido, y lamemoria distribuida de acceso local, pero hay casos la memoriafısicamente distribuida pero de acceso compartido (SGI Power ChallengeArray, Convex Exemplar, CM 2, BBN, Myrias, etc.).
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Control de flujo
Una clasificacion popular, introducida por Flynn (1966), esta basada en laconcurrencia de flujos de instrucciones y datos.Clasifica las computadoras en cuatro grupos:
SISD
SIMD
MISD
MIMD
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Taxonomıa de Flynn
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Control de flujo
SISD: Single Instruction flow - Single Data flowArquitecturas secuenciales (von Neumann): un unico flujo deinstrucciones y un unico flujo de datos. (CDC 6600, o la mayorıa delas computadoras personales)
SIMD: Single Instruction flow - Multiple Data flowUn unico flujo de instrucciones se ejecuta simultaneamente, por variosprocesadores, sobre diferentes datos. ( Computadoras vectoriales;computadoras paralelas como ILLIAC IV, y algunas de grano fino:Connection Machine CM 1, CM 2, DAP 610, MasPasr MP 1,GPGPU, etc.).
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Control de flujo
MISD: Multiple Instruction flow - Single Data flowNo es facil hallar ejemplos de esta categorıa. Los llamados systolicarrays pueden ser vistos como computadoras MISD: diferentesprocesadores ejecutan diferentes instrucciones sobre el mismo flujo dedatos.
MIMD: Multiple Instruction flow - Multiple Data flowLas modernas supercomputadoras caen en esta clase. Cadaprocesador ejecuta sus propias instrucciones sobre diferentes datos.(Hipercubos, CRAY, MPP, clusters, etc.)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Arquitecturas de computadoras paralelas
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Arquitecturas de computadoras paralelas
Classificacion modernaLas computadoras paralelas actuales caen en la clasificacion de MIMD. Seusan otros criterios de clasificacion. Por ejemplo:
Symmetric Multiprocessors (SMP)
Massively Parallel Processors (MPP)
Cache-Coherent Non Uniform Memory Access (cc-NUMA)
Clusters
Distributed Systems
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Arquitecturas de computadoras paralelas
Symmetric Multiprocessors (SMP)
Computadoras con varios procesadores altamente acoplados (o quecomparten todo). Grano grueso. Comparten: memoria, bus, sistemasde I/O, etc. Una unica copia del SO corre en todos los procesadores.(Computadoras de grano grueso o de memoria compartida, suelencaer en este tipo. Tambien una PC con Pentium dual.)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Arquitecturas de computadoras paralelas
Massively Parallel Processors (MPP)
Sistemas de grano fino. Muchos procesadores que no compartennada. Cada uno tiene su memoria. En cada nodo corre una copia delSO. Estan conectados por red de alta velocidad. ( CRAY T3D, CRAY90, CM 5, CM 200, Intel Paragon, ASCI Red, ASCI White, etc.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Arquitecturas de computadoras paralelas
Cache-Coherent Non Uniform Memory Access (cc-NUMA)
Cada procesador tiene su memoria, pero el acceso a esta escompartido. Logicamente cualquier procesador puede ver cualquierlugar en la memoria. Pero el tiempo de acceso es diferente, segundonde se encuentre. Los valores de variables en el cache de cadaprocesador deben ser coherentes con los valores en la memoriaprincipal. El SO actualiza los valores de cache. Ej: Convex Exemplar
SPP 1600/XA, SGI Power Challenge
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Arquitecturas de computadoras paralelas
Clusters
Conjunto de microprocesadores, PC, o estaciones de trabajointerconectados con red de alta velocidad.
Distributed Systems
Red convencional de computadoras independientes. Puede ser muyheterogenea en arquitectura, velocidad de procesamiento, etc.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Arquitecturas de computadoras paralelas
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Top 500 (2014)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Top 500 (2014)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Top 500 (2012)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Top 500 (Sept.2011)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Top 500 (Sept.2011)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Niveles de paralelismo
El paralelismo puede ser ejecutado en diferentes niveles:
Nivel de trabajo (Job level)
Nivel de programa
Nivel inter-instrucciones
Nivel intra-instrucciones
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Niveles de paralelismo
Nivel de trabajo (Job level)
Llevado a cabo principalmente por el SO. Administra los diferentestrabajos/programas en el equipo de multiproceso.Puede tomar la forma de:
multiprogramamultiproceso
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Niveles de paralelismo
Nivel de programa
Realizado por el codigo. Dentro del programa de aplicacion. Se puedeintroducir el concepto de granularidad de tareas.El paralelismo a nivel de programa puede ser dividido en:
tareas de granularidad finatareas de granularidad gruesa
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Niveles de paralelismo
Nivel inter-instrucciones
Realizado por el compilador.Requiere que el compilador analice la dependencia de datos entreinstrucciones y superponga sub-operaciones de diferentesinstrucciones.
Nivel intra-instrucciones
Implıcito en el hardware.Existencia de unidades funcionales separadas (adicion, multiplicacion,logica); operaciones vectoriales, pipelining, encadenamiento, etc.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Modelos de programacion paralela
Memoria compartida
Intercambio de mensajes
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Modelos de programacion paralela
Memoria compartida
Para computadoras de memoria compartidaUn procesador inicia la ejecucion. Cuando una tarea lo requiere, abrevarios hilos (threads) de ejecucion en diferentes procesadores.Requiere:
Zonas memoria compartidaSincronizacion
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Modelos de programacion paralela
Intercambio de mensajes
Para computadoras de memoria localCada procesador corre su propio programa. Precisa intercambiarseinformacion.Requiere:
comunicacion
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Lenguajes para programacion paralela
FORTRAN, C, C++
Memoria compartida:
funciones de bajo niveldirectivas al compilador y extensiones (OMP)macro-lenguajes (Ej: Force, etc.)
Memoria local:
funciones basicas de comunicacionsoftware portable de comunicacion (PVM, MPI)extensiones al lenguaje (HPF)librerıas (PETSc)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Uno debe elegir...
modelo matematico
modelo numerico
algoritmos de solucion
programacion del codigo
pero tambien
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Uno debe elegir...
modelo matematico
modelo numerico
algoritmos de solucion
programacion del codigo
pero tambien
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Uno debe elegir...
modelo matematico
modelo numerico
algoritmos de solucion
programacion del codigo
pero tambien
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Uno debe elegir...
modelo matematico
modelo numerico
algoritmos de solucion
programacion del codigo
pero tambien
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Uno debe elegir...
modelo matematico
modelo numerico
algoritmos de solucion
programacion del codigo
pero tambien
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Uno debe elegir...
modelo matematico
modelo numerico
algoritmos de solucion
programacion del codigo
pero tambien
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Uno debe elegir...
modelo matematico
modelo numerico
algoritmos de solucion
programacion del codigo
pero tambien
arquitectura de hardware
modelo de programacion paralela
lenguaje
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Uno debe elegir...
modelo matematico
modelo numerico
algoritmos de solucion
programacion del codigo
pero tambien
arquitectura de hardware
modelo de programacion paralela
lenguaje
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Uno debe elegir...
modelo matematico
modelo numerico
algoritmos de solucion
programacion del codigo
pero tambien
arquitectura de hardware
modelo de programacion paralela
lenguaje
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Eficiencia de programas paralelos
Speedup:
Sp =tstp
Eficiencia:
Ep =Sp
p=
tsptp
ts : tiempo de ejecucion secuencial de un programa;tp : tiempo de ejecucion paralela con p procesadores.
Idealmente : Sp → p and Ep → 1En la practica: Sp ≤ p and Ep ≤ 1
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Eficiencia de programas paralelos
Ley de Amdahl:
Si el programa no puede paralelizarse completamente, y si fs es la fraccionserial del programa, a medida que aumenta la cantidad de procesadores(p→∞) el speedup esta acotado por
Sp ≤1
fs
Por ejemplo:para fs = 10% → Sp ≤ 10
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Ley de Amdahl
Speedup
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Ley de Amdahl
Efficiency
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Ley de Gustafson
Ley de Amdahl → fraccion serial fs independiente de p.Pero la fraccion serial depende de la cantidad de operaciones realizadas.Gustafson (1988) lo plantea ası: ¿ Cual serıa el tiempo para procesarsecuencialemnte un dado programa paralelo?Sea f∗
s la fraccion secuencial de las operaciones en el programa paralelocon p procesadoers.
Sp =tstp
= p + f∗s (1 − p)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Ley de Gustafson
Speedup
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Eficiencia de programas paralelos
Escalabilidad:
Capacidad de mantener la eficiencia aproximadamente constante amedida que la cantidad de procesadores aumenta.
A aumentar p → el tiempo de calculo disminuye
Pero al aumentar p → el tiempo de comunicacion y coordinacionaumenta
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Programacion paralela
Formas de usar el paralelismo
paralelismo de control: permite procesar varias instrucciones al mismotiempo. Cada una en procesadores diferentes.
paralelismo de flujo: trabajo realizado en una lınea de montaje(pipeline)
paralelismo de datos: una operacion se realiza simultaneamente sobrediferentes datos. Cada dato asociado a un procesador.
Se puede asociar estas clases de paralelismo con las arquitecturas deFlynn: MIMD, MISD y SIMD, respectivamente.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Programacion paralela
Grado de participacion del programador
paralelismo implıcito: la division de tareas en hilo paralelos esrealizada principalmente por el compilador. La participacion delprogramador es -por tanto- mınima. En computadoras de memoriacompartida es tıpica esta forma de trabajo, pero actualmente tambiendisponible en arquitecturas de memoria local.
paralelismo explıcito: la division de tareas en hilo paralelos esrealizada explıcitamente por el programador.
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Solucion de sistemas de ecuaciones
La aplicacion del metodo de los elementos finitos -u otro metodonumerico- conduce a la resolucion del sistema de ecuaciones:
Ku = p
Que puede hacerse por:
Metodos directos
Metodos iterativos
Metodos de decomposicion de dominio
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Metodos directos
Solucion cerrada (”exacta”)
Factorizacion LU → buena para varios sistemas con la misma matriz
Puede evitarse ensamble de la matriz → metodo frontal
Caro para grandes sistemas: O(n3) ops (matriz llena)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Metodos iterativos
Solucion con una dada tolerancia
Buena estimacion inicial → solucion rapida
No se requiere la matriz completa (solo producto matriz-vector)
Para grandes sistemas, requiere memoria grande (espacio Krylov)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Metodos de decomposicion del dominio
Divide el dominio en subdominios
Incognitas internas - interfaz
La solucion del sistema completo puede ser particionada en:
g.d.l. internos (en paralelo) directog.d.l. interfaz (acoplado) iterativo
Intermedio entre solucion directa e iterativa
Eficiente precondicionador del problema de interfaz
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Metodos de decomposicion del dominio
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Clusters Beowulf en CIMEC
Clusters de microprocesadores que corren SO libres (ej. GNU/Linux) sedenominan ”clusters Beowulf”.Segun Sterling (“How to build a Beowulf”) un “cluster Beowulf” es: “Acluster of mass-market commodity off-the-shelf (M2COTS) PC’sinterconnected by low cost LAN technology running an open source codeUnix-like OS and executing parallel applications programmed with andindustry standard message passing model and library.”
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Cluster Beowulf Geronimo en CIMEC
Server:Intel Pentium IV PC, 1.8 Ghz, 256 Mb RAM RIMM. HD 80 Gb, withcarrries 2 3COM 3c509 (Vortex) Nic cards
Nodes (x 9)Intel Pentium IV, 2.4 Ghz, 1024 MB RAM DDR 333MHz, 1 3COM3c509 (Vortex) Nic card
Nodes (x 9)Intel Pentium IV, 1.7 Ghz, 512 MB RAM RIMM 400/800Mhz. 13COM 3c509 (Vortex) Nic card
Network3COM Fast Ethernet SuperStack switch.
Desmontado
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Cluster Geronimo
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Cluster Beowulf Aquiles en CIMEC
Server:Intel Pentium4 Prescott 3.0 GHz, motherboards Intel 3.0 GHz y 3 GB memoria RAM(DDR a 400 MHz), con Gigabit Lan on board, 2 TBytes de almacenamiento (disco SATA150 and ATA-100 slots), 1 unidad de diskette 3.5”, 1 placa video Gforce XFX de 64 MB8X, y 1 fuente alimentacion 300 W con 2 ventiladores. Discos rıgidos (10), WesternDigital WD 2000 JD 200 GB capacidad, con 8 MB buffer y veloc. 7200 RPM, interfaceSATA.
Nodes (x 82)Intel Pentium 4 Prescott de 3.0 GHz y 2 GB memoria RAM (DDR a 400 MHz),motherboards Intel de 3.0GHz, con Gigabit Lan on board, 1 unidad diskette 3.5”, placavideo AGP y fuente alimentacion 300 W con 2 ventiladores.
Network2 switch Gigabit ethernet ( 1 Gbit/s), marca 3Com Super Stack 3 Switch 3870, con 48puertos c/u.
Desmontado
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Cluster Aquiles
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Cluster Beowulf Coyote en CIMEC
Server:Xeon E5335 de 2.00 GHz (2 x 4 cores) 16GB RAM
Nodes (x 32)7 Xeon E5420 de 2.50 GHz (2 x 4 cores)17 Xeon W3690 de 3.47 GHz (1 x 6 cores)8 Xeon E5-1660 de 3.30 GHz (1 x 6 cores)
Network1 Gigabit Ethernet switch (1 Gbit /s) con 52 ports cada uno
Total 206 cores.
( http://www.cimec.org.ar/twiki/bin/view/Cimec/CoyoteCluster)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Cluster Bora en CIMEC
Server:Intel Core i7 2600K (4 cores)
Nodes (x 7)Intel Core i7 3930K 3.20GHz (6 cores), todos con 16 GB de RAM
Network1 Gigabit Ethernet switch (1 Gbit /s) con 52 ports cada uno
( http://www.cimec.org.ar/twiki/bin/view/Cimec/CoyoteCluster)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Cluster Seshat en CIMEC
Server:Procesador: Intel(R) Xeon(R) CPU E5-2640 v2 @ 2.00GHz (2 CPU x 8 cores)
Nodes (x 69)Procesador: Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.70GHz (1 CPU x 4 cores)
NetworkInfiniband Velocidad: QDR 40 Gbps
Total memoria: 1.2 TBTotal cores: 292 cores
(http://www.cimec.org.ar/c3/seshat/equipos.php)
Imagenes: http://www.cimec.org.ar/c3/seshat/galeria.php
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Cluster Pirayu en CIMEC
Server:Procesador: Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz 25 MB cache (2 CPU x 10cores = 20 cores)
Nodes
Nodos de calculo (29 nodos): Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz 25
MB cache (2 CPU x 10 cores = 20 cores)
Nodos Xeon Phi (1 nodo): Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz 25 MB
cache(2 CPU x 10 cores = 20 cores)
Nodos GPU (5 nodos): Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz 25 MB
cache(2 CPU x 10 cores = 20 cores)
Nodos de almacenamiento (1 nodo): Intel(R) Xeon(R) CPU E5-2670 v3 @ 2.30GHz
30 MB cache (1 CPU x 12 cores) Almacenamiento: 144 TB (36 discos de 4 TB
SATA 3.5”)NetworkInfiniband Velocidad: FDR 56 Gbps
Total nodos: 35 nodosTotal memoria: 4.736 TBTotal cores: 732 cores
(http://www.cimec.org.ar/c3/pirayu/equipos.php)
Victorio E. Sonzogni Calculo Cientıfico con Computadoras Paralelas
Top Related