Home Page Icon
Home Page
Table of Contents for
PART I: Modern Parallel Programming
Close
PART I: Modern Parallel Programming
by Leif Andersen, Antoine Savine
Modern Computational Finance
Cover
Preface by Leif Andersen
Acknowledgments
Introduction
About the Companion C++ Code
PART I: Modern Parallel Programming
Introduction
PARALLEL ALGORITHMS
THE MANY FLAVORS OF PARALLEL PROGRAMMING
WRITING MULTI-THREADED PROGRAMS
PARALLEL COMPUTING IN FINANCE
NOTES
CHAPTER 1: Effective C++
NOTES
CHAPTER 2: Modern C++
2.1 LAMBDA EXPRESSIONS
2.2 FUNCTIONAL PROGRAMMING IN C++
2.3 MOVE SEMANTICS
2.4 SMART POINTERS
NOTES
CHAPTER 3: Parallel C++
3.1 MULTI-THREADED HELLO WORLD
3.2 THREAD MANAGEMENT
3.3 DATA SHARING
3.4 THREAD LOCAL STORAGE
3.5 FALSE SHARING
3.6 RACE CONDITIONS AND DATA RACES
3.7 LOCKS
3.8 SPINLOCKS
3.9 DEADLOCKS
3.10 RAII LOCKS
3.11 LOCK-FREE CONCURRENT DESIGN
3.12 INTRODUCTION TO CONCURRENT DATA STRUCTURES
3.13 CONDITION VARIABLES
3.14 ADVANCED SYNCHRONIZATION
3.15 LAZY INITIALIZATION
3.16 ATOMIC TYPES
3.17 TASK MANAGEMENT
3.18 THREAD POOLS
3.19 USING THE THREAD POOL
3.20 DEBUGGING AND OPTIMIZING PARALLEL PROGRAMS
NOTES
PART II: Parallel Simulation
Introduction
CHAPTER 4: Asset Pricing
4.1 FINANCIAL PRODUCTS
4.2 THE ARBITRAGE PRICING THEORY
4.3 FINANCIAL MODELS
NOTES
CHAPTER 5: Monte-Carlo
5.1 THE MONTE-CARLO ALGORITHM
5.2 SIMULATION OF DYNAMIC MODELS
5.3 RANDOM NUMBERS
5.4 BETTER RANDOM NUMBERS
NOTES
CHAPTER 6: Serial Implementation
6.1 THE TEMPLATE SIMULATION ALGORITHM
6.2 RANDOM NUMBER GENERATORS
6.3 CONCRETE PRODUCTS
6.4 CONCRETE MODELS
6.5 USER INTERFACE
6.6 RESULTS
NOTES
CHAPTER 7: Parallel Implementation
7.1 PARALLEL CODE AND SKIP AHEAD
7.2 SKIP AHEAD WITH MRG32K3A
7.3 SKIP AHEAD WITH SOBOL
7.4 RESULTS
NOTES
PART III: Constant Time Differentiation
Introduction
OPENING REMARKS
SUMMARY
A FIRST APPROACH TO ADJOINT DIFFERENTIATION
NOTES
CHAPTER 8: Manual Adjoint Differentiation
8.1 INTRODUCTION TO ADJOINT DIFFERENTIATION
8.2 ADJOINT DIFFERENTIATION BY HAND
8.3 APPLICATIONS IN MACHINE LEARNING AND FINANCE
NOTES
CHAPTER 9: Algorithmic Adjoint Differentiation
9.1 CALCULATION GRAPHS
9.2 BUILDING AND APPLYING DAGS
9.3 ADJOINT MATHEMATICS
9.4 ADJOINT ACCUMULATION AND DAG TRAVERSAL
9.5 WORKING WITH TAPES
NOTES
CHAPTER 10: Effective AAD and Memory Management
10.1 THE NODE CLASS
10.2 MEMORY MANAGEMENT AND THE TAPE CLASS
10.3 THE NUMBER CLASS
10.4 BASIC INSTRUMENTATION
NOTES
CHAPTER 11: Discussion and Limitations
11.1 INPUTS AND OUTPUTS
11.2 HIGHER-ORDER DERIVATIVES
11.3 CONTROL FLOW
11.4 MEMORY
NOTE
CHAPTER 12: Differentiation of the Simulation Library
12.1 ACTIVE CODE
12.2 SERIAL CODE
12.3 USER INTERFACE
12.4 SERIAL RESULTS
12.5 PARALLEL CODE
12.6 PARALLEL RESULTS
NOTES
CHAPTER 13: Check-Pointing and Calibration
13.1 CHECK-POINTING
13.2 EXPLICIT CALIBRATION
13.3 IMPLICIT CALIBRATION
NOTES
CHAPTER 14: Multiple Differentiation in Almost Constant Time
14.1 MULTIDIMENSIONAL DIFFERENTIATION
14.2 TRADITIONAL MULTIDIMENSIONAL AAD
14.3 MULTIDIMENSIONAL ADJOINTS
14.4 AAD LIBRARY SUPPORT
14.5 INSTRUMENTATION OF SIMULATION ALGORITHMS
14.6 RESULTS
NOTE
CHAPTER 15: Acceleration with Expression Templates
15.1 EXPRESSION NODES
15.2 EXPRESSION TEMPLATES
15.3 EXPRESSION TEMPLATED AAD CODE
NOTES
Debugging AAD Instrumentation
Conclusion
References
Index
End User License Agreement
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
About the Companion C++ Code
Next
Next Chapter
Introduction
PART I
Modern Parallel Programming
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset