26
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

Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

  • Upload
    shaun

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

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? - PowerPoint PPT Presentation

Citation preview

Page 1: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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

[email protected]

Page 2: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.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

Page 3: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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

Page 4: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

Metas

• Las metas de esta presentación son ayudar a:1. Entender en que se basa la computación de alto

rendimiento 2. Desarrollar un comprensivo entendimeinto sobre

la computación paralela 3. Comenzar a entender cómo la computación Grid

y Distribuida realzarán en el futuro las capacidades de las ciencias computacionales

Page 5: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.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

Page 6: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

‘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

Page 7: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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

Page 8: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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

Page 9: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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

Page 10: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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.

Page 11: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.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

Page 12: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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

Page 13: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

Computadores Paralelos vs. Seriales

• Dos grandes ventajas de los computadores paralelos:1. Rendimiento2. 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

Page 14: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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

Page 15: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

Rendimento de un Computador Serial

0

20

40

60

1 6Time (years)

perf

orm

ance

Moore'sLawFuture(?)

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

Page 16: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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

Page 17: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

P P P P P P

BUS

Memory

M

P

M

P

M

P

M

P

M

P

M

P

Network

Memoria Compartida – Un espacio simple de direccionamiento. Todos los procesadores tienen acceso a un pool de memoria compartida. (Eje.: SGI Origin, Sun E10000)

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)

Compartida vs. Distribuida

Page 18: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

P P P P P P

BUS

Memory

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

BUS

Memory

P P P P

BUS

Memory

Network

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)

Memoria Compartida: UMA vs. NUMA

Page 19: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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

CPU

MEM CPU

MEM

CPU

MEM CPU

MEM CPU

MEM

CPU

MEM

CPU

MEM CPU

MEM CPU

MEM

InterconnectNetwork

Page 20: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

Procesadores, Memoria y Redes

• Los sistemas de memoria compartida y distribuida tienen:1. procesadores: RISC procesadores2. memoria: DRAM3. 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.

Page 21: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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.

Page 22: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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.

Page 23: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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)

Page 24: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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….

Page 25: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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

Page 26: Germán Larrazábal Departamento de Computación, FACYT, Universidad de Carabobo glarraza@ u c.ve

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.

3-d hypercube 2-d mesh 2-d torus