Computación Científica

Anuncio
Linux Week PUCP
2006
“Computación de Alto Rendimiento en Linux”
Richard Miguel San Martín
[email protected]
Agenda
•
•
•
•
•
Computación Científica
Computación Paralela
High Performance Computing
Grid Computing
Referencias
Computación Científica
La computación científica siempre ha cumplido un rol importante
en el desarrollo de la computación como ciencia.
Inicialmente se desarrolló en el ámbito de computación para
cálculo intensivo.
Las principales aplicaciones usadas eran compiladores como
ForTran y aplicaciones desarrolladas en laboratorios de
universidades y en grupos reducidos.
Con el tiempo la computación científica fue abriéndose campo en
otras áreas mas comerciales y en la actualidad se usa en casi
todos los ámbitos.
Como ejecutar una aplicación mas rápido?
Existen tres maneras de mejorar el rendimiento:
• Trabajar Duro.
• Trabajar mas rápido.
• Pedir Ayuda.
En términos computacionales:
• Usar hardware mas rápido.
• Optimizar algoritmos y usar técnicas para resolver tareas
computacionales.
• Múltiples computadoras para resolver una tarea especifica.
Es decir … COMPUTACION EN PARALELO!!!
Computación Paralela
Computación Paralela es el uso de múltiples procesadores
o múltiples computadores trabajando juntos para realizar
una tarea común.
- Cada procesador trabaja en una sección del problema.
- Los procesadores intercambian datos para resolver el
problema.
Mesh of problem to be solved
y
CPU #1 works on this area exchange CPU #2 works on this area
of the problem
of the problem
exchange
exchange
exchange
CPU #3 works on this area exchange CPU #4 works on this area
of the problem
of the problem
x
Computadores en Paralelo
• Taxonomía de Flynn nos ayuda a clasificar este tipo de
computadores:
• Se basa en dos criterios:
• Data Stream
• Instruction Stream
Otras consideraciones
Memoria: Que clase de Memoria?
Red: Cuantos procesadores están interconectados?
Granularidad Gruesa (Parallel Vectorial Processing)
• Son pocos pero poderosos (Procesadores Vectoriales)
Granularidad Fina (Massively Parallel Processors)
• Son muchos pero no muy potentes (Procesadores RISC)
Paradigma de la Programación:
Que Clase de estilo de programación es posible en
esta maquina?
Como esta organizada la memoria?
Memoria Privada y Paso de Mensajes
Multicomputadores
Memoria Compartida
Multiprocesadores (SMPs)
Como esta organizada la memoria?
-Cada CPU tiene <1/2 de max. de ancho de banda
-Dispositivos de I/O y la memoria comparten el
mismo bus.
-Agregar CPU puede aumentar los problemas.
-No es escalable mas allá de las 2 vías.
-Cuellos de botella son disminuidos o eliminados.
-Agregar CPU implica agregar memoria.
-Ancho de banda dedicado entre CPU y memoria.
-Existe comunicación directa entre procesadores.
-I/O es independiente del acceso a la memoria.
High Performance Computing
Donde usarla?
En problemas que signifiquen grandes retos.
• Simulaciones Biológicas (Bioinformática).
• Predicción del Tiempo y Clima.
• Dinámica de Fluidos.
Requerimientos de Cómputo y Memoria:
• Una simulación usando códigos de secuencias de proteínas
-> 32 GB RAM.
• Modelos de pronostico de Tiempo a 48 horas -> 10 15
operaciones de punto flotante (float).
En modernas estaciones de trabajo (2 Gflops) se puede llegar
a las 300 horas de calculo.
Unidades de Medida en
High Performance Computing
Velocidad del procesador:
• floats: operaciones de punto flotante / segundo.
• Megaflops / Gigaflops / Teraflops / Petaflops
Velocidad de la red:
• 10 Mbit/100mbit / 1000 Mbit=1 Gbit
Unidad de Tamaño : byte
•
•
•
•
kbyte/Mbyte ----> caches/RAM
Gigabite -----> RAM/hard disks
Terabyte -----> Disks/SAN ...
Petabyte ------> SAN
Cluster de Computadores y su Arquitectura
Definición:
Es un tipo de sistema paralelo o de procesamiento distribuido,
el cual consiste de un grupo de computadores independientes
interconectados entre si, trabajando cooperativamente como
un único recurso de computación integrado.
Clasificación de Clusters :
Cuales son las Aplicaciones?
Aplicaciones de Misión Critica:
• Sistemas de control de comando.
• Bancos, E- Commerce.
High Availibility (HA)
Clusters
Aplicaciones Científicas:
High Performance (HP)
Clusters
Clusters Paralelos
(Beowulf)
Aplicaciones Paralelizadas
Clusters HT
(High Troughput)
(OpenMosix)
Aplicaciones Seriales
Que se necesita para construir un cluster?
La Red en HPC
Latencia
Que tanto tiempo se demora en abrir el canal de comunicación?.
Ancho de banda
Que cantidad de datos pueden ser transmitidos en una unidad
de tiempo.
Software Libre en HPC
Sistema Operativo Linux
Clusters Tools (ROCKS, Oscar)
- http://oscar.openclustergroup.org/
- http://www.cs.wisc.edu/~zandy/rocks/
MPICH
- http://www-unix.mcs.anl.gov/mpi/mpich/
OpenMosix
- http://openmosix.sourceforge.net/
PVFS
- http://www.parl.clemson.edu/pvfs/
Ganglia
- http://ganglia.sourceforge.net/
HPC en SENAMHI
Cluster Beowulf de 30 nodos.
- CPU P4 2.8 Ghz.
- 256 MB RAM cada nodo.
- 60 GB HD cada nodo.
- Red Fast Ethernet.
- S.O. Red Hat Linux.
Aplicación:
Modelamiento climático a largo
plazo mediante generación de
escenarios para 50 años.
Proyecto PROCLIM
Proyecto PROCLIM
El SENAMHI está participando en el proyecto PROCLIM , en
conjunto con otras instituciones con el objetivo de mejorar
las capacidad nacional de respuesta a fenómenos climáticos
que afecten a nuestro país, así como el mejoramiento del
aire.
La tarea del SENAMHI en este proyecto es generar
escenarios climáticos que permitan prever el cambio
climático en los siguientes 50 años.
Para realizar esta actividad es necesario usar modelos
numéricos de clima que, basándose en ecuaciones
matemáticas, permiten obtener pronósticos a largo plazo.
Nuestra aplicación
• Modelo Numérico basado en ecuaciones diferenciales que
asociadas con diferentes variables realizan un análisis del
estado de la atmósfera y permite inferir pronósticos a largo
plazo.
• Permite realizar pronósticos en dominios con muy alta
resolución.
• Desarrollado por ATMET http://www.atmet.com
• Código escrito en Fortran y se encuentra paralelizado.
• Realiza comunicación nodo maestro – nodos esclavos, internodos
y bidireccional también.
Nuestra aplicación
• Para la paralelización del código serial este fue dividido en
dos tipos:
• Master process: (Inicialización y todas las funciones de I/O)
• Node compute process: (all computation).
• No es necesario que los archivos de salida se almacenen en los
nodos, ya que estos retornan al nodo principal.
• Esta centralización facilita las tareas de respaldo de datos.
Algunos resultados
Forecast of winds and temperature
on Piura domain for 2016 April.
Forecast of winds and temperature on
Mantaro domain for 2016 April.
Pruebas de Rendimiento
20
22,5
25
27,5
HPC en SENAMHI
Cluster de 7 nodos.
- HP DL140 2P Intel Xeon.
- 1 GB RAM cada nodo.
- 80 GB SATA HD cada nodo.
- Red Gigabit Ethernet.
- S.O. Red Hat Enterprise
Linux v. 3.0. / CentOS.
- SAN HP MSA1000
7 x 148 GB SCSI
Aplicación:
Modelamiento de sequías para
cuencas prioritarias del Perú.
Proyecto Sequías SENAMHI –
INDECI.
Grid Computing
El término “Grid” en computación es un símil al termino
“malla” en terminología eléctrica.
Esto es, que desde cualquier punto de una red, cualquier
usuario puede hacer uso de toda la potencia de esta.
También se conoce como computación distribuida.
University of Texas Model Grid
Grid Computing
Ventajas
- Eficiente uso de recursos de computo ya que permite ahorrar
dinero.
- Disminuye el tiempo de respuesta para aplicaciones grandes.
- Compartir recursos para acceder a mayores recursos de
computo (procesamiento, memoria y almacenamiento.
Desventajas
- Exige tiempo dedicado a la instalación, configuración y pruebas
de software.
- Probables problemas de migración de aplicaciones para
portarlas al Grid.
- Largas sesiones de negociación y políticas de uso.
- Exige entrenamiento para el personal de staff y usuarios.
Principales Proyectos de Grid Computing
http://www.eurogrid.org/
http://www.teragrid.org/
http://www.eela-grid.org/
http://styx.esrin.esa.it/grid/
Software Libre en Grid Computing
Sistema Operativo Linux
Globus Toolkit
http://www.globus.org
Condor
http://www.cs.wisc.edu/condor/
MPICH
http://www-unix.mcs.anl.gov/mpi/mpich/
Referencias
• http://www.beowulf.org
• http://www.openmosix.org
• http://www.linux-ha.org/
• http://www.top500.org/
• http://www-1.ibm.com/grid/
• http://www.gridforum.org/
• http://www.sun.com/software/grid/
• http://lcic.org/
• http:///www.eu-eela.org/
[email protected]
[email protected]
Descargar