图书简介
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.
Modern Computational Finance xi Preface by Leif Andersen xv Acknowledgments xix Introduction xxi About the Companion C++ Code xxv PART I Modern Parallel Programming 1 Introduction 3 CHAPTER 1 Effective C++ 17 CHAPTER 2 Modern C++ 25 2.1 Lambda expressions 25 2.2 Functional programming in C++ 28 2.3 Move semantics 34 2.4 Smart pointers 41 CHAPTER 3 Parallel C++ 47 3.1 Multi-threaded Hello World 49 3.2 Thread management 50 3.3 Data sharing 55 3.4 Thread local storage 56 3.5 False sharing 57 3.6 Race conditions and data races 62 3.7 Locks 64 3.8 Spinlocks 66 3.9 Deadlocks 67 3.10 RAII locks 68 3.11 Lock-free concurrent design 70 3.12 Introduction to concurrent data structures 72 3.13 Condition variables 74 3.14 Advanced synchronization 80 3.15 Lazy initialization 83 3.16 Atomic types 86 3.17 Task management 89 3.18 Thread pools 96 3.19 Using the thread pool 108 3.20 Debugging and optimizing parallel programs 113 PART II Parallel Simulation 123 Introduction 125 CHAPTER 4 Asset Pricing 127 4.1 Financial products 127 4.2 The Arbitrage Pricing Theory 140 4.3 Financial models 151 CHAPTER 5 Monte-Carlo 185 5.1 The Monte-Carlo algorithm 185 5.2 Simulation of dynamic models 192 5.3 Random numbers 200 5.4 Better random numbers 202 CHAPTER 6Serial Implementation 213 6.1 The template simulation algorithm 213 6.2 Random number generators 223 6.3 Concrete products 230 6.4 Concrete models 245 6.5 User interface 263 6.6 Results 268 CHAPTER 7 Parallel Implementation 271 7.1 Parallel code and skip ahead 271 7.2 Skip ahead with mrg32k3a 276 7.3 Skip ahead with Sobol 282 7.4 Results 283 PART III Constant Time Differentiation 285 Introduction 287 CHAPTER 8 Manual Adjoint Differentiation 295 8.1 Introduction to Adjoint Differentiation 295 8.2 Adjoint Differentiation by hand 308 8.3 Applications in machine learning and finance 315 CHAPTER 9 Algorithmic Adjoint Differentiation 321 9.1 Calculation graphs 322 9.2 Building and applying DAGs 328 9.3 Adjoint mathematics 340 9.4 Adjoint accumulation and DAG traversal 344 9.5 Working with tapes 349 CHAPTER 10 Effective AAD and Memory Management 357 10.1 The Node class 359 10.2 Memory management and the Tape class 362 10.3 The Number class 379 10.4 Basic instrumentation 398 CHAPTER 11 Discussion and Limitations 401 11.1 Inputs and outputs 401 11.2 Higher-order derivatives 402 11.3 Control flow 402 11.4 Memory 403 CHAPTER 12 Differentiation of the Simulation Library 407 12.1 Active code 407 12.2 Serial code 409 12.3 User interface 417 12.4 Serial results 424 12.5 Parallel code 426 12.6 Parallel results 433 CHAPTER 13 Check-Pointing and Calibration 439 13.1 Check-pointing 439 13.2 Explicit calibration 448 13.3 Implicit calibration 475 CHAPTER 14 Multiple Differentiation in Almost Constant Time 483 14.1 Multidimensional differentiation 483 14.2 Traditional Multidimensional AAD 484 14.3 Multidimensional adjoints 485 14.4 AAD library support 487 14.5 Instrumentation of simulation algorithms 494 14.6 Results 499 CHAPTER 15 Acceleration with Expression Templates 503 15.1 Expression nodes 504 15.2 Expression templates 507 15.3 Expression templated AAD code 524 Debugging AAD Instrumentation 541 Conclusion 547 References 549 Index 555
Trade Policy 买家须知
- 关于产品:
- ● 正版保障:本网站隶属于中国国际图书贸易集团公司,确保所有图书都是100%正版。
- ● 环保纸张:进口图书大多使用的都是环保轻型张,颜色偏黄,重量比较轻。
- ● 毛边版:即书翻页的地方,故意做成了参差不齐的样子,一般为精装版,更具收藏价值。
关于退换货:
- 由于预订产品的特殊性,采购订单正式发订后,买方不得无故取消全部或部分产品的订购。
- 由于进口图书的特殊性,发生以下情况的,请直接拒收货物,由快递返回:
- ● 外包装破损/发错货/少发货/图书外观破损/图书配件不全(例如:光盘等)
并请在工作日通过电话400-008-1110联系我们。
- 签收后,如发生以下情况,请在签收后的5个工作日内联系客服办理退换货:
- ● 缺页/错页/错印/脱线
关于发货时间:
- 一般情况下:
- ●【现货】 下单后48小时内由北京(库房)发出快递。
- ●【预订】【预售】下单后国外发货,到货时间预计5-8周左右,店铺默认中通快递,如需顺丰快递邮费到付。
- ● 需要开具发票的客户,发货时间可能在上述基础上再延后1-2个工作日(紧急发票需求,请联系010-68433105/3213);
- ● 如遇其他特殊原因,对发货时间有影响的,我们会第一时间在网站公告,敬请留意。
关于到货时间:
- 由于进口图书入境入库后,都是委托第三方快递发货,所以我们只能保证在规定时间内发出,但无法为您保证确切的到货时间。
- ● 主要城市一般2-4天
- ● 偏远地区一般4-7天
关于接听咨询电话的时间:
- 010-68433105/3213正常接听咨询电话的时间为:周一至周五上午8:30~下午5:00,周六、日及法定节假日休息,将无法接听来电,敬请谅解。
- 其它时间您也可以通过邮件联系我们:customer@readgo.cn,工作日会优先处理。
关于快递:
- ● 已付款订单:主要由中通、宅急送负责派送,订单进度查询请拨打010-68433105/3213。
本书暂无推荐
本书暂无推荐