Exceptions and errors occurring within mission critical applications due to hardware failures have a high cost. With the emerging Next Generation Platforms (NGPs), the rate of hardware failures will likely increase. Therefore, designing our applications to be resilient is a critical concern in order to retain the reliability of results while meeting the constraints on power budgets. In this paper, we discuss software resilience in AMTs at both local and distributed scale. We choose HPX to prototype our resiliency designs. We implement two resiliency APIs that we expose to the application developers, namely task replication and task replay. Task replication repeats a task n-times and executes them asynchronously. Task replay reschedules a task up to n-times until a valid output is returned. Furthermore, we expose algorithm based fault tolerance (ABFT) using user provided predicates (e.g., checksums) to validate the returned results. We benchmark the resiliency scheme for both synthetic and real world applications at local and distributed scale and show that most of the added execution time arises from the replay, replication or data movement of the tasks and not the boilerplate code added to achieve resilience.
翻译:由于硬件故障,在任务关键应用程序中出现的例外和错误成本很高。 随着下一代平台(NGPs)的出现,硬件故障率可能会上升。 因此,设计我们的应用程序以保持弹性是一个关键问题,目的是在满足对电力预算的限制的同时保持结果的可靠性。 在本文中,我们讨论本地和分布规模的AMT的软件复原力。 我们选择HPX来原型我们的恢复能力设计。 我们实施了两种弹性API,我们暴露在应用程序开发者面前,即任务复制和任务重播。任务复制重复了任务正时,并且不同步地执行它们。任务重播任务重排一个任务,直到n-时间,直到返回有效产出。此外,我们用用户提供的前提(例如校验和)来披露基于算法的过失容忍(ABFT)来验证返回的结果。 我们为本地和分布规模的合成和真实世界应用的弹性计划设定基准,并显示大部分增加的执行时间来自任务的重置、复制或数据移动,而不是锅炉板的代码来实现恢复能力。