论文标题
在异步多任务编程模型中分布式软件弹性
Towards Distributed Software Resilience in Asynchronous Many-Task Programming Models
论文作者
论文摘要
由于硬件故障而导致的任务关键应用中发生的例外和错误具有很高的成本。随着新兴的下一代平台(NGP),硬件故障的速率可能会增加。因此,将我们的应用程序设计为弹性是一个关键问题,以保持结果的可靠性,同时满足电力预算的限制。在本文中,我们讨论了本地和分布式规模的AMTS中的软件弹性。我们选择HPX来原型我们的弹性设计。我们实施了两个我们暴露于应用程序开发人员的弹性API,即任务复制和任务重播。任务复制重复任务n时间,并异步执行。任务重新安排一个任务最多n时间,直到返回有效的输出为止。此外,我们使用用户提供的谓词(例如,校验和)来验证返回的结果。我们在本地和分布式规模上对合成和现实世界应用的弹性方案进行基准测试,并表明大多数附加的执行时间来自任务的重播,复制或数据移动,而不是添加的样板代码以实现弹性。
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.