¿ Por que estudiar el paralelismo ?
Considera tu aplicacion favorita :
Un procesador puede darte los resultados en N horas , entonces
¿Porque no usar N procesadores?
Para asi reducir el tiempo de procesamiento en solo 1 hora (Teoricamente) .
La idea es simple :
Paralelismo = Usar multiples procesadores para una tarea
La computacion paralela es el uso de multiples computadores (o procesadores) trabajando juntos en una tarea comun..Cada procesador trabaja en su porcion del trabajo, ademas a los procesadores se les permite cambiar informacion con otros procesadores. Esto es en esencia la computacion paralela .
La computacion paralela nace de tres factores limitantes :
- Limitaciones inherentes de una sola CPU :
- Memoria disponible.
- Performance.
- La computacion paralela permite :
- Resolver problemas que no caben en una sola CPU.
- Resolver problema que no pueden ser resueltos en un tiempo rasonable.
- Podemos correr :
- Grandes problemas con rapidez y analizar mas casos .
- Simulaciones a resoluciones mas finas .
- Simulaciones fisicas mas realistas
Veamos esto con un par de ejemplos : Pronostico del Tiempo
La atmosfera puede ser modelada en regiones de 3 dimenciones (o celdas) , un aproximado de 500 x 10**6 cells. Los calculos en cada celda son repetidos varias veces por un modelo que depende del tiempo. Alrededor de 200 operaciones puntos flotante por celda en una unidad de tiempo , haciendo un total (aproximado) de 10**11 operaciones punto flotante por unidad de tiempo.
Haciendo unas pocas operaciones a mano :
10 dias de prediccion con 10 minutos de resolucion => 1.5×10**14 flops
100 Mega Flops tomarian cerca de 17 dias
1.7 Tera Flops tomarian 2 minutos
NUMERICAL WEATHER PREDICTION – http://www.wrh.noaa.gov/wrh/NWP.php
Atmospheric Sciences (University of Illinoius, Urbana-Champaign) – http://www.atmos.illinois.edu
Como segundo ejemplo : Modelando el movimiento de cuerpos astronomicos
Metodo de Fuerza Bruta . Cada cuerpo es atraido por la fuerza gravitacional de los otros cuerpos. El movimiento de cada cuerpo se puede predecir mediante el calculo de la fuerza total experimentada por este cuerpo . Para N cuerpos , cada cuerpo experimenta la fuerza de N-1 cuerpos haciendo N**2 operaciones en cada intervalo de tiempo .
Una galaxia tiene 10**11 estrellas => Esto se traduce en 10**9 años para una iteracion
Podemos ver los tipos de paralelismo desde dos perspectivas distintas :
- Paralelismo de los datos
- Cada procesador realiza la misma tarea en datos diferentes
- Paralelismos de las tareas
- Cada procesador realiza una tarea diferente .
Mucho algoritmos paralelizados permiten asignar tareas diferentes a procesadores diferentes, por jemplo partes de un conjunto de datos de entrada puede ser dividida y procesada por diferentes procesadores , o una malla de diferencias finitas puede ser dividida entre los procesadores que se encuentres disponibles .
Esto genera una necesidad de mas tecnicas para implementar los programas paralelos , una solucion a esto es el estandar de facto : MPI .
Filed under: Computac. Distribuida, Computación Paralela | Tagged: paralela | 1 Comment »