Sesc santana degeneradas2 - consumidoras consumidas - 16 mar 16
Nuevas tendencias en tolerancia a fallos para aplicaciones ... · Aplicaciones fallidas (261...
Transcript of Nuevas tendencias en tolerancia a fallos para aplicaciones ... · Aplicaciones fallidas (261...
Nuevas tendencias en tolerancia a fallos paraaplicaciones paralelas
María J. Martín
Grupo de Arquitectura de Computadores - CITICUniversidade da Coruña
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
1 IntroducciónContextoFallos en sistemas actualesObjetivos
2 Soluciones Stop-and-restart
3 Aplicaciones MPI Resilientes
4 Conclusiones
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 2 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Contexto
Supercomputadores actualesClusters de procesadores multinúcleo/GPUsAlto poder de cómputo „ 1015 FLOPSMiles de nodos y miles/millones de núcleos
Summit: No 1 lista top 500
36.000 procesadoresMás de 2 millones denúcleos200 PFLOPS
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 3 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Contexto
Era exaescalaDemandas computacionales continúan creciendo
Nuevos problemasBig Data
Próximo reto: computadores exaescala (1018 FLOPS)Principal limitación: consumo energético
Gran oportunidad para aplicaciones HPC, pero también unriesgoSistemas más grandes y más complejos ñÓ MTTF
MTTF (Mean Time To Failure): Tiempo medio hasta fallo
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 4 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Fallos en sistemas actuales
Fallossoftware
Falloshardware
Errores en especificaciones
Errores deimplementación
Defectos en componentes
Perturbaciones exteriores
Errores Avería
Activación Propagación
Atendiendo duración: transitorios, intermitentes o permanentes
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 5 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Fallos en sistemas actuales
Causas de fallosÓ Tamaño transistores ñÒ Fallos hardware
Radiación cósmicaVariaciones en la manufacturaEnvejecimiento más rápido
Ò Complejidad programación ñÒ Fallos softwareÒ No nodos ñÓ MTTF
Nodo de computación: 1 fallo cada sigloSistema con 100k nodos: 1 fallo cada 9 horas
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 6 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Fallos en sistemas actuales
Blue watersDi Martino, C., Kalbarczyk, Z., and Iyer, R. (2016). Measuring theresiliency of extreme-scale computing environments. In Principles ofPerformance and Reliability Modeling and Evaluation (pp. 609-655).Springer, Cham.
25k nodos, 380k núcleos, 11.6 PFLOPSAplicaciones fallidas (261 días): 9% total horas consumidasCoste en electricidad: 1/2 millón dólares
Futuros sistemas exaescala: tasa de fallos mayoresAplicaciones largas necesitan tolerancia a fallosTolerancia a fallos: capacidad de continuar funcionandodespués de un fallo
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 7 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Objetivos
MPI: estándar de facto aplicaciones HPC en sistemas distribuidos
ObjetivoAplicaciones MPI tolerantes a fallosConsideraremos:
Fallos hardware o software que interrumpen la ejecuciónde la aplicación
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 8 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
1 Introducción
2 Soluciones Stop-and-restartCheckpointingHerramienta de checkpointing CPPC
3 Aplicaciones MPI Resilientes
4 Conclusiones
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 9 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Checkpointing
Stop-and-restart
MPI carece de soporte para tolerancia a fallos
Solución tradicional: Stop-and-restart basado en checkpointing
Checkpointing
Guarda de forma periódica el estado de la aplicación
En caso de fallo, la aplicación continúa la ejecución desde el últimoestado guardado
CKPT CKPT
DISCO
FALLO
CKPT
Proceso Inicial
Nuevo Proceso
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 10 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Checkpointing
Características del checkpointing
Granularidad, Transparencia, Coordinación
GranularidadA nivel de sistema:
Se almacena el estado completoTransparente, sobrecarga alta, no portable
A nivel de aplicación:Se pueden almacenar solo datos necesariosMayor rendimiento, se necesita analizar el código
TransparenciaForma en la que se percibe la técnica a nivel de usuario
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 11 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Checkpointing
CoordinaciónLas aplicaciones paralelas necesitan coordinarse para evitarinconsistencias debido a las comunicaciones
Mensajes en tránsito: enviados pero que no han sido recibidosMensajes inconsistentes: recibidos pero que no han sido enviados
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 12 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Checkpointing
Protocolos de coordinaciónNo-coordinados
Baja sobrecarga en una ejecución sin fallosSusceptibles de efecto dominó en reinicioSe pueden combinar con logging de mensajes
CKPT 1,1
FALLO
CKPT 1,2
CKPT 2,1 CKPT 2,2
CKPT 3,1 CKPT 3,2
INICIO
P1
P2
P3
m1 m3
m2 m5
m4 m6 m7
m8
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 13 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Checkpointing
Protocolos de coordinaciónCoordinados
Los procesos se sincronizan para volcar un estado globalVentajas: Se simplifica el reinicioInconvenientes: Mayor sobrecarga en ejecución sin fallosDos implementaciones posibles:
Bloqueante: Requiere la interrupción de la computaciónNo bloqueante: No requiere la interrupción de lacomputación
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 14 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Herramienta de checkpointing CPPC
CPPC — Librería + CompiladorEl compilador instrumenta el código con llamadas a lalibrería
Registra las variables relevantesInserta llamadas de checkpoint
En puntos seguros para asegurar la consistenciaEn los lazos más costoso (cada N llamadas) para tener unafrecuencia adecuada
Volcado multi-hilo: solapa E/S y computación
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 15 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Herramienta de checkpointing CPPC
Protocolo de coordinación espacialProcesos hacen checkpoint de forma independiente Ñ NOsincronizaciones en tiempo de ejecuciónLlamadas de checkpoint en puntos seguros Ñcomunicaciones no pueden cruzar la línea de recuperación
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 16 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Herramienta de checkpointing CPPC
Puntos fuertes CPPCProtocolo coordinación espacialTamaño ficheros checkpoint
Otras alternativas para reducir tamaños: checkpointingincremental, compresión, ...
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 17 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
1 Introducción
2 Soluciones Stop-and-restart
3 Aplicaciones MPI ResilientesIntroducciónUser-level Failure Mitigation (ULFM)Aplicaciones MPI resilientes usando ULFMNuestra propuestaEvaluación experimental
4 Conclusiones
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 18 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Introducción
Soluciones stop-and-restart
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 19 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Introducción
Soluciones stop-and-restart
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 19 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Introducción
Soluciones stop-and-restart
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 19 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Introducción
Soluciones stop-and-restart
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 19 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Introducción
Soluciones stop-and-restart
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 19 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Introducción
Soluciones stop-and-restart
Asignación de diferentes nodos ñ contención de red
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 19 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Introducción
Aplicaciones resilientesLos fallos suelen tener un impacto localUn restart completo es innecesarioPara disminuir la sobrecarga ñ aplicaciones MPIresilientes
Son capaces de detectar y reaccionar a fallos sinabortar su ejecución
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 20 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
User-level Failure Mitigation (ULFM)
User-Level Failure Mitigation (ULFM)
Propuesto por el Fault Tolerance Working Group del MPIForumNo impone un modelo de recuperación concretoIncluye nuevas semánticas para:
Detectar fallosPropagar fallosReconfigurar comunicadores
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 21 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
User-level Failure Mitigation (ULFM)
Detección de erroresULFM define nuevos tipos de errores:
MPI_ERR_PROC_FAILEDMPI_ERR_PENDINGMPI_ERR_REVOKED
Emplea estructuras y funciones ya presentes en estándarFunciones MPI devuelven código errorLos manejadores de error permiten definir comportamientoen caso de error
MPI_ERRORS_ARE_FATAL: abortaMPI_ERRORS_RETURN: devuelve código de error
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 22 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
User-level Failure Mitigation (ULFM)
Detección de erroresPor defecto ULFM solo reporta errores para operacionescuya semántica no puede ser cumplida
Fallos detectados por supervivientes que mantienencomunicaciones con fallidos (MPI_ERR_PROC_FAILED)
Las operaciones MPI_ANY_SOURCE son interrumpidascon código de error especial (MPI_ERR_PENDING)
MPIX_Comm_failure_ack & MPIX_Comm_failure_get_ackedPermiten hacer acuse de recibo y determinar qué procesosdel comunicador han fallado
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 23 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
User-level Failure Mitigation (ULFM)
Propagación de fallos
MPIX_Comm_revokePropaga el error (MPI_ERR_REVOKED)Invalida el comunicador para futuras comunicaciones
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 24 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
User-level Failure Mitigation (ULFM)
Reconfiguración de los comunicadores
MPIX_Comm_Shrink: Crea un nuevo comunicador sin losprocesos fallidos
Restaura la capacidad de hacer comunicaciones colectivasAplicaciones no maleables:
MPI_Comm_Spawm genera procesos de reemplazo
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 25 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
User-level Failure Mitigation (ULFM)
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 26 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
User-level Failure Mitigation (ULFM)
MPIX_Comm_agree
Operación colectiva que permite consensuar un valorPermite la propagación del error de forma másestructuradaMete overhead en la ejecución sin fallos
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 27 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
Clasificación:shrinking o non-shrinking: Reducen o mantienen elnúmero de procesoshacia atrás o hacia adelante: Se restauran desde unestado previo o intentan encontrar un nuevo estado desdeel que continuarlocal o global: restaura una parte de la aplicación o laaplicación completa
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 28 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
Shrinking* Non-shrinking
*Algunos algoritmos iterativos, aplicaciones maestro-esclavo, ...
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 29 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
Inconvenientes solución shrinking
Impacto negativo en el rendimento si se pierden varios procesos
Se puede producir desbalanceo de la carga entre los procesossupervivientes
No siempre es aplicable
Solución non-shrinking
Genéricamente aplicable
Nuevas sobrecargas: transferencia de datos a nuevos procesos
Reincios posibles
Sin vuelta atrás, con vuelta atrás local, con vuelta atrás global
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 30 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
Inconvenientes solución shrinking
Impacto negativo en el rendimento si se pierden varios procesos
Se puede producir desbalanceo de la carga entre los procesossupervivientes
No siempre es aplicable
Solución non-shrinking
Genéricamente aplicable
Nuevas sobrecargas: transferencia de datos a nuevos procesos
Reincios posibles
Sin vuelta atrás, con vuelta atrás local, con vuelta atrás global
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 30 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
Inconvenientes solución shrinking
Impacto negativo en el rendimento si se pierden varios procesos
Se puede producir desbalanceo de la carga entre los procesossupervivientes
No siempre es aplicable
Solución non-shrinking
Genéricamente aplicable
Nuevas sobrecargas: transferencia de datos a nuevos procesos
Reincios posibles
Sin vuelta atrás, con vuelta atrás local, con vuelta atrás global
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 30 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
Detec. fallo Stop & restart La aplic. es abortadaResiliencia Notificación fallos a todos los proc. vivos1
Reconstruct.
Stop & restart La aplicación es relanzada
Resiliencia
ShrinkingAcuerdo sobre los procesos fallidosSe eliminan proc. fallidos del comunic.Rebalanceo de la carga
Non-shrinking
Acuerdo sobre los proc. fallidosSe eliminan proc. fallidos del comunic.Se generan nuevos procesos (spawn)2
Se reconstruye el comunicador
Restart
Stop & restart Recomputación desde el último ckpt
ResilienciaVuelta atrás global Recomputación desde el último ckptVuelta atrás local Recomputación de tareas fallidasSin vuelta atrás Recomputación no necesaria
1 En algunos casos es suficiente con notificar a un subconjunto de procesos vivos2 O activación de procesos de repuesto ya existentes
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 31 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
Detec. fallo Stop & restart La aplic. es abortadaResiliencia Notificación fallos a todos los proc. vivos1
Reconstruct.
Stop & restart La aplicación es relanzada
Resiliencia
ShrinkingAcuerdo sobre los procesos fallidosSe eliminan proc. fallidos del comunic.Rebalanceo de la carga
Non-shrinking
Acuerdo sobre los proc. fallidosSe eliminan proc. fallidos del comunic.Se generan nuevos procesos (spawn)2
Se reconstruye el comunicador
Restart
Stop & restart Recomputación desde el último ckpt
ResilienciaVuelta atrás global Recomputación desde el último ckptVuelta atrás local Recomputación de tareas fallidasSin vuelta atrás Recomputación no necesaria
1 En algunos casos es suficiente con notificar a un subconjunto de procesos vivos2 O activación de procesos de repuesto ya existentes
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 31 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
EvaluaciónTiempos detección Stop-and-restart vs resiliencia
Sistema & AplicacionesSupercomputador FinisTerrae-II del CESGA
Nodos: 2 ˆ Intel Xeon E5-2680 Ñ 24 núcleos & 128GB RAMRed: InfiniBand FDR 56Gb/s
3 aplicaciones:Himeno: resolutor ecuación PoissonMocfe: simula procedimientos principales de código de método de
características 3DSphot: transporte de fotones 2D (benchmarks ASC Sequoia)
1 proceso MPI por núcleo
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 32 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
N. Losada, M.J. Martín and P. González . Assessing resilient versus stop-and-restart
fault-tolerant solutions in MPI applications.The Journal of Supercomputing 73, 1
(2017), 316–329.
.0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
384 768 1536 3072 384 768 1536 3072 384 768 1536 3072
Number of processes / Application
Red
uctio
n (%
)
Process failure Node failure
SPhot Himeno Mocfe
Reducción media cuando falla un proceso: 47%Reducción media cuando falla un nodo: 79%
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 33 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
Detec. fallo Stop & restart La aplic. es abortadaResiliencia Notificación fallos a todos los proc. vivos1
Reconstruct.
Stop & restart La aplicación es relanzada
Resiliencia
ShrinkingAcuerdo sobre los procesos fallidosSe eliminan proc. fallidos del comunic.Rebalanceo de la carga
Non-shrinking
Acuerdo sobre los proc. fallidosSe eliminan proc. fallidos del comunic.Se generan nuevos procesos (spawn)2
Se reconstruye el comunicador
Restart
Stop & restart Recomputación desde el último ckpt
ResilienciaVuelta atrás global Recomputación desde el último ckptVuelta atrás local Recomputación de tareas fallidasSin vuelta atrás Recomputación no necesaria
1 En algunos casos es suficiente con notificar a un subconjunto de procesos vivos2 O activación de procesos de repuesto ya existentes
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 34 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
Reducción tiempo operaciones reconstrucción con ULFMAplicación MPI resiliente non-shrinking vs stop-and-restart
−20%
0%
20%
40%
60%
80%
100%
384 768 1536 3072 384 768 1536 3072 384 768 1536 3072
Number of processes / Application
Reduction (
%)
Process failure Node failure
SPhot Himeno Mocfe
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 35 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
Tiempo operaciones más costosas de la reconstrucciónSpawn de nuevos procesos y reconstrucción comunicadores
0
5
10
15
20
25
30
35
40
38
4
76
8
15
36
30
72
38
4
76
8
15
36
30
72
38
4
76
8
15
36
30
72
SPhot Himeno Mocfe
Number of processes / Application
Tim
e (
seconds)
Process re−spawning
Process failure stop−and−restart
Node failure stop−and−restart
Process failure resilience
Node failure resilience
0
2
4
6
8
10
38
4
76
8
15
36
30
72
38
4
76
8
15
36
30
72
38
4
76
8
15
36
30
72
SPhot Himeno Mocfe
Number of processes / Application
Reconfiguration global communicator
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 36 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Aplicaciones MPI resilientes usando ULFM
Detec. fallo Stop & restart La aplic. es abortadaResiliencia Notificación fallos a todos los proc. vivos1
Reconstruct.
Stop & restart La aplicación es relanzada
Resiliencia
ShrinkingAcuerdo sobre los procesos fallidosSe eliminan proc. fallidos del comunic.Rebalanceo de la carga
Non-shrinking
Acuerdo sobre los proc. fallidosSe eliminan proc. fallidos del comunic.Se generan nuevos procesos (spawn)2
Se reconstruye el comunicador
Restart
Stop & restart Recomputación desde el último ckpt
ResilienciaVuelta atrás global Recomputación desde el último ckptVuelta atrás local Recomputación de tareas fallidasSin vuelta atrás Recomputación no necesaria
1 En algunos casos es suficiente con notificar a un subconjunto de procesos vivos2 O activación de procesos de repuesto ya existentes
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 37 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Detec. fallo Stop & restart La aplic. es abortadaResiliencia Notificación fallos a todos los proc. vivos1
Reconstruct.
Stop & restart La aplicación es relanzada
Resiliencia
ShrinkingAcuerdo sobre los procesos fallidosSe eliminan proc. fallidos del comunic.Rebalanceo de la carga
Non-shrinking
Acuerdo sobre los proc. fallidosSe eliminan proc. fallidos del comunic.Se generan nuevos procesos (spawn)2
Se reconstruye el comunicador
Restart
Stop & restart Recomputación desde el último ckpt
ResilienciaVuelta atrás global Recomputación desde el último ckptVuelta atrás local Recomputación de tareas fallidasSin vuelta atrás Recomputación no necesaria
1 En algunos casos es suficiente con notificar a un subconjunto de procesos vivos2 O activación de procesos de repuesto ya existentes
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 38 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Nuestra propuestaVuelta atrás local para aplicaciones MPI SPMD genéricas
Sólo los procesos afectados por el fallo van atrás
Combina ULFM, CPPC y el logging de mensajesColaboración con Innovative Computing Laboratory (Univ.Tennessee)
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 39 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Primer paso: recuperación de los procesosSe utilizan las funcionalidades de ULFM
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 40 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Primer paso: recuperación de los procesosLos supervivientes que se comunican con un fallidodetectan el fallo y revocan comunicadores
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 40 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Primer paso: recuperación de los procesosEl error se propaga a todos los supervivientes
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 40 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Primer paso: recuperación de los procesosSupervivientes acuerdan procesos fallidosExcluyen procesos fallidos del comunicador
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 40 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Primer paso: recuperación de los procesosSe lanzan nuevos procesos para sustituir fallidosSe reconstruye el comunicador
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 40 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Segundo paso: Recuperación de la consistencia
Se negocia la linea de recuperaciónProcesos fallidos:
Recuperan los datos del fichero de checkpointingAvanzan desde la línea de recuperación a la línea de fallos
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 41 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Segundo paso - Progreso procesos fallidosPara llegar al mismo estado:
Algunos mensajes tienen que ser enviados de nuevoOtros tienen que ser saltados
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 42 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Segundo paso - Consistencia supervivientes
Hay que reenvíar también las comunicacionesinterrumpidas por los fallos
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 42 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Logging de los mensajesLogging a nivel de sistema para comunicaciones punto a
punto (VProtocol)Logging a nivel de aplicación para comunicaciones colectivas
Seguimiento de los mensajes
Utilizamos los SSIDs (Sender Sequence IDs) de losmensajes
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 43 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Reducción tamaño logs
Protocolo de coordinación espacial de CPPC:Comunicaciones no pueden cruzar línea recuperación ñLogs pueden ser borrados en líneas recuperación (Ó usomemoria).
Comunicaciones colectivas - Log a nivel de aplicación:No hace log de comunicaciones punto-a-punto internasReduce tamaño log en colectivas con copias intermedias
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 44 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Nuestra propuesta
Ejemplo: MPI_Allreduce con árbol binomial
Log comunicaciones punto-a-punto:2ˆ pNprocs ´ 1q ˆ Buffsize bytes
Log a nivel de aplicación:Nprocs ˆ Buffsize bytes
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 45 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Evaluación experimental
Sistema & ApplicacionesSupercomputador FinisTerrae-II del CESGA.
Nodos: 2 ˆ Intel Xeon E5-2680 Ñ 24 núcleos & 128GB RAMRed: InfiniBand FDR 56Gb/s
Checkpoints almacenados en disco (Lustre sobreInfiniBand)
4 aplicaciones: Himeno, Mocfe, Sphot, TealeafTealeaf: ecuación lineal conducción calor (proyecto Mantevo)1 proceso MPI por núcleo
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 46 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Evaluación experimental
Tiempos de ejecución originales en minutos
48P 96P 192P 384P 768PHIMENO 18.48 9.22 4.76 2.45 1.56MOCFE 20.49 8.26 4.75 2.41 1.48SPHOT 16.38 8.25 3.78 2.25 1.48
TEALEAF 17.50 9.31 4.28 2.35 1.79
PruebasComparación vuelta atrás local vs. vuelta atrás global
Ambas implementan resiliencia usando ULFMCheckpointing al 40% de la ejecución
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 47 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Evaluación experimental
Tiempos de ejecución originales en minutos
48P 96P 192P 384P 768PHIMENO 18.48 9.22 4.76 2.45 1.56MOCFE 20.49 8.26 4.75 2.41 1.48SPHOT 16.38 8.25 3.78 2.25 1.48
TEALEAF 17.50 9.31 4.28 2.35 1.79
PruebasComparación vuelta atrás local vs. vuelta atrás global
Ambas implementan resiliencia usando ULFMCheckpointing al 40% de la ejecución
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 47 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Evaluación experimental
Overhead en la ejecución sin fallosVuelta atrás local (ckpt+log) vs Vuelta atrás global (ckpt)
−5
0
5
10
15
20
25
30
35
40
45
50
48 96 192
384
768 48 96 19
238
476
8 48 96 192
384
768 48 96 19
238
476
8
0GB
10GB
20GB
30GB
40GB
50GB
60GB
70GB
Overh
ead
(seco
nd
s)
Ag
reg
ate
d c
kp
t fi
le s
ize (
GB
)
Number of processes
Local rollback: overhead
Global rollback: overhead
Local rollback: ckpt size
Global rollback: ckpt size
Himeno Mocfe Sphot Tealeaf
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 48 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Evaluación experimental
Overhead en la ejecución con fallos
Fallo al 75% de la ejecución (matando el último proceso).
Reducción (cuando se usa vuelta atrás local vs global) en:
Tiempo de ejecución extra y energía consumida
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
48 96 192
384
768 48 96 19
238
476
8 48 96 192
384
768 48 96 19
238
476
8
Re
du
cti
on
us
ing
th
e l
oc
al
rec
ov
ery
(%
)
Number of processes
Reduction in the failure overhead Reduction in the energy consumption
Himeno Mocfe Sphot Tealeaf
Reducción tiempo extra: 30% en media
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 49 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Evaluación experimental
0.0
0.5
1.0
1.5
2.0
2.5
3.0
48
96
19
23
84
76
8
48
96
19
23
84
76
8
48
96
19
23
84
76
8
48
96
19
23
84
76
8
Re
co
ve
ry o
pe
ratio
n t
ime
s (
se
co
nd
s)
ULFM recovery operations
Local rollback Global rollback
Himeno Mocfe Sphot Tealeaf
0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
10.0
48
96
19
23
84
76
8
48
96
19
23
84
76
8
48
96
19
23
84
76
8
48
96
19
23
84
76
8
CPPC reading
Himeno Mocfe Sphot Tealeaf
0.0
5.0
10.0
15.0
20.0
25.0
30.0
35.0
40.0
48
96
19
23
84
76
8
48
96
19
23
84
76
8
48
96
19
23
84
76
8
48
96
19
23
84
76
8
CPPC positioning
Himeno Mocfe Sphot Tealeaf
0.0
50.0
100.0
150.0
200.0
250.0
300.0
350.0
400.0
48
96
19
23
84
76
8
48
96
19
23
84
76
8
48
96
19
23
84
76
8
48
96
19
23
84
76
8
Failed re−computation
Himeno Mocfe Sphot Tealeaf
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 50 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
1 Introducción
2 Soluciones Stop-and-restart
3 Aplicaciones MPI Resilientes
4 ConclusionesConclusiones
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 51 / 53
Introducción Soluciones Stop-and-restart Aplicaciones MPI Resilientes Conclusiones
Conclusiones
ConclusionesÒ Núm. procesadores ñ Ó MTTFSoluciones tradicionales:
Stop-and-restartñ Ò overheadAlternativa:
Aplicaciones resilientes
ULFM funciones básicas de bajo nivel para construiraplicaciones resilientes ñ No trivialSe necesitan librerías más alto nivel para facilitardesarrollo aplicaciones resilientes
XXX Jornadas de Paralelismo, Cáceres, Septiembre 2019 52 / 53
Nuevas tendencias en tolerancia a fallos paraaplicaciones paralelas
María J. Martín
Grupo de Arquitectura de Computadores - CITICUniversidade da Coruña