Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tutorial HPC
Tutorial HPC
ALTO DESEMPEÑO
SERGIO NESMACHNOW
Centro de Cálculo, Instituto de Computación
• Introducción
• Computadores paralelos
• Técnicas de programación paralela
• Aplicaciones
• Conclusiones
• Procesamiento paralelo
– Varios procesos cooperan para resolver problema común.
– Aplicación de técnicas de división de tareas o de datos para reducir el
tiempo de ejecución de un proceso o una aplicación, mediante la
resolución simultánea de algunos de los subproblemas generados.
1984 1997
Cray-2/8 (LANL, USA): Roadrunner (LANL, USA):
3.9 GFLOPS. 1.026 PFLOPS
Kei
http://www.fing.edu.uy/cluster
TUTORIAL: COMPUTACIÓN de ALTO DESEMPEÑO
CLUSTER FING
www.fing.edu.uy/cluster
TUTORIAL: COMPUTACIÓN de ALTO DESEMPEÑO
LOS PROBLEMAS TAMBIÉN CRECEN
• Requerimientos computacionales de problemas complejos.
• Conceptos
– Procesadores independientes, con autonomía de procesamiento.
– Interconexión mediante redes.
– Cooperación para lograr un objetivo global.
– Datos compartidos: varios “repositorios” de datos.
– Sincronización y comunicación:
– En general a través del pasaje explícito de mensajes.
1. - Cargar programa
2. - Broadcast de Instrucción Host o Nodo Intermedio
Cargar un Par de datos tiempo1
Multiplicar tiempo2
..
.
Distribuir datos
Recolectar resultados
Distribuir datos
Recolectar resultados
tarea 1
tarea 4
tarea 2
tarea 3
Esperar finalización de
segmentos paralelos
Recibir resultados y
combinarlos
TUTORIAL: COMPUTACIÓN de ALTO DESEMPEÑO
PARALELISMO OPTIMISTA
• Realizar operaciones adicionales previendo que deban ser
ejecutadas en el futuro (look-ahead execution)
– Bajo la hipótesis de que hay recursos disponibles para ejecutarlas.
if condicion then
Funcion1()
else
Funcion2()
end if
– Evaluar Función1() y Funcion2() de antemano, independientemente
del valor de la condición.
• Típico en aplicaciones de tiempo real.
– Ejemplo : sistemas que requieren conexión, cajeros automáticos.
• Típico mecanismo para proveer tolerancia a fallos.
– En aplicaciones distribuidas en Internet.