Front Cover; Contents; Preface; Acknowledgments; Authors; List of Figures; List of Tables; Chapter 1: Introduction and Overview; Chapter 2: Houdini: Multithreading Existing Software; Chapter 3: The Presto Execution System: Designing for Multithreading; Chapter 4: LibEE: Parallel Evaluation of Character Rigs; Chapter 5: Fluids: Simulation on the CPU; Chapter 6: Bullet Physics: Simulation with OpenCL; Chapter 7: OpenSubdiv: Interoperating GPU Compute and Drawing; Bibliography; Back Cover
Summary
Introduction and Overview James ReindersIntroduction Overview of Case Studies MotivationProgram in Tasks, Not Threads Value of Abstraction Scaling and Vectorization Advancing Programming Languages for Parallel Programming Parallel Programming in C and C++ Data Movement and Layout Summary Additional ReadingHoudini: Multithreading Existing Software Jeff LaitWhat Is Houdini? Rewrite or Refactor Patterns Copy on Write Dependencies OpenCL The Presto Execution System: Designing for Multithreading George ElKouraIntroduction Presto Presto's Execution SystemUser ExtensionsMemory Access Patterns Flexibi