Debugging AAD Instrumentation

The AAD libraries of Chapters 10 and 15 were extensively tested for a long time in a vast number of contexts. There shouldn't be many bugs left there. In case readers do find bugs when experimenting with the libraries, we shall be most grateful if they kindly notify Wiley so we can correct the code in the online repository. Again, and following the many hours spent tracking and removing bugs and inefficiencies, we should expect the AAD libraries to be mostly clean.

This being said, the purpose of this publication is to let readers instrument their own code and differentiate it in constant time with the AAD libraries. It should be apparent from Chapters 12, 13, and 14 that a correct instrumentation is a long, difficult work, in our experience, more demanding than the development of the AAD libraries themselves. A lot may go wrong. This appendix offers general advice for debugging instrumented code, and reveals the one single tactic that saved us months of tedious debugging work while professionally developing AAD-powered systems, almost immediately identifying most AAD bugs in instrumented code. This debugging tactic is one of the key ingredients that allowed us to implement AAD throughout Danske Bank's production systems in a reasonably short time in the early 2010s.

First of all, it should be clear that the general advice of Section 3.20 for debugging and profiling serial and parallel code holds with AAD, and readers are encouraged to follow the ...

Get Modern Computational Finance now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.