Covers the state of the art in automatic differentiation theory and practice. Intended for computational scientists and engineers, this book aims to provide insight into effective strategies for using automatic differentiation for design optimization, sensitivity analysis, and uncertainty quantification.
This is the first entry-level book on algorithmic (also known as automatic) differentiation (AD), providing fundamental rules for the generation of first- and higher-order tangent-linear and adjoint code. The author covers the mathematical underpinnings as well as how to apply these observations to real-world numerical simulation programs. Readers will find: examples and exercises, including hints to solutions; the prototype AD tools dco and dcc for use with the examples and exercises; first- and higher-order tangent-linear and adjoint modes for a limited subset of C/C++, provided by the derivative code compiler dcc; a supplementary website containing sources of all software discussed in the book, additional exercises and comments on their solutions (growing over the coming years), links to other sites on AD, and errata.
This title is a comprehensive treatment of algorithmic, or automatic, differentiation. The second edition covers recent developments in applications and theory, including an elegant NP completeness argument and an introduction to scarcity.
A survey book focusing on the key relationships and synergies between automatic differentiation (AD) tools and other software tools, such as compilers and parallelizers, as well as their applications. The key objective is to survey the field and present the recent developments. In doing so the topics covered shed light on a variety of perspectives. They reflect the mathematical aspects, such as the differentiation of iterative processes, and the analysis of nonsmooth code. They cover the scientific programming aspects, such as the use of adjoints in optimization and the propagation of rounding errors. They also cover "implementation" problems.
The Fifth International Conference on Automatic Differentiation held from August 11 to 15, 2008 in Bonn, Germany, is the most recent one in a series that began in Breckenridge, USA, in 1991 and continued in Santa Fe, USA, in 1996, Nice, France, in 2000 and Chicago, USA, in 2004. The 31 papers included in these proceedings re?ect the state of the art in automatic differentiation (AD) with respect to theory, applications, and tool development. Overall, 53 authors from institutions in 9 countries contributed, demonstrating the worldwide acceptance of AD technology in computational science. Recently it was shown that the problem underlying AD is indeed NP-hard, f- mally proving the inherently challenging nature of this technology. So, most likely, no deterministic “silver bullet” polynomial algorithm can be devised that delivers optimum performance for general codes. In this context, the exploitation of doma- speci?c structural information is a driving issue in advancing practical AD tool and algorithm development. This trend is prominently re?ected in many of the pub- cations in this volume, not only in a better understanding of the interplay of AD and certain mathematical paradigms, but in particular in the use of hierarchical AD approaches that judiciously employ general AD techniques in application-speci?c - gorithmic harnesses. In this context, the understanding of structures such as sparsity of derivatives, or generalizations of this concept like scarcity, plays a critical role, in particular for higher derivative computations.
Arguably the strongest addition to numerical finance of the past decade, Algorithmic Adjoint Differentiation (AAD) is the technology implemented in modern financial software to produce thousands of accurate risk sensitivities, within seconds, on light hardware. AAD recently became a centerpiece of modern financial systems and a key skill for all quantitative analysts, developers, risk professionals or anyone involved with derivatives. It is increasingly taught in Masters and PhD programs in finance. Danske Bank's wide scale implementation of AAD in its production and regulatory systems won the In-House System of the Year 2015 Risk award. The Modern Computational Finance books, written by three of the very people who designed Danske Bank's systems, offer a unique insight into the modern implementation of financial models. The volumes combine financial modelling, mathematics and programming to resolve real life financial problems and produce effective derivatives software. This volume is a complete, self-contained learning reference for AAD, and its application in finance. AAD is explained in deep detail throughout chapters that gently lead readers from the theoretical foundations to the most delicate areas of an efficient implementation, such as memory management, parallel implementation and acceleration with expression templates. The book comes with professional source code in C++, including an efficient, up to date implementation of AAD and a generic parallel simulation library. Modern C++, high performance parallel programming and interfacing C++ with Excel are also covered. The book builds the code step-by-step, while the code illustrates the concepts and notions developed in the book.
The calculation of partial derivatives is a fundamental need in scientific computing. Automatic differentiation (AD) can be applied straightforwardly to obtain all necessary partial derivatives (usually first and, possibly, second derivatives) regardless of a code?s complexity. However, the space and time efficiency of AD can be dramatically improved?sometimes transforming a problem from intractable to highly feasible?if inherent problem structure is used to apply AD in a judicious manner. Automatic Differentiation in MATLAB using ADMAT with Applications?discusses the efficient use of AD to solve real problems, especially multidimensional zero-finding and optimization, in the MATLAB environment. This book is concerned with the determination of the first and second derivatives in the context of solving scientific computing problems with an emphasis on optimization and solutions to nonlinear systems. The authors focus on the application rather than the implementation of AD, solve real nonlinear problems with high performance by exploiting the problem structure in the application of AD, and provide many easy to understand applications, examples, and MATLAB templates.?
This work, a tribute to renowned researcher Robert Paige, is a collection of revised papers published in his honor in the Higher-Order and Symbolic Computation Journal in 2003 and 2005. Among them there are two key papers: a retrospective view of his research lines, and a proposal for future studies in the area of the automatic program derivation. The book also includes some papers by members of the IFIP Working Group 2.1 of which Bob was an active member.
Computational Science is the scienti?c discipline that aims at the development and understanding of new computational methods and techniques to model and simulate complex systems. The area of application includes natural systems – such as biology, envir- mental and geo-sciences, physics, and chemistry – and synthetic systems such as electronics and ?nancial and economic systems. The discipline is a bridge b- ween ‘classical’ computer science – logic, complexity, architecture, algorithms – mathematics, and the use of computers in the aforementioned areas. The relevance for society stems from the numerous challenges that exist in the various science and engineering disciplines, which can be tackled by advances made in this ?eld. For instance new models and methods to study environmental issues like the quality of air, water, and soil, and weather and climate predictions through simulations, as well as the simulation-supported development of cars, airplanes, and medical and transport systems etc. Paraphrasing R. Kenway (R.D. Kenway, Contemporary Physics. 1994): ‘There is an important message to scientists, politicians, and industrialists: in the future science, the best industrial design and manufacture, the greatest medical progress, and the most accurate environmental monitoring and forecasting will be done by countries that most rapidly exploit the full potential ofcomputational science’. Nowadays we have access to high-end computer architectures and a large range of computing environments, mainly as a consequence of the enormous s- mulus from the various international programs on advanced computing, e.g.