260 likes | 476 Views
Introducción a la Computación de Alto Rendimiento: Computación Paralela, Computación Distribuida, Computación Grid y Más. Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.edu.ve. Contenido. Prefacio Qué es la Computación de Alto Rendimiento?
E N D
Introducción a laComputación de Alto Rendimiento:Computación Paralela, Computación Distribuida, Computación Grid y Más Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@uc.edu.ve
Contenido • Prefacio • Qué es la Computación de Alto Rendimiento? • Computación Paralela • Computación Distribuida, Computación Grid, y más • Futura tendencia en HPC
Propósito • Propósito del curso: • Educar a los investigadores acerca del valor e impacto de las técnicas de computación de alto rendimiento (HPC) y tecnologías en ciencias computacionales e Ingeniería • Educar a los investigadores acerca de las técnicas y herramientas de computación paralela, y mostrar las posiblidades que presentan éstas mediante computación distribuida y Computación Grid
Metas • Las metas de esta presentación son ayudar a: • Entender en que se basa la computación de alto rendimiento • Desarrollar un comprensivo entendimeinto sobre la computación paralela • Comenzar a entender cómo la computación Grid y Distribuida realzarán en el futuro las capacidades de las ciencias computacionales
Contenido • Prefacio • Qué es la Computación de Alto Rendimiento? • Computación Paralela • Computación Distribuida, Computación Grid, y más • Futura tendencia en HPC
‘Supercomputación’ • Primero, los sistemas HPC fueron sistemas basados en vectores (e.g. Cray) • llamados ‘supercomputadores’ porque ellos eran un orden de magnitud más poderosos que los sistemas comerciales • Ahora, un ‘supercomputador’ está formado por computadores pequeños • Los sistemas grandes son versiones escaladas de sistemas pequeños • Sin embargo, la ‘Computación de Alto Rendimiento tiene varios significados
Definiendo HPC • Computación de Alto Rendimiento: • Puede significar muchas Flop • Por procesador • En total sobre varios procesadores trabajando sobre un mismo problema • En total sobre varios procesadores trabajando sobre problemas relacionados • Puede significar rápidez de ejecución • Sistemas más poderosos • Usando multiples sistemas simultáneamente
Mi Definición • HPC: Cualquier técnica computacional que soluciona un problema grande de forma más rápida que usando posiblemente sistemas simples • Procesadores de alto redimiento (e.g. Cray, NEC) • Computación Paralela • Computación Distribuida • Computación Grid
Mi Definición • Computación Paralela: sistemas simples con varios procesadores trabajando sobre el mismo problema • Computación Distribuida: varios sistemas acoplados por un secuenciador de trabajo sobre problemas relacionados • Computación Grid: varios sistemas acoplados por software y redes para trabajar en conjunto en poblemas simples o en problemas relacionados
Importancia de HPC • HPC ha tenido tremendo impacto sobre todas las areas de ciencias computacionales e ingenieria en la academia, gobierno e industria. • Muchos problemas han sido solucionados con técnicas de HPC que eran imposibles de solucionar con estaciones de trabajo individuales o computadores personales.
Contenido • Prefacio • Qué es la Computación de Alto Rendimiento? • Computación Paralela • Computación Distribuida, Computación Grid, y más • Futura tendencia en HPC
Qué es un Computador Paralelo? • Computación Paralela: el uso de multiples computadores o procesadores trabajando en conjunto sobre una tarea común • Computador Paralelo: un computador que contiene multiples procesadores: • Cada procesador trabaja sobre su sección del problema • Los procesadores permiten intercambio de información con otros procesadores
Computadores Paralelos vs. Seriales • Dos grandes ventajas de los computadores paralelos: • Rendimiento • Memoria • Los computadores Paralelos son capaces de resolver problemas que: • Requerien una rápida solución • Requieren gran cantidad de memoria • Ejemplo que requiere ambas: predicción de clima
Computadores Paralelos vs. Seriales • Algunos beneficios de los computadores paralelos: • muchos datos • dominios muy grandes • búsqueda de soluciones en regiones muy grandes • muchas particulas • muchos pasos de tiempo • largas ejecuciones • mejor resolución temporal • ejecución más rápida • tiempo más rápidos para obtener solución • muchas soluciones al mismo tiempo • largas simulaciones en tiempo real
Rendimento de un Computador Serial Aunque la Ley de Moore’s ‘predice’ que el rendimiento de un simple procesador se dobla cada 18 meses, los limites físicos de la tecnología serán alcanzados
Tipos de Computadores Paralelos • La manera más simple y útil para clasificar los computadores paralelos modernos es por su modelo de memoria: • memoria compartida • memoria distribuida
Compartida vs. Distribuida P P P P P P Memoria Compartida – Un espacio simple de direccionamiento. Todos los procesadores tienen acceso a un pool de memoria compartida. (Eje.: SGI Origin, Sun E10000) BUS Memory P P P P P P Memoria Distribuida – cada procesador tiene su propia memoria local. Se debe hacer paso de mensaje para intercambiar datos entre procesadores. (Eje.: CRAY T3E, IBM SP, clusters) M M M M M M Network
Memoria Compartida: UMA vs. NUMA Acceso Uniforme a Memoria (UMA): Cada procesador tiene un acceso uniforme a memoria. También conocido como multiprocesadores simétricos, o SMPs (Sun E10000) P P P P P P BUS Memory P P P P P P P P Acceso No-Uniforme a Memoria (NUMA): El tiempo de acceso depende de la ubicación de los datos. Los accesos locales son más rápidos. Son más fácilmente escalables que SMPs (SGI Origin) BUS BUS Memory Memory Network
CPU MEM CPU MEM CPU MEM CPU MEM CPU MEM CPU MEM CPU MEM CPU MEM CPU MEM Memoria Distribuida: MPPs vs. Clusters • Nodos Procesador-memoria son conectados por algún tipo de red de interconexión • Procesador Masivamente Paralelo (MPP): completamente integrado, imágen de un sistema simple. • Cluster: computadores individuales conectados por un s/w Interconnect Network
Procesadores, Memoria y Redes • Los sistemas de memoria compartida y distribuida tienen: • procesadores: RISC procesadores • memoria: DRAM • red/interconexión: entre los procesadores y memoria (bus, crossbar, fat tree, torus, hypercube, etc.) • Estas piezas se tienen que describir en detalles, comenzando con definiciones de terminos.
Procesador-Términos Relacionados Período de Reloj (cp): el mínimo intervalo de tiempo entre sucesivas acciones en el procesador. Fijo: depende del diseño del procesador. Medidas en nanosegundos (~1-5 para procesadores muy rápidos). Inverso de la frequencia (MHz). Instrucción: una acción ejecutada por un procesador, tal como una operación matemática o una operación de memoria. Registro: una pequeña y extremadamente rápida ubicación para almacenar datos o instrucciones en el procesador.
Procesador-Términos Relacionados Unidad Funcional (FU): un elemento de hardware que ejecuta una operación sobre un operando o parejas de operaciones. Comúmente las FUs son ADD, MULT, INV, SQRT, etc. Pipeline : técnica de solapar multiples instrucciones en ejecución. Superscalar: multiples instrucciones son posibles por período de reloj. Flops: operaciones de punto flotante por segundo.
Procesador-Términos Relacionados Cache: memoria rápida (SRAM) cercana del procesador. Ayuda a mantener instrucciones y datos cercanos a las unidades funcionales, entonces el procesador puede ejecutar más instrucciones más rápidamente. Translation-Lookaside Buffer (TLB): mantiene direcciones de páginas (bloques de memoria) en memoria principal que recientemente han sido accesados (una cache para direcciones de memoria)
Memoria-Términos Relacionados SRAM: Static Random Access Memory (RAM). Muy rápida (~10 nanosegundos), hecha usando el mismo tipo de tecnología del procesador, entonces la velocidad es comparable. DRAM: Dynamic RAM. El tiempo de acceso es más lento (~100 nanosegundos), pero mantiene más bits y es menos costosa (10x más barata). Jerarquía de Memoria: la jerarquía de memoria en un sistema paralelo, desde registros a cache a memoria local a memoria remota. Luego….
Interconexión-Términos Relacionados • Latencia: • Redes: Cuanto tiempo se lleva incializar el envio de un "mensaje"? Medido en microsegundos. • Procesador: Cuanto tiempo se lleva la salida de resultados de algunas operaciones, tales como suma punto flotante, dividir etc., las cuales son hechas en pipelined?) • Ancho de Banda: Qué porcentaje de data puede ser sostenida una vez que el mensaje es inicializado? Medido en Mbytes/sec o Gbytes/sec
2-d mesh 2-d torus 3-d hypercube Interconexión-Términos Relacionados Topología: la forma en la cual los nodos son conectados. • La mejor elección es conexión completa (cualquier procesador con cualquier otro). Infactible debido a razones de costo y escalamiento. • Por ejemplo, los procesadores son conectados en alguna variación de mallas, torus, o hypercube.