89 research outputs found
Una metodología de detección de fallos transitorios en aplicaciones paralelas sobre cluster de multicores
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
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
Una metodología de detección de fallos transitorios en aplicaciones paralelas sobre cluster de multicores
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
Propuesta de tesis: tratamiento de fallos transitorios en entornos de cluster de multicores
El objetivo de mejorar el rendimiento en las computadoras actuales ha producido el reto de utilizar mayor cantidad de transistores (mayor densidad) y aumentar la frecuencia de operación, además de una disminución en la tensión de alimentación.
Todo esto se traduce en un aumento en la temperatura y una mayor cantidad de interferencias, provenientes del entorno, que afectan a los procesadores. Además, con el advenimiento de los multicores y los manycores, se han integrado varios núcleos de procesamiento en el mismo chip. La combinación de todos estos factores tiene como consecuencia que las computadoras sean cada vez menos robustas frente a la ocurrencia de fallos transitorios.
El presente trabajo de Tesis se enfoca en el tratamiento de fallos transitorios que ocurren en los registros internos de los cores que conforman un procesador actual, en el contexto de un cluster de multicores en el que se está ejecutando una aplicación científica, de cómputo intensivo. Estos fallos pueden afectar tanto a datos como a instrucciones o direcciones.
El centro de atención está puesto en los fallos silenciosos, aquellos que producen corrupciones de datos que alteran la ejecución del programa, pero sin provocar violaciones detectables a nivel del sistema operativo. La ocurrencia de estos fallos se traduce en la ejecución del programa con parámetros erróneos, de modo que proporciona resultados incorrectos.
En este contexto, el objetivo del trabajo de Tesis es el diseño y desarrollo de un sistema de middleware que detecte y tolere los fallos transitorios en un entorno de cluster de multicores, de manera transparente al usuario, manteniendo un nivel de robustez especificado y optimizando la utilización de recursos en los multicores para minimizar la ineficiencia que implica replicar y comparar toda la ejecución.Presentado en el Encuentro de Tesistas de PostgradoRed de Universidades con Carreras en Informática (RedUNCI
SEDAR: Soft Error Detection and Automatic Recovery in High Performance Computing Systems
In the context of high error rates, unreliable results and high verification costs, the aim of this thesis is to help scientists and programmers of parallel applications to provide reliability to their results, within a predictable time.
To accomplish this goal, we have designed and developed the SEDAR (Soft Error Detection and Automatic Recovery) methodology, which provides tolerance to transient faults in systems consisting in message passing applications that run in multicore clusters. SEDAR is based on process replication and monitoring of messages to be sent and of local computation, taking advantage of the intrinsic hardware redundancy of the multicores.
SEDAR provides three variants: detection and automatic relaunch from the beginning; automatic recovery, based on the storage of multiple system-level checkpoints (periodic or synchronized with events); and automatic recovery, based on a single safe application-level checkpoint. The main goal is the design of the methodology and the functional validation of its effectiveness to detect transient faults and automatically recover executions, using an analytical verification model; a SEDAR prototype is also implemented. From the tests carried out with this prototype, the temporal behavior is characterized, i.e. the overhead introduced by each variant. The flexibility to dynamically choose the most convenient alternative to adapt to system requirements (such as maximum allowed overhead or completion time) is also evidenced, showing that SEDAR is a viable and effective methodology to tolerate transient faults in HPC. Unlike specific strategies, which provide partial resilience for certain applications, at the cost of modifying them, SEDAR is essentially transparent and agnostic regarding the protected algorithm.Resumen de la tesis presentada por el autor el 18 de marzo de 2020 para la obtención del título de Doctor en Ciencias Informáticas de la Universidad Nacional de La Plata.Facultad de Informátic
Interrupciones en el Simulador MSX88 : Cátedra de Arquitectura de Computadoras
En este apunte se introducen los conceptos básicos para escribir programas que utilizan interrupciones por
hardware o software en el simulador MSX88.Facultad de Informátic
Interrupciones en el Simulador MSX88 : Cátedra de Arquitectura de Computadoras
En este apunte se introducen los conceptos básicos para escribir programas que utilizan interrupciones por
hardware o software en el simulador MSX88.Facultad de Informátic
Integración de una red de sensores con una plataforma IoT para control inteligente de aulas
Los recientes avances en las tecnologías de conectividad y sensado constituyen un escenario propicio para las soluciones basadas en IoT. Actualmente existe una variedad de herramientas que ayudan a explotar el potencial de estas soluciones, entre ellas las Plataformas IoT, complementadas con niveles de procesamiento cercanos a los bordes de la red. En este artículo se describe la implementación de un sistema para monitoreo y control inteligente de parámetros de interés en un edificio universitario basado en una plataforma IoT, y se brindan los resultados preliminares de la funcionalidad desplegada y las pruebas de conectividad realizadas entre los nodos sensores y el servidor.Short Paper - AlumnosRed de Universidades con Carreras en Informátic
Interrupciones en el Simulador MSX88 : Cátedra de Arquitectura de Computadoras
En este apunte se introducen los conceptos básicos para escribir programas que utilizan interrupciones por
hardware o software en el simulador MSX88.Facultad de Informátic
Análisis de eficiencia en sistemas paralelos
El objetivo de esta línea de investigación es estudiar problemas de consumo y eficiencia energética en arquitecturas de procesamiento paralelo, analizando la relación que guarda con los paradigmas de programación de algoritmos paralelos. Por otro lado se pretende investigar las consecuencias de las fallas que puedan presentarse en arquitecturas paralelas y distribuidas y proponer estrategias de detección y recuperación. Finalmente, resulta necesario estudiar casos concretos sobre arquitecturas con procesadores de múltiples núcleos. Específicamente se pretende analizar la factibilidad del procesamiento paralelo en algoritmos de procesamiento de imágenes, evaluando la eficiencia sobre sistemas multicore basados en plataformas FPGAs.Eje: Arquitectura , Redes y Sistemas OperativosRed de Universidades con Carreras en Informátic
- …