Johannes Albert Stegmann, RPTU Kaiserslautern-Landau
Title: Improving Evaluation Performance for Large Derivative Computations Through Cache Optimisation Techniques in CoDiPack
Abstract:
This presentation will discuss optimisation techniques to improve CPU caching between statements of large derivative calculations in the C++ CoDiPack library. These enhancements focus on improving cache friendliness through the reordering of statements and reallocating identifiers given to the variables in the statements. Modifying identifiers aims to improve spatial locality caching, while reordering statements takes advantage of temporal caching.
Initial tests show that identifier selection significantly impacts evaluation performance. With a basic reallocation of identifiers, performance improvements of greater than 25% are possible. Investing a few minutes in upfront processing leads to substantial time savings in large derivative calculations. Additionally, how users write their programs using CoDiPack affects the performance of functionally identical tapes. The goal of these techniques is to reduce the dependency on the structure of the user’s program. The reordering of a tape is further used to remove redundant or unused statements.
To support these techniques, we have added functionality to CoDiPack to enable tape storage. This includes providing text and graphical methods for easier debugging and a binary file output for efficient storage outside the current program’s scope. The stored tape can later be reloaded into CoDiPack to reproduce a valid tape.
This presentation discusses the storage and cache enhancement methods, ideas for further improvement, and the preliminary results of the implemented solutions.
How to join online
You can join online via Zoom, using the following link:
https://uni-kl-de.zoom.us/j/63123116305?pwd=Yko3WU9ZblpGR3lGUkVTV1kzMCtUUT09