Distribuida, Computacin Grid Contenido Qu es la Computacin de Alto Rendimiento?
Computacin Paralela Contenido Qu es la Computacin de Alto Rendimiento?
Computacin Paralela Supercomputacin Primero, los sistemas HPC fueron sistemas basados en vectores (e.g. Cray) llamados supercomputadores porque ellos eran un orden de magnitud ms poderosos que los sistemas comerciales Ahora, un supercomputador est formado por computadores pequeos Los sistemas grandes son versiones escaladas de sistemas pequeos Sin embargo, la Computacin de Alto Rendimiento tiene varios significados Definiendo HPC Computacin 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 rpidez de ejecucin Sistemas ms poderosos Usando multiples sistemas simultneamente Definicin HPC: Cualquier tcnica computacional que soluciona un problema grande de forma ms rpida que usando posiblemente sistemas simples
Procesadores de alto redimiento (e.g. Cray, NEC) Computacin Paralela Computacin Distribuida Computacin Grid Mi Definicin Computacin Paralela: sistemas simples con varios procesadores trabajando sobre el mismo problema Computacin Distribuida: varios sistemas acoplados por un secuenciador de trabajo sobre problemas relacionados Computacin 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 tcnicas de HPC que eran imposibles de solucionar con estaciones de trabajo individuales o computadores personales. Contenido Qu es la Computacin de Alto Rendimiento?
Computacin Paralela Motivacin Aunque la frecuencia de reloj es cada vez ms alta, la velocidad de los circuitos no se puede incrementar indefinidamente. La velocidad de la luz ya representa un problema importante para los diseadores de computadoras del extremo superior, y las posibilidades de lograr que los electrones y fotones se muevan a mayor velocidad no son muy buenas Rendimento de un Computador Serial 0 20 40 60 1 6 Time (years) p e r f o r m a n c e Moore's Law Future (?) Aunque la Ley de Moores predice que el rendimiento de un simple procesador se dobla cada 18 meses, los limites fsicos de la tecnologa sern alcanzados Motivacin Para poder atacar problemas cada vez ms grandes, se disearon las computadoras paralelas. Aunque tal vez nunca sea posible construir una computadora con una sola CPU y un tiempo de ciclo de 0.001 ns, bien podra ser factible construir una con 1000 CPU, cada una de ellas con un tiempo de ciclo de 1 ns. Si bien este ltimo diseo usa CPU ms lentas que el primero, en teora su capacidad de procesamiento total es la misma.
Motivacin Podemos introducir paralelismo en diversos niveles. En el nivel de instrucciones, por ejemplo, el uso de filas de procesamiento y los diseos superescalares pueden elevar el desempeo en un factor de 10 respecto a los diseos puramente secuenciales. Sin embargo, para lograr un mejoramiento por un factor de cien o mil o un milln es necesario repetir CPU enteras, o al menos partes de ellas.
Qu es un Computador Paralelo? Computacin Paralela: el uso de multiples computadores o procesadores trabajando en conjunto sobre una tarea comn Computador Paralelo: un computador que contiene multiples procesadores: Cada procesador trabaja sobre su seccin del problema Los procesadores permiten intercambio de informacin con otros procesadores Computadores Paralelos vs. Seriales Dos grandes ventajas de los computadores paralelos: 1. Rendimiento 2. Memoria Los computadores Paralelos son capaces de resolver problemas que: Requerien una rpida solucin Requieren gran cantidad de memoria Ejemplo que requiere ambas: prediccin de clima Computadores Paralelos vs. Seriales Algunos beneficios de los computadores paralelos: muchos datos dominios muy grandes bsqueda de soluciones en regiones muy grandes muchas particulas muchos pasos de tiempo largas ejecuciones mejor resolucin temporal ejecucin ms rpida tiempo ms rpidos para obtener solucin muchas soluciones al mismo tiempo largas simulaciones en tiempo real Aspectos de Diseo Cuntos elementos de procesamiento hay, de qu tamao y de qu tipo? Los elementos de procesamiento pueden variar desde las ALU mnimas hasta las CPU completas, con tamaos que van desde una pequea fraccin de un chip hasta un metro cbico de circuitos electrnicos por elemento. Cuando el elemento de procesamiento es una fraccin de un chip, es posible equipar una computadora con una gran cantidad de tales elementos, quiz hasta un milln de ellos. Aspectos de Diseo Cuntos elementos de procesamiento hay, de qu tamao y de qu tipo? Si el elemento de procesamiento es una computadora completa, con su propia memoria y equipo de E/S, el nmero de elementos es naturalmente ms reducido, aunque se han instalado sistemas con casi 10,000 CPU. Cada vez se estn construyendo ms computadoras paralelas a partir de piezas comerciales, sobre todo CPU. Las capacidades y limitaciones de estas piezas a menudo influyen considerablemente en el diseo Aspectos de Diseo Cuntos mdulos de memoria hay, de qu tamao y de qu tipo? Los sistemas de memoria a menudo se dividen en mdulos que operan de forma independiente unos de otros, en paralelo para que muchas CPU puedan accesar a ellos al mismo tiempo. Dichos mdulos pueden ser pequeos (kilobytes) o grandes (megabytes) y estar integrados a la CPU o situados en una tarjeta de circuitos distinta.
Aspectos de Diseo Cuntos mdulos de memoria hay, de qu tamao y de qu tipo? Puesto que las memorias dinmicas (DRAM) grandes suelen ser mucho ms lentas que las CPU, es comn utilizar complejos esquemas de cach para agilizar el acceso a la memoria. Con frecuencia se usan dos, tres y hasta cuatro niveles de cach.
Aspectos de Diseo Cmo se interconectan los elementos de procesamiento y de memoria? Los esquemas de interconexin se pueden dividir a grandes rasgos en dos categoras: estticos y dinmicos. Los esquemas estticos simplemente conectan todos los componentes en una configuracin fija, como estrella, anillo o cuadrcula. En los esquemas de interconexin dinmica todas las piezas se conectan a una red de conmutacin que puede encaminar dinmicamente mensajes entre los componentes.
Modelos de Comunicacin
En cualquier sistema de cmputo paralelo, las CPU que trabajan en diferentes partes del mismo problema se deben comunicar entre s para intercambiar informacin. La forma precisa en la que lo deben hacer es tema de muchos debates en la comunidad arquitectnica. Se han propuesto e implementado dos diseos distintos, multiprocesadores y multicomputadoras. Modelos de Comunicacin
Multiprocesadores Todas las CPU comparten la memoria. Un sistema basado en memoria compartida como ste se llama multiprocesador o a veces simplemente sistema con memoria compartida.
Modelos de Comunicacin
Multiprocesadores El modelo del multiprocesador se extiende al software. Todos los procesos que estn ejecutndose en un multiprocesador pueden compartir un solo espacio de direcciones virtual mapeado en la memoria comn.
P P P P P P BUS Memory Acceso Uniforme a Memoria (UMA): Cada procesador tiene un acceso uniforme a memoria. Tambin conocido como multiprocesadores simtricos, 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 ubicacin de los datos. Los accesos locales son ms rpidos. Son ms fcilmente escalables que SMPs (SGI Origin) Memoria Compartida: UMA vs. NUMA Memoria Distribuida: MPPs vs. Clusters Nodos Procesador-memoria son conectados por algn tipo de red de interconexin Procesador Masivamente Paralelo (MPP): completamente integrado, imgen 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 Interconnect Network Modelos de Comunicacin
Multicomputadoras Cada CPU tiene su propia memoria privada, accesible nicamente a ella y a ninguna otra CPU. Un diseo as se llama multicomputadora o sistema de memoria distribuida Modelos de Comunicacin
Multicomputadoras Una multicomputadora que la distingue de un multiprocesador es que cada CPU de una multicomputadora tiene su propia memoria local privada a la que puede acceder con slo ejecutar instrucciones tipo LOAD y STORE, pero a la que ninguna otra CPU puede acceder usando esas instrucciones. . Modelos de Comunicacin
Multicomputadoras As pues, los multiprocesadores tienen un solo espacio de direcciones fsico compartido por todas las CPU, mientras que las multicomputadoras tienen un espacio de direcciones fsico por CPU. Puesto que las CPU de una multicomputadora no pueden comunicarse con slo leer y escribir en la memoria comn, necesitan un mecanismo de comunicacin distinto. Tipos de Computadores Paralelos De esta forma, la manera ms simple y til para clasificar los computadores paralelos modernos es por su modelo de memoria:
memoria compartida memoria distribuida
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 Procesadores, Memoria y Redes Los sistemas de memoria compartida y distribuida tienen: 1. procesadores: RISC procesadores 2. memoria: DRAM 3. red/interconexin: entre los procesadores y memoria (bus, crossbar, fat tree, torus, hypercube, etc.) Compartida vs. Distribuida En la memoria compartida, cada CPU tiene que descubrir (de alguna manera) cul CPU tiene los datos que necesita y enviar a esa CPU un mensaje en el que solicita una copia de los datos, utilizando instrucciones de software como send (enviar) y receive (recibir). Compartida vs. Distribuida Esto hace que el software tenga una estructura diferente, mucho ms complicada, que en un multiprocesador, y tambin implica que la divisin correcta de los datos y su colocacin en los lugares ptimos es una cuestin importante en una multicomputadora. Compartida vs. Distribuida Esto hace que el software tenga una estructura diferente, mucho ms complicada, que en un multiprocesador, y tambin implica que la divisin correcta de los datos y su colocacin en los lugares ptimos es una cuestin importante en una multicomputadora. Compartida vs. Distribuida Programar una multicomputadora es mucho ms difcil que programar un multiprocesador. Pero, las multicomputadoras grandes son mucho ms sencillas y econmicas de construir que los multiprocesadores con el mismo nmero de CPU. Implementar una memoria compartida por unos cuantos cientos de CPU es difcil, pero es relativamente fcil construir una multicomputadora con 10,000 CPU o ms..