8 research outputs found

    Simulaci贸n de aplicaciones paralelas y mecanismos de tolerancia a fallos

    Get PDF
    Durante los 煤ltimos a帽os, los sistemas de c贸mputo de altas prestaciones hicieron posible el tratamiento de grandes vol煤menes de datos a alt铆simas velocidades de procesamiento para aplicaciones comerciales y cient铆ficas. La evoluci贸n de las arquitecturas paralelas y el desarrollo de los mecanismos de tolerancia a fallos permiten que la ejecuci贸n de las aplicaciones se realice de manera confiable. Teniendo en cuenta que la configuraci贸n de recursos, el tipo de aplicaci贸n y los mecanismos de tolerancia a fallos influye en el comportamiento de un sistema paralelo, su estudio se lleva a cabo a trav茅s de herramientas de simulaci贸n que permiten representar el sistema. En virtud de esto, el Grupo de Ingenier铆a de Software desarroll贸 un simulador de clusters que permite parametrizar la configuraci贸n f铆sica de un cluster, y las caracter铆sticas de c贸mputo y comunicaci贸n de aplicaciones M/W y SPMD. En este trabajo se presentan la l铆nea de investigaci贸n abordada.Eje: Procesamiento Distribuido y ParaleloRed de Universidades con Carreras en Inform谩tica (RedUNCI

    SMCV: a Methodology for Detecting Transient Faults in Multicore Clusters

    Get PDF
    The challenge of improving the performance of current processors is achieved by increasing the integration scale. This carries a growing vulnerability to transient faults, which increase their impact on multicore clusters running large scientific parallel applications. The聽 requirement for enhancing the reliability of these systems, coupled with the high cost of rerunning the application from the beginning, create the motivation for having specific software strategies for the target systems. This paper introduces SMCV, which is a fully distributed technique that provides fault detection for message-passing parallel applications, by validating the contents of the messages to be sent, preventing the transmission of errors to other processes and leveraging the intrinsic hardware redundancy of the multicore. SMCV achieves a wide robustness against transient faults with a reduced overhead, and accomplishes a trade-off between moderate detection latency and low additional workload.Instituto de Investigaci贸n en Inform谩tic

    SMCV: a Methodology for Detecting Transient Faults in Multicore Clusters

    Get PDF
    The challenge of improving the performance of current processors is achieved by increasing the integration scale. This carries a growing vulnerability to transient faults, which increase their impact on multicore clusters running large scientific parallel applications. The聽 requirement for enhancing the reliability of these systems, coupled with the high cost of rerunning the application from the beginning, create the motivation for having specific software strategies for the target systems. This paper introduces SMCV, which is a fully distributed technique that provides fault detection for message-passing parallel applications, by validating the contents of the messages to be sent, preventing the transmission of errors to other processes and leveraging the intrinsic hardware redundancy of the multicore. SMCV achieves a wide robustness against transient faults with a reduced overhead, and accomplishes a trade-off between moderate detection latency and low additional workload.Instituto de Investigaci贸n en Inform谩tic

    High availability for parallel computers

    Get PDF
    Fault tolerance has become an important issue for parallel applications in the last few years. The parallel systems' users want them to be reliable considering two main dimensions, availability and data consistency. Availability can be provided with solutions such as RADIC, a fault tolerant architecture with different protection levels, offering high availability with transparency, decentralization, flexibility and scalability for message-passing systems. Transient faults may cause an application running in a computer system to be removed from execution, however the biggest risk of transient faults is to provoke undetected data corruption that changes the final result of the application without anyone knowing. To evaluate the effects of transient faults in the robustness of applications and validate new fault detection mechanism and strategies, we have developed a full-system simulation fault injection environmentFacultad de Inform谩tic

    Fault tolerance at system level based on RADIC architecture

    Get PDF
    The increasing failure rate in High Performance Computing encourages the investigation of fault tolerance mechanisms to guarantee the execution of an application in spite of node faults. This paper presents an automatic and scalable fault tolerant model designed to be transparent for applications and for message passing libraries. The model consists of detecting failures in the communication socket caused by a faulty node. In those cases, the affected processes are recovered in a healthy node and the connections are reestablished without losing data. The Redundant Array of Distributed Independent Controllers architecture proposes a decentralized model for all the tasks required in a fault tolerance system: protection, detection, recovery and masking. Decentralized algorithms allow the application to scale, which is a key property for current HPC system. Three different rollback recovery protocols are defined and discussed with the aim of offering alternatives to reduce overhead when multicore systems are used. A prototype has been implemented to carry out an exhaustive experimental evaluation through Master/Worker and Single Program Multiple Data execution models. Multiple workloads and an increasing number of processes have been taken into account to compare the above mentioned protocols. The executions take place in two multicore Linux clusters with different socket communications libraries

    RADIC : un middleware de tolerancia a fallos que preserva el rendimiento

    Get PDF
    La tolerancia a fallos es una l铆nea de investigaci贸n que ha adquirido una importancia relevante con el aumento de la capacidad de c贸mputo de los s煤per-computadores actuales. Esto es debido a que con el aumento del poder de procesamiento viene un aumento en la cantidad de componentes que trae consigo una mayor cantidad de fallos. Las estrategias de tolerancia a fallos actuales en su mayor铆a son centralizadas y estas no escalan cuando se utiliza una gran cantidad de procesos, dado que se requiere sincronizaci贸n entre todos ellos para realizar las tareas de tolerancia a fallos. Adem谩s la necesidad de mantener las prestaciones en programas paralelos es crucial, tanto en presencia como en ausencia de fallos. Teniendo en cuenta lo citado, este trabajo se ha centrado en una arquitectura tolerante a fallos descentralizada (RADIC - Redundant Array of Distributed and Independant Controllers) que busca mantener las prestaciones iniciales y garantizar la menor sobrecarga posible para reconfigurar el sistema en caso de fallos. La implementaci贸n de esta arquitectura se ha llevado a cabo en la librer铆a de paso de mensajes denominada Open MPI, la misma es actualmente una de las m谩s utilizadas en el mundo cient铆fico para la ejecuci贸n de programas paralelos que utilizan una plataforma de paso de mensajes. Las pruebas iniciales demuestran que el sistema introduce m铆nima sobrecarga para llevar a cabo las tareas correspondientes a la tolerancia a fallos. MPI es un est谩ndar por defecto fail-stop, y en determinadas implementaciones que a帽aden cierto nivel de tolerancia, las estrategias m谩s utilizadas son coordinadas. En RADIC cuando ocurre un fallo el proceso se recupera en otro nodo volviendo a un estado anterior que ha sido almacenado previamente mediante la utilizaci贸n de checkpoints no coordinados y la relectura de mensajes desde el log de eventos. Durante la recuperaci贸n, las comunicaciones con el proceso en cuesti贸n deben ser retrasadas y redirigidas hacia la nueva ubicaci贸n del proceso. Restaurar procesos en un lugar donde ya existen procesos sobrecarga la ejecuci贸n disminuyendo las prestaciones, por lo cual en este trabajo se propone la utilizaci贸n de nodos spare para la recuperar en ellos a los procesos que fallan, evitando de esta forma la sobrecarga en nodos que ya tienen trabajo. En este trabajo se muestra un dise帽o propuesto para gestionar de un modo autom谩tico y descentralizado la recuperaci贸n en nodos spare en un entorno Open MPI y se presenta un an谩lisis del impacto en las prestaciones que tiene este dise帽o. Resultados iniciales muestran una degradaci贸n significativa cuando a lo largo de la ejecuci贸n ocurren varios fallos y no se utilizan spares y sin embargo utiliz谩ndolos se restablece la configuraci贸n inicial y se mantienen las prestaciones.Fault tolerance is a research line that has gained significant importance with the increasing of the computing power of today's super-computers. The increasing of processing power comes with an increase in the number of components that brings also an increase in the number of failures. Today's fault tolerance strategies are mostly centralized and these do not scale when using a large number of processes, since synchronization is required between them to perform the fault tolerance tasks. Maintain performance in parallel applications is crucial, in the presence or absence of fault. According to the above, this work has focused on a decentralized fault-tolerant architecture (RADIC - Redundant Array of Distributed and Independant Controllers) that seeks to maintain the initial performance and ensure the lowest possible overhead to reconfigure the system in case of failure. The implementation of this architecture has been made in the message passing library called Open MPI. This is one of the most used message passing library in the scientific world to execute parallel programs. Initial tests show that the system introduces minimal overhead to perform fault tolerances tasks, and also show that performance is restored as it was before failure. MPI is a fail-stop standard and some implementations that add fault tolerances use a coordinated strategy. In RADIC when a failure occur the failed process recovers in another node rolling back to a previous saved state made by using an uncoordinated strategy of checkpoint and by reprocessing the saved log. During restart, the communications with the failed process should be delayed and redirected to the new process location. Restoring processes in a place where processes already exists overload the application and the performance decrease. In this work is proposed the inclusion of spare nodes to restore failed processes in them, avoiding performance degradation. In this work we propose an automatic and decentralized method to manage the recovery of failed processes in spare nodes in an Open MPI environment and is also presented an analysis of the failure impact in the performance. Experimental evaluation shows a significant degradation when failures occur along a parallel execution and there is no spare nodes, nevertheless by using spares, the initial configuration and the initial performance may be restored

    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
    corecore