Exploiting asynchrony from exact forward recovery for DUE in iterative solvers
This paper presents a method to protect iterative solvers from Detected and Uncorrected Errors (DUE) relying on error detection techniques already available in commodity hardware. Detection operates at the memory page level, which enables the use of simple algorithmic redundancies to correct errors....
| Autores: | , , , , , |
|---|---|
| Tipo de recurso: | informe técnico |
| Fecha de publicación: | 2015 |
| País: | España |
| Institución: | Universitat Politècnica de Catalunya (UPC) |
| Repositorio: | UPCommons. Portal del coneixement obert de la UPC |
| Idioma: | inglés |
| OAI Identifier: | oai:upcommons.upc.edu:2117/110733 |
| Acceso en línea: | https://hdl.handle.net/2117/110733 |
| Access Level: | acceso abierto |
| Palabra clave: | Error-correcting codes (Information theory) Resilience Fault tolerance Interpolation Forward recovery HPC Conjugate gradient GMRES BiCGStab Krylov subspace Codis correctors d'errors (Teoria de la informació) Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors |
| Sumario: | This paper presents a method to protect iterative solvers from Detected and Uncorrected Errors (DUE) relying on error detection techniques already available in commodity hardware. Detection operates at the memory page level, which enables the use of simple algorithmic redundancies to correct errors. Such redundancies would be inapplicable under coarse grain error detection, but become very powerful when the hardware is able to precisely detect errors. Relations straightforwardly extracted from the solver allow to recover lost data exactly. This method is free of the overheads of backwards recoveries like checkpointing, and does not compromise mathematical convergence properties of the solver as restarting would do. We apply this recovery to three widely used Krylov subspace methods, CG, GMRES and BiCGStab, and their preconditioned versions. We implement our resilience techniques on CG considering scenarios from small (8 cores) to large (1024 cores) scales, and demonstrate very low overheads compared to state-of-the-art solutions. We deploy our recovery techniques either by overlapping them with algorithmic computations or by forcing them to be in the critical path of the application. A trade-off exists between both approaches depending on the error rate the solver is suffering. Under realistic error rates, overlapping decreases overheads from 5.40% down to 2.24% for a non-preconditioned CG on 8 cores. |
|---|