Вы находитесь на странице: 1из 35

SERGIO NESMACHNOW SERGIO NESMACHNOW

Centro de Clculo, Instituto de Computacin


TUTORIAL : COMPUTACIN de
ALTO DESEMPEO
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Centro de Clculo, Instituto de Computacin
FACULTAD DE INGENIERA, UNIVERSIDAD DE LA REPBLICA, URUGUAY
Introduccin
Computadores paralelos
Tcnicas de programacin paralela
Aplicaciones
Conclusiones
CONTENIDO
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Conclusiones
Importancia de poder satisfacer los requisitos crecientes de poder de
cmputo
Problemas complicados.
Modelos complejos.
Grandes volmenes de datos.
Capacidad de respuesta en tiempo limitado (sistemas de tiempo real).
INTRODUCCIN
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Capacidad de respuesta en tiempo limitado (sistemas de tiempo real).
Procesamiento paralelo
Varios procesos cooperan para resolver problema comn.
Aplicacin de tcnicas de divisin de tareas o de datos para reducir el
tiempo de ejecucin de un proceso o una aplicacin, mediante la
resolucin simultnea de algunos de los subproblemas generados.
Computador paralelo
Conjunto de procesadores capaces de trabajar cooperativamente en
la resolucin de problemas computacionales.
La definicin incluye un amplio espectro: supercomputadoras,
procesadores masivamente paralelos (MPP), clusters, etc.
Caracterstica fundamental: disponibilidad de mltiples recursos de
cmputo.
INTRODUCCIN
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
cmputo.
Computacin de alto desempeo
Ha dejado de ser extica.
Posibilitada por avances en diferentes tecnologas:
Poder de procesamiento (microprocesadores).
Redes (comunicacin de datos).
Desarrollo de bibliotecas e interfaces para programacin.
EVOLUCIN TECNOLGICA
Collosus 2 (UK), primer computador
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
IBM 7030 Stretch (LANL, USA),
1.2 MFLOPS.
Zuse Z1 (Ale), primer
computador mecnico: 1 op/s.
Collosus 2 (UK), primer computador
paralelo: 50.000 op/s.
ENIAC (USA), 5.000 op/s.
IBM NORC (Columbia U, USA),
reloj de 1 s., 67.000 op/s.
1938
1946
1948
1954
1964
Intel ASCI Red/9152 (Sandia NL, USA): 1.338 TFLOPS
EVOLUCIN TECNOLGICA
M-13 (Nauchno-Issledovatesky Institute
Vychislitelnyh Kompleksov, URSS): 2.4 GFLOPS
1985
2008
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Intel ASCI Red/9152 (Sandia NL, USA): 1.338 TFLOPS
1984
1985
1997
2008
Roadrunner (LANL, USA):
1.026 PFLOPS
Cray-2/8 (LANL, USA):
3.9 GFLOPS.
Similar comportamiento para los indicadores de desempeo.
Poder de cmputo.
Frecuencia de relojes.
Densidad de circuitos en chips de procesadores.
Capacidad de almacenamiento secundario.
Capacidad de transmisin por bus/red.
EVOLUCIN TECNOLGICA
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Capacidad de transmisin por bus/red.
Siguen un comportamiento exponencial, con diferentes
pendientes.
Noviembre de 2011:
K computer (RIKEN Advance Institute for Computational Science, Japn)
Pico de desempeo real (LINPACK): 10.5 petaflops (10.5 10
15
operaciones de
punto flotante por segundo)
Pico terico: 11.3 petaflop/s.
Fujistsu cluster.
68.544 SPARC64 VIIIfx procesadores 2.0 GHz, 8-core.
EVOLUCIN TECNOLGICA
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
68.544 SPARC64 VIIIfx procesadores 2.0 GHz, 8-core.
1410 terabytes de memoria.
705.024 ncleos de procesamiento.
Red de interconexin de seis dimensiones, interfaz basada en Open MPI.
Sistema operativo basado en Linux.
File system paralelo basado en Lustre, optimizado para escalar hasta
varios cientos de petabytes.
Kei
EVOLUCIN TECNOLGICA
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
EVOLUCIN TECNOLGICA: ARQUITECTURAS
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
EVOLUCIN TECNOLGICA: SISTEMAS OPERATIVOS
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
La tecnologa ha avanzado, permitiendo disponer de mquinas
paralelas caseras.
Clusters de computadores de bajo costo.
Internet surge como una fuente potencial de recursos de
computacin ilimitados.
Se ha desarrollando la tecnologa grid (y recientemente cloud):
INFRAESTRUCTURA
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Se ha desarrollando la tecnologa grid (y recientemente cloud):
Permiten compartir recursos informticos (locales o remotos) como si
fueran parte de un nico computador.
Brinda capacidad de gestionar y distribuir la potencia de clculo
disponible en instituciones (investigacin, empresas, etc.)
Empresas e investigadores trabajan en diseo de soluciones
tecnolgicas en este sentido.
Estas alternativas constituyen opciones realistas para disponer de
la capacidad de cmputo para resolver problemas en los entornos
acadmicos, industriales y empresariales, a bajo costo.
Infraestructura de cmputo de alto desempeo de la Facultad de Ingeniera
EL CLUSTER FING
1364 ncleos de procesamiento (404 de CPU y 960 de GPU)
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
http://www.fing.edu.uy/cluster
CLUSTER FING
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
www.fing.edu.uy/cluster
Requerimientos computacionales de problemas complejos.
LOS PROBLEMAS TAMBIN CRECEN
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
En este contexto se ha desarrollado activamente la
computacin paralela:
Basado en el estudio en Universidades e Institutos.
Aplicado directamente en la industria, organismos cientficos y
las empresas.
Computacin paralela:
A nivel de instrucciones (pipeline).
PROCESAMIENTO PARALELO
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
A nivel de instrucciones (pipeline).
Paralelismo a travs de hilos (multithreading).
Paralelismo de alto nivel:
Sobre supercomputadores
Sobre mquinas paralelas de bajo costo
Computacin paralela de alto nivel:
Varios procesos en ejecucin simultnea cooperan
para resolver un problema comn
El desarrollo de las redes de computadoras ha permitido el
procesamiento distribuido.
Clusters distribuidos, grid computing y cloud computing.
Conceptos
Procesadores independientes, con autonoma de procesamiento.
Interconexin mediante redes.
PROCESAMIENTO DISTRIBUIDO
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Cooperacin para lograr un objetivo global.
Datos compartidos: varios repositorios de datos.
Sincronizacin y comunicacin:
En general a travs del pasaje explcito de mensajes.
La computacin paralela tiene como principal objetivo la resolucin
eficiente de instancias de grandes dimensiones de problemas
complejos.
Adems, desde el punto de vista del usuario, la computacin paralela
debe proveer:
Transparencia de la arquitectura y de los mecanismos de interconexin.
OBJETIVOS DE LA PROGRAMACIN PARALELA
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Transparencia de la arquitectura y de los mecanismos de interconexin.
Simplicidad de uso y confiabilidad.
Manejo de excepciones y tolerancia a fallos.
Mecanismos para asegurar la portabilidad y la ejecucin en entornos
heterogneos.
Soporte para lenguajes tradicionales de alto nivel.
Las tcnicas de programacin paralela aplican estrategias de
DESCOMPOSICIN o PARTICIONAMIENTO de datos y de cmputo,
para dividir un problema en subproblemas de menor complejidad.
El objetivo primario de la descomposicin ser dividir en forma
equitativa tanto los clculos asociados con el problema como los
datos sobre los cuales opera el algoritmo.
TCNICAS DE PROGRAMACIN PARALELA
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
datos sobre los cuales opera el algoritmo.
Segn se enfoque principalmente en la descomposicin de datos o
de tareas, resulta una tcnica diferente de programacin paralela.
Las tcnicas ms difundidas son las de descomposicin
de dominio y descomposicin funcional.
DESCOMPOSICIN DE DOMINIO
Se concentra en particionar los datos del problema
Dividindolos en piezas de (aproximadamente) el mismo tamao
Luego se dividen los clculos a realizar
Los datos a dividir pueden ser:
La entrada del programa
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
La salida calculada por el programa
Datos intermedios calculados por el programa
No existe una regla general para realizar la divisin de datos,
existen algunas sugerencias dadas por:
La estructura o geometra del problema
La idea de concentrarse primero en las estructuras de datos
ms grandes o las accedidas con mayor frecuencia
DESCOMPOSICIN DE DOMINIO
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Host o Nodo Intermedio
Cargar un Par de datos tiempo1
tiempo2 Multiplicar
.
.
.
1. - Cargar programa
2. - Broadcast de Instruccin
DESCOMPOSICIN DE DOMINIO
MODELO DE PROGRAMA, PROCESAMIENTO SINCRNICO
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Nodo 1
Cargar A, B
tiempo1
tiempo2 A = A x B
.
.
.
.
.
Nodo 2
Cargar C, D
C = C x D
.
.
.
Nodo 3
Cargar E, F
E = E x F
.
.
.
Los nodos reciben y ejecutan
Distribuir datos
Calcular Calcular Calcular Calcular
DESCOMPOSICIN DE DOMINIO
MODELO DE PROGRAMA, PROCESAMIENTO ASINCRNICO
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Recolectar resultados
Calcular
Comunicar/sincronizar
Calcular
Calcular
Comunicar/sincronizar
Calcular
Calcular
Comunicar/sincronizar
Calcular
Calcular
Comunicar/sincronizar
Calcular
Nodo 1
Conseguir datos
if ... positivo
Hacer algo
Nodo 2
Conseguir datos
if ... positivo
Hacer algo
Nodo 3
Conseguir datos
if ... positivo
Hacer algo
Un mismo programa se ejecuta sobre diferentes conjuntos de datos
DESCOMPOSICIN DE DOMINIO
MODELO DE PROGRAMA, PROCESAMIENTO ASINCRNICO
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
- Todos los nodos ejecutan el mismo programa, pero no las mismas instrucciones
Hacer algo
if ... negati vo
Hacer otra cosa
if ... es cero
Hacer una tercer
cosa
Hacer algo
if ... negati vo
Hacer otra cosa
if ... es cero
Hacer una tercer
cosa
Hacer algo
if ... negativo
Hacer otra cosa
if ... es cero
Hacer una tercer
cosa
Todos los nodos ejecutan el mismo programa, pero no necesariamente
las mismas instrucciones.
Procesamiento distribuido en Internet.
Objetivos:
Bsqueda de indicios de inteligencia extraterrestre.
Demostracin prctica de la utilidad de la computacin distribuida.
Lanzado en 1999, precursor de ms de 100 proyectos cientficos en el rea.
6 millones de participantes, 3 millones de hosts, 800 TFLOPS.
Ms de 2 millones de aos de cmputo.
EJEMPLO: SETI@HOME
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Ms de 2 millones de aos de cmputo.
DESCOMPOSICIN DE DOMINIO
SETI@HOME
Distribuir datos
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Calcular
Enviar
resultados
Recolectar resultados
Calcular
Enviar
resultados
Calcular
Enviar
resultados
Calcular
Enviar
resultados
Se concentra en particionar las operaciones del problema
Se trata de dividir el procesamiento en tareas disjuntas
Luego se examinan los datos a utilizar por las tareas definidas
Caso tpico:
Distribuir cdigo para asociar requerimientos a recursos locales
Cada tarea trabaja temporalmente con sus datos locales, pero se
requiere comunicacin para lograr la cooperacin
DESCOMPOSICIN FUNCIONAL
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
requiere comunicacin para lograr la cooperacin
set de instrucciones del problema
tarea 1
tarea 2
tarea 3
tarea 4
Programa principal
Inicializacin
Ejecutar seccin secuencial
Configurar segmentos paralelos
Bifurcar segmentos paralelos
Segmento paralelo 1 Segmento paralelo 2 Segmento paralelo 3
DESCOMPOSICIN FUNCIONAL
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Segmento paralelo 1
Ejecutar una rutina
independiente
Iniciar/recibir comunicaciones
Segmento paralelo 2
Ejecutar una rutina
independiente
Iniciar/recibir comunicaciones
Segmento paralelo 3
Ejecutar una rutina
independiente
Iniciar/recibir comunicaciones
Esperar finalizacin de
segmentos paralelos
Recibir resultados y
combinarlos
Realizar operaciones adicionales previendo que deban ser
ejecutadas en el futuro (look-ahead execution)
Bajo la hiptesis de que hay recursos disponibles para ejecutarlas.
if condicion then
Funcion1()
else
Funcion2()
PARALELISMO OPTIMISTA
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Funcion2()
end if
Evaluar Funcin1() y Funcion2() de antemano, independientemente
del valor de la condicin.
Tpico en aplicaciones de tiempo real.
Ejemplo : sistemas que requieren conexin, cajeros automticos.
Tpico mecanismo para proveer tolerancia a fallos.
En aplicaciones distribuidas en Internet.
Incluyen dos o ms tipos de programacin paralela para la
resolucin de una misma aplicacin.
Comnmente utilizados en programas paralelos distribuidos
en Internet (donde existe la posibilidad de disponer de
recursos ociosos adicionales).
Combina una estrategia tradicional con el paralelismo
MODELOS HBRIDOS
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Combina una estrategia tradicional con el paralelismo
optimista, para mejorar la eficiencia o proveer tolerancia a fallos.
Las principales ventajas son eficiencia y robustez, aunque el
manejo de los distintos modelos de paralelismo puede incluir
complejidades adicionales.
Existen lenguajes y bibliotecas que permiten desarrollar
programas paralelos en alto nivel
Proveen abstraccin del computador paralelo subyacente
Permiten implementar la cooperacin de varios procesos para
resolver el problema comn
Proveen primitivas/funciones para sincronizacin de procesos,
comunicacin de datos, etc.
IMPLEMENTACIN
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Proveen primitivas/funciones para sincronizacin de procesos,
comunicacin de datos, etc.
Proporcionan diversos mecanismos para implementar tolerancia
a fallos y excepciones.
Dan soporte para asegurar la portabilidad y garantizar la
ejecucin en entornos paralelos heterogneos.
Amplia aplicabilidad en problemas cientficos.
Industriales.
Qumica y bioingeniera.
Estudio de estructuras moleculares, simulacin de
reacciones, espectroscopa.
Fluidodinmica.
Anlisis de flujos, turbulencias y simulaciones.
APLICACIONES de la COMPUTACIN
de ALTO DESEMPEO
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Anlisis de flujos, turbulencias y simulaciones.
Mecnica Industrial
Diseo asistido. Modelos de elementos finitos.
Medicina
Estudio del genoma, medicina farmacutica,
radioterapia.
Electromagnetismo
Diseo de dispositivos de grabacin, instrumentos
mdicos, tubos de rayos X, pantallas planas.
Comerciales
Telecomunicaciones
Anlisis de trfico, desempeo y calidad de servicio.
Redes de control inteligentes.
Comercio electrnico
Manejo transaccional en lnea.
APLICACIONES de la COMPUTACIN
de ALTO DESEMPEO
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Servicios web.
Buscadores paralelos (metabuscadores).
Sistemas de tiempo real.
Bases de datos paralelas.
Anlisis de datos.
Data mining.
Anlisis de mercado, series temporales, etc.
Curso de grado, posgrado y actualizacin, Facultad de Ingeniera
Dictado ininterrumpidamente desde 1993
Solo tiene como requisitos previos conocimientos bsicos de
computacin
Amplia gama de asistentes, de varias Facultades, empresas, etc.
Dictado en el segundo semestre de cada ao.
COMPUTACIN de ALTO DESEMPEO
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
Dictado en el segundo semestre de cada ao.
Detalles en: www.fing.edu.uy/inco/cursos/hpc
GRACIAS POR SU ATENCIN
TUTORIAL: COMPUTACIN de ALTO DESEMPEO TUTORIAL: COMPUTACIN de ALTO DESEMPEO
FACULTAD DE INGENIERA, UNIVERSIDAD DE LA REPBLICA, URUGUAY

Вам также может понравиться