6 research outputs found

    AI-Ckpt: Leveraging Memory Access Patterns for Adaptive Asynchronous Incremental Checkpointing

    Get PDF
    International audienceWith increasing scale and complexity of supercomputing and cloud computing architectures, faults are becoming a frequent occurrence, which makes reliability a difficult challenge. Although for some applications it is enough to restart failed tasks, there is a large class of applications where tasks run for a long time or are tightly coupled, thus making a restart from scratch unfeasible. Checkpoint-Restart (CR), the main method to survive failures for such applications faces additional challenges in this context: not only does it need to minimize the performance overhead on the application due to checkpointing, but it also needs to operate with scarce resources. Given the iterative nature of the targeted applications, we launch the assumption that first-time writes to memory during asynchronous checkpointing generate the same kind of interference as they did in past iterations. Based on this assumption, we propose novel asynchronous checkpointing approach that leverages both current and past access pattern trends in order to optimize the order in which memory pages are flushed to stable storage. Large scale experiments show up to 60% improvement when compared to state-of-art checkpointing approaches, all this achievable with an extra memory requirement of less than 5% of the total application memory

    Detection and Correction of Silent Data Corruption for Large-Scale High-Performance Computing

    Full text link

    Una metodolog铆a de detecci贸n de fallos transitorios en aplicaciones paralelas sobre cluster de multicores

    Get PDF
    El aumento en la escala de integraci贸n, con el objetivo de mejorar las prestaciones en los procesadores actuales, sumado al crecimiento de los sistemas de c贸mputo, han producido que la fiabilidad se haya vuelto un aspecto relevante. En particular, la creciente vulnerabilidad a los fallos transitorios se ha vuelto cr铆tica, a causa de la capacidad de estos fallos de corromper los resultados de las aplicaciones. Hist贸ricamente, los fallos transitorios han sido una preocupaci贸n en el dise帽o de sistemas cr铆ticos, como sistemas de vuelo o servidores de alta disponibilidad, en los que las consecuencias del fallo pueden resultar desastrosas. Pese a ser fallos temporarios, tienen la capacidad de alterar el comportamiento del sistema de c贸mputo. A partir del a帽o 2000 se han vuelto m谩s frecuentes los reportes de desperfectos significativos en distintas supercomputadoras, debidos a los fallos transitorios. El impacto de los fallos transitorios se vuelve m谩s relevante en el contexto del C贸mputo de Altas Prestaciones (HPC). Aun cuando el tiempo medio entre fallos (MTBF) es del orden de 2 a帽os para un procesador comercial, en el caso de una supercomputadora con cientos o miles de procesadores que cooperan para resolver una tarea, el MTBF disminuye cuanto mayor es la cantidad de procesadores. Esta situaci贸n se agrava con el advenimiento de los procesadores multicore y las arquitecturas de cluster de multicores, que incorporan un alto grado de paralelismo a nivel de hardware. La incidencia de los fallos transitorios es a煤n mayor en el caso de aplicaciones de gran duraci贸n, que manejan elevados vol煤menes de datos, dado el alto costo (en t茅rminos de tiempo y utilizaci贸n de recursos) que implica volver a lanzar la ejecuci贸n desde el comienzo, en caso de obtener resulta-dos incorrectos debido a la ocurrencia del fallo. Estos factores justifican la necesidad de desarrollar estrategias espec铆ficas para mejorar la con-fiabilidad en sistemas de HPC; en este sentido, es crucial poder detectar los fallos llamados silenciosos, que alteran los resultados de las aplicaciones pero que no son interceptados por el sistema operativo ni ninguna otra capa de software del sistema, por lo que no causan la finalizaci贸n abrupta de la ejecuci贸n. En este contexto, el trabajo analizar谩 una metodolog铆a distribuida basada en software, dise帽ada para aplicaciones paralelas cient铆ficas que utilizan paso de mensajes, capaz de detectar fallos transitorios mediante la validaci贸n de contenidos de los mensajes que se van a enviar a otro proceso de la aplicaci贸n. Esta metodolog铆a, previamente publicada, intenta abordar un problema no cubierto por las propuestas existentes, detectando los fallos transitorios que permiten la continuidad de la ejecuci贸n pero que son capaces de corromper los resultados finales, mejorando la confiabilidad del sistema y disminuyendo el tiempo luego del cual se puede relanzar la aplicaci贸n, lo cual es especialmente 煤til en ejecuciones prolongadas.Facultad de Inform谩tic

    Una metodolog铆a de detecci贸n de fallos transitorios en aplicaciones paralelas sobre cluster de multicores

    Get PDF
    El aumento en la escala de integraci贸n, con el objetivo de mejorar las prestaciones en los procesadores actuales, sumado al crecimiento de los sistemas de c贸mputo, han producido que la fiabilidad se haya vuelto un aspecto relevante. En particular, la creciente vulnerabilidad a los fallos transitorios se ha vuelto cr铆tica, a causa de la capacidad de estos fallos de corromper los resultados de las aplicaciones. Hist贸ricamente, los fallos transitorios han sido una preocupaci贸n en el dise帽o de sistemas cr铆ticos, como sistemas de vuelo o servidores de alta disponibilidad, en los que las consecuencias del fallo pueden resultar desastrosas. Pese a ser fallos temporarios, tienen la capacidad de alterar el comportamiento del sistema de c贸mputo. A partir del a帽o 2000 se han vuelto m谩s frecuentes los reportes de desperfectos significativos en distintas supercomputadoras, debidos a los fallos transitorios. El impacto de los fallos transitorios se vuelve m谩s relevante en el contexto del C贸mputo de Altas Prestaciones (HPC). Aun cuando el tiempo medio entre fallos (MTBF) es del orden de 2 a帽os para un procesador comercial, en el caso de una supercomputadora con cientos o miles de procesadores que cooperan para resolver una tarea, el MTBF disminuye cuanto mayor es la cantidad de procesadores. Esta situaci贸n se agrava con el advenimiento de los procesadores multicore y las arquitecturas de cluster de multicores, que incorporan un alto grado de paralelismo a nivel de hardware. La incidencia de los fallos transitorios es a煤n mayor en el caso de aplicaciones de gran duraci贸n, que manejan elevados vol煤menes de datos, dado el alto costo (en t茅rminos de tiempo y utilizaci贸n de recursos) que implica volver a lanzar la ejecuci贸n desde el comienzo, en caso de obtener resulta-dos incorrectos debido a la ocurrencia del fallo. Estos factores justifican la necesidad de desarrollar estrategias espec铆ficas para mejorar la con-fiabilidad en sistemas de HPC; en este sentido, es crucial poder detectar los fallos llamados silenciosos, que alteran los resultados de las aplicaciones pero que no son interceptados por el sistema operativo ni ninguna otra capa de software del sistema, por lo que no causan la finalizaci贸n abrupta de la ejecuci贸n. En este contexto, el trabajo analizar谩 una metodolog铆a distribuida basada en software, dise帽ada para aplicaciones paralelas cient铆ficas que utilizan paso de mensajes, capaz de detectar fallos transitorios mediante la validaci贸n de contenidos de los mensajes que se van a enviar a otro proceso de la aplicaci贸n. Esta metodolog铆a, previamente publicada, intenta abordar un problema no cubierto por las propuestas existentes, detectando los fallos transitorios que permiten la continuidad de la ejecuci贸n pero que son capaces de corromper los resultados finales, mejorando la confiabilidad del sistema y disminuyendo el tiempo luego del cual se puede relanzar la aplicaci贸n, lo cual es especialmente 煤til en ejecuciones prolongadas.Facultad de Inform谩tic

    SEDAR: Detecci贸n y recuperaci贸n autom谩tica de fallos transitorios en sistemas de c贸mputo de altas prestaciones

    Get PDF
    El manejo de fallos es una preocupaci贸n creciente en el contexto del HPC; en el futuro, se esperan mayores variedades y tasas de errores, intervalos de detecci贸n m谩s largos y fallos silenciosos. Se proyecta que, en los pr贸ximos sistemas de exa-escala, los errores ocurran incluso varias veces al d铆a y se propaguen en grandes aplicaciones paralelas, generando desde ca铆das de procesos hasta corrupciones de resultados debidas a fallos no detectados. En este trabajo se propone SEDAR, una metodolog铆a que mejora la fiabilidad, frente a los fallos transitorios, de un sistema que ejecuta aplicaciones paralelas de paso de mensajes. La soluci贸n dise帽ada, basada en replicaci贸n de procesos para la detecci贸n, combinada con diferentes niveles de checkpointing (checkpoints de nivel de sistema o de nivel de aplicaci贸n) para recuperar autom谩ticamente, tiene el objetivo de ayudar a los usuarios de aplicaciones cient铆ficas a obtener ejecuciones confiables con resultados correctos. La detecci贸n se logra replicando internamente cada proceso de la aplicaci贸n en threads y monitorizando los contenidos de los mensajes entre los threads antes de enviar a otro proceso; adem谩s, los resultados finales se validan para prevenir la corrupci贸n del c贸mputo local. Esta estrategia permite relanzar la ejecuci贸n desde el comienzo ni bien se produce la detecci贸n, sin esperar innecesariamente hasta la conclusi贸n incorrecta. Para la recuperaci贸n, se utilizan checkpoints de nivel de sistema, pero debido a que no existe garant铆a de que un checkpoint particular no contenga errores silenciosos latentes, se requiere el almacenamiento y mantenimiento de m煤ltiples checkpoints, y se implementa un mecanismo para reintentar recuperaciones sucesivas desde checkpoints previos si el mismo error se detecta nuevamente. La 煤ltima opci贸n es utilizar un 煤nico checkpoint de capa de aplicaci贸n, que puede ser verificado para asegurar su validez como punto de recuperaci贸n seguro. En consecuencia, SEDAR se estructura en tres niveles: (1) s贸lo detecci贸n y parada segura con notificaci贸n al usuario; (2) recuperaci贸n basada en una cadena de checkpoints de nivel de sistema; y (3) recuperaci贸n basada en un 煤nico checkpoint v谩lido de capa de aplicaci贸n. Cada una de estas variantes brinda una cobertura particular, pero tiene limitaciones inherentes y costos propios de implementaci贸n; la posibilidad de elegir entre ellos provee flexibilidad para adaptar la relaci贸n costo-beneficio a las necesidades de un sistema particular. Se presenta una descripci贸n completa de la metodolog铆a, su comportamiento en presencia de fallos y los overheads temporales de emplear cada una de las alternativas. Se describe un modelo que considera varios escenarios de fallos y sus efectos predecibles sobre una aplicaci贸n de prueba para realizar una verificaci贸n funcional. Adem谩s, se lleva a cabo una validaci贸n experimental sobre una implementaci贸n real de la herramienta SEDAR, utilizando diferentes benchmarks con patrones de comunicaci贸n dis铆miles. El comportamiento en presencia de fallos, inyectados controladamente en distintos momentos de la ejecuci贸n, permite evaluar el desempe帽o y caracterizar el overhead asociado a su utilizaci贸n. Tomando en cuenta esto, tambi茅n se establecen las condiciones bajo las cuales vale la pena comenzar con la protecci贸n y almacenar varios checkpoints para recuperar, en lugar de simplemente detectar, detener la ejecuci贸n y relanzar. Las posibilidades de configurar el modo de uso, adapt谩ndolo a los requerimientos de cobertura y m谩ximo overhead permitido de un sistema particular, muestran que SEDAR es una metodolog铆a eficaz y viable para la tolerancia a fallos transitorios en entornos de HPC.Tesis con direcci贸n conjunta por convenio de colaboraci贸n entre la Universidad Nacional de La Plata (UNLP) y la Universidad Aut贸noma de Barcelona (UAB).Facultad de Inform谩tic

    Transparent redundant computing with mpi

    No full text
    Abstract. Extreme-scale parallel systems will require alternative methods for applications to maintain current levels of uninterrupted execution. Redundant computation is one approach to consider, if the benefits of increased resiliency outweigh the cost of consuming additional resources. We describe a transparent redundancy approach for MPI applications and detail two different implementations that provide the ability to tolerate a range of failure scenarios, including loss of application processes and connectivity. We compare these two approaches and show performance results from micro-benchmarks that bound worst-case message passing performance degradation. We propose several enhancements that could lower the overhead of providing resiliency through redundancy
    corecore