BEGIN:VCALENDAR
VERSION:2.0
PRODID:Linklings LLC
BEGIN:VTIMEZONE
TZID:America/Denver
X-LIC-LOCATION:America/Denver
BEGIN:DAYLIGHT
TZOFFSETFROM:-0700
TZOFFSETTO:-0600
TZNAME:MDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0600
TZOFFSETTO:-0700
TZNAME:MST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20260422T000713Z
LOCATION:710
DTSTART;TZID=America/Denver:20231112T164000
DTEND;TZID=America/Denver:20231112T165000
UID:submissions.supercomputing.org_SC23_sess427_misc324@linklings.com
SUMMARY:Lightning Talk:  Update on Checkpointing and Localized Recovery fo
 r Nested Fork-Join Programs
DESCRIPTION:Claudia Fohry (University of Kassel, Germany)\n\nAn important 
 use case for checkpointing is the protection of programs against permanent
  node failures in clusters. Ideally, checkpoints should be written transpa
 rently, i.e., without the need to change the program; and efficiently, i.e
 ., they should include only relevant data. Other frequently desired featur
 es are shrinking recovery, i.e., the program should continue to run after 
 failures on the intact resources; and localized recovery, i.e., the recove
 ry should be performed by a few affected processes only.  \n\nAsynchronous
  Many-Task programming (AMT) provides potential to achieve all of the abov
 e goals at the same time, since a runtime system can automatically extract
  relevant data to be checkpointed; and tasks can be re-run after failure. 
 To realize the potential, however, tasks must have clean interfaces, and s
 pecialized algorithms are needed for different types of AMT.  \n\nOne AMT 
 type is nested fork-join programs (NFJ), as exemplified by Cilk. NFJ tasks
  recursively spawn child tasks. Each task returns a result to its parent a
 nd the root task calculates the final result. We disallow side effects in 
 tasks. Many NFJ runtime systems deploy work stealing with a work-first pol
 icy.  \n\nA task-level checkpointing and recovery scheme for this setting 
 has been presented by the author at the 2021 SuperCheck Workshop [1]. At t
 hat time, the algorithm was only outlined, but meanwhile we implemented an
 d experimentally evaluated it [2]. The proposed talk will provide a corres
 ponding update.  \n\nOur algorithm uses uncoordinated checkpointing.  The 
 checkpoints contain task descriptors, task results, and some status inform
 ation. They are written to a resilient store. Checkpoints are updated regu
 larly and when tasks are moved due to work stealing, recovery, or result r
 eturn. Thereby consistency is achieved through specific protocols.  Recove
 ry is performed by a buddy and by recent stealing partners. Altogether the
  algorithm ensures that the program outputs the correct result regardless 
 of the number of failures, even if they occur simultaneously or during rec
 overy. Only when all processes or the resilient store fail, the program ab
 orts with an error message.  \n\nWe implemented the algorithm by extending
  a recent cluster implementation of NFJ, which uses one multithreaded proc
 ess per cluster node, private task pools and lifeline-based victim selecti
 on. All threads participate in the work stealing, i.e., any local or remot
 e thread can be the victim of any other.  The implementation was done with
  the "APGAS for Java" programming framework. Moreover, we used a resilient
  replication-based distributed in-memory store, called IMap, to save our c
 heckpoints. The IMap supports transactions, which are needed by our protoc
 ols.  \n\nExperiments were run with three benchmarks (Fibonacci, UTS, synt
 hetic benchmark), using up to 1280 threads on 32 homogeneous nodes. We obs
 erved an increase of the running time in failure-free runs by up to 28%, a
 nd neglectable costs for recovery.  \n\n[1] C. Fohry: Checkpointing and Lo
 calized Recovery for Nested Fork-Join Programs. Int. Symp. on Checkpointin
 g for Supercomputing, 2021. \n\n [2] L. Reitz, C. Fohry: Task-Level Checkp
 ointing for Nested Fork-Join Programs using Work Stealing. Workshop Proc. 
 Euro-Par, 2023, to appear.\n\nTag: Fault Handling and Tolerance\n\nRegistr
 ation Category: Workshop Reg Pass\n\nSession Chairs: Gene Cooperman (North
 eastern University); Donglai Dai (Advanced Micro Devices (AMD)); Rebecca H
 artman-Baker (National Energy Research Scientific Computing Center (NERSC)
 , Lawrence Berkeley National Laboratory (LBNL)); and Bogdan Nicolae (Argon
 ne National Laboratory (ANL), Illinois Institute of Technology)\n\n
END:VEVENT
END:VCALENDAR
