Klassisk omvänt läge automatisk differentiering (AD) innebär endast en liten konstant faktor overhead i drift räknar över den ursprungliga beräkningen, men har lagringskrav som i värsta fall växer i proportion till den tid som förbrukas av den ursprungliga beräkningen. Denna lagringsblåsning kan lindras genom kontrollpekning, en process som ombeställer tillämpning av klassisk omvänd-mode AD under ett genomförandeintervall för avräkningsutrymme jämfört med tid. Tillämpning av checkpointing på ett split-and-conquer-sätt på strategiskt utvalda inhägnade exekveringsintervall kan bryta klassisk omvänd-mode AD till stadier som kan minska den värsta-fall tillväxt i lagring från linjär till sublineär. Att göra detta har varit helt automatiserad endast för beräkningar av särskilt enkel form, med kontrollpunkter spänner utförandet intervaller resulterar i en begränsad uppsättning programkonstruktioner. Här visar vi hur tekniken kan automatiseras för godtyckliga beräkningar. Den viktigaste innovationen är att tillämpa tekniken på nivån för språkgenomförandet i sig, vilket gör det möjligt för kontrollpunkter att spänna över alla genomförandeintervall. ← J operatörer, inklusive tillämpningen av v 1, antas ta enhet tid. Detta följer av det faktum att klausulerna (26) och (27), återigen som typifieras av (28), ökar antalet steg med ett. Fjärde, liksom alla inbyggda operatörer, → J och ← J i värden, i (24) och (25), genomförs i direkt stil och inte passerar en fortsättning. Detta innebär att klausuler (26) och (27), som typifieras av (28), måste kalla fortsättningen k på resultatet → J och ← J. Slutligen, eftersom → J och ← J får målfunktioner (avslutningar) för v 1, De måste tillämpa dessa på sina argument med A. Eftersom A är skrivet i CPS hos CPS-utvärderaren måste dessa samtal till A (24) och (25) förses med en fortsättning k, en stegräkning n.
En generisk uppdelning-och-konquer metod baserad på kompilator tekniker gör det möjligt att utföra automatisk differentiering för godtyckliga program REF.
Divide-and-Conquer Checkpointing for Arbitrary Programs with No User Annotation
{'venue': 'Optimization Methods and Software 33(04-06):1288-1330, 2018', 'journal': None, 'mag_field_of_study': ['Computer Science', 'Mathematics']}