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 m
Modern Computational Finance. AAD and Parallel Simulations with professional implementation in C++
โ Scribed by Antoine Savine
- Publisher
- Wiley
- Year
- 2019
- Tongue
- English
- Leaves
- 567
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Table of Contents
Contents......Page 3
Modern Computational Finance......Page 7
Preface......Page 10
Intro......Page 13
C++ code......Page 17
--- Modern Parallel Programming......Page 19
PARALLEL ALGORITHMS......Page 20
THE MANY FLAVORS OF PARALLEL PROGRAMMING......Page 24
WRITING MULTI-THREADED PROGRAMS......Page 30
PARALLEL COMPUTING IN FINANCE......Page 31
Effective C++......Page 33
LAMBDA EXPRESSIONS......Page 41
FUNCTIONAL PROGRAMMING IN C......Page 44
MOVE SEMANTICS......Page 50
SMART POINTERS......Page 57
Parallel C......Page 62
MULTI-THREADED HELLO WORLD......Page 64
THREAD MANAGEMENT......Page 65
DATA SHARING......Page 70
THREAD LOCAL STORAGE......Page 71
FALSE SHARING......Page 72
RACE CONDITIONS AND DATA RACES......Page 77
LOCKS......Page 79
SPINLOCKS......Page 81
DEADLOCKS......Page 82
RAII LOCKS......Page 83
LOCK-FREE CONCURRENT DESIGN......Page 85
INTRODUCTION TO CONCURRENT DATA STRUCTURES......Page 87
CONDITION VARIABLES......Page 89
ADVANCED SYNCHRONIZATION......Page 95
LAZY INITIALIZATION......Page 98
ATOMIC TYPES......Page 101
TASK MANAGEMENT......Page 104
THREAD POOLS......Page 111
USING THE THREAD POOL......Page 123
DEBUGGING AND OPTIMIZING PARALLEL PROGRAMS......Page 128
--- Parallel Simulation......Page 137
Introduction......Page 138
FINANCIAL PRODUCTS......Page 139
THE ARBITRAGE PRICING THEORY......Page 152
FINANCIAL MODELS......Page 163
THE MONTE-CARLO ALGORITHM......Page 197
SIMULATION OF DYNAMIC MODELS......Page 204
RANDOM NUMBERS......Page 212
BETTER RANDOM NUMBERS......Page 214
THE TEMPLATE SIMULATION ALGORITHM......Page 225
RANDOM NUMBER GENERATORS......Page 235
CONCRETE PRODUCTS......Page 242
CONCRETE MODELS......Page 257
USER INTERFACE......Page 275
RESULTS......Page 280
PARALLEL CODE AND SKIP AHEAD......Page 283
SKIP AHEAD WITH MRG32K3A......Page 288
SKIP AHEAD WITH SOBOL......Page 294
RESULTS......Page 295
--- Constant Time Differentiation......Page 297
OPENING REMARKS......Page 298
SUMMARY......Page 301
FIRST APPROACH TO ADJOINT DIFFERENTIATION......Page 302
INTRODUCTION TO ADJOINT DIFFERENTIATION......Page 306
ADJOINT DIFFERENTIATION BY HAND......Page 319
APPLICATIONS IN MACHINE LEARNING AND FINANCE......Page 326
Algorithmic Adjoint Differentiation......Page 331
CALCULATION GRAPHS......Page 332
BUILDING AND APPLYING DAGs......Page 338
ADJOINT MATHEMATICS......Page 350
ADJOINT ACCUMULATION AND DAG TRAVERSAL......Page 354
WORKING WITH TAPES......Page 359
Effective AAD & Memory Management......Page 366
THE NODE CLASS......Page 368
MEMORY MANAGEMENT AND THE TAPE CLASS......Page 371
THE NUMBER CLASS......Page 388
BASIC INSTRUMENTATION......Page 407
INPUTS AND OUTPUTS......Page 409
CONTROL FLOW......Page 410
MEMORY......Page 411
Differentiation of the Simulation Library......Page 414
SERIAL CODE......Page 416
USER INTERFACE......Page 424
SERIAL RESULTS......Page 431
PARALLEL CODE......Page 433
PARALLEL RESULTS......Page 440
CHECK-POINTING......Page 445
EXPLICIT CALIBRATION......Page 454
IMPLICIT CALIBRATION......Page 481
MULTIDIMENSIONAL DIFFERENTIATION......Page 488
TRADITIONAL MULTIDIMENSIONAL AAD......Page 489
MULTIDIMENSIONAL ADJOINTS......Page 490
AAD LIBRARY SUPPORT......Page 492
INSTRUMENTATION OF SIMULATION ALGORITHMS......Page 499
RESULTS......Page 504
Acceleration with Expression Templates......Page 507
EXPRESSION NODES......Page 508
EXPRESSION TEMPLATES......Page 511
EXPRESSION TEMPLATED AAD CODE......Page 528
Debugging AAD Instrumentation......Page 545
Conclusion......Page 550
Refs......Page 551
Index......Page 556
๐ SIMILAR VOLUMES
Modern practical medicine requires high tech in diagnostics and therapy and in consequence in education. All disciplines use computers to handle large data bases allowing individual therapy, to interpret large data bases in form of neuronal signals, help visualization of organs during surgery. This
<p>Modern practical medicine requires high tech in diagnostics and therapy and in consequence in education. All disciplines use computers to handle large data bases allowing individual therapy, to interpret large data bases in form of neuronal signals, help visualization of organs during surgery. </
This book provides a seamless approach to numerical algorithms, modern programming techniques and parallel computing. These concepts and tools are usually taught serially across different courses and different textbooks, thus observing the connection between them. The necessity of integrating these