
Seven Concurrency Models in Seven Weeks
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
Your software needs to leverage multiple cores, handle thousands of users and terabytes of data, and continue working in the face of both hardware and software failure. Concurrency and parallelism are the keys, and Seven Concurrency Models in Seven Weeks equips you for this new world. See how emerging technologies such as actors and functional programming address issues with traditional threads and locks development. Learn how to exploit the parallelism in your computer's GPU and leverage clusters of machines with MapReduce and Stream Processing. And do it all with the confidence that comes from using tools that help you write crystal clear, high-quality code.
This book will show you how to exploit different parallel architectures to improve your code's performance, scalability, and resilience. You'll learn about seven concurrency models: threads and locks, functional programming, separating identity and state, actors, sequential processes, data parallelism, and the lambda architecture.
Learn about the perils of traditional threads and locks programming and how to overcome them through careful design and by working with the standard library. See how actors enable software running on geographically distributed computers to collaborate, handle failure, and create systems that stay up 24/7/365. Understand why shared mutable state is the enemy of robust concurrent code, and see how functional programming together with technologies such as Software Transactional Memory (STM) and automatic parallelism help you tame it.
You'll learn about the untapped potential within every GPU and how GPGPU software can unleash it. You'll see how to use MapReduce to harness massive clusters to solve previously intractable problems, and how, in concert with Stream Processing, big data can be tamed.
With an understanding of the strengths and weaknesses of each of the different models and hardware architectures, you'll be empowered to tackle any problem with confidence.
What You Need:
The example code can be compiled and executed on *nix, OS X, or Windows. Instructions on how to download the supporting build systems are given in each chapter.
More details
Other editions
Additional editions

Person
Paul Butcher has worked in diverse fields at all levels of abstraction, from microcode on bit-slice processors to high-level declarative programming, and all points in between. Paul's experience comes from working for startups, where he's had the privilege of collaborating with several great teams on cutting-edge technology. He is the author of "Debug It!."
Content
- Intro
- Seven Concurrency Models in Seven Weeks
- For the Best Reading Experience...
- Table of Contents
- Early Praise for Seven Concurrency Models in Seven Weeks
- Foreword
- Acknowledgments
- Preface
- About This Book
- What This Book Is Not
- Example Code
- Online Resources
- Chapter 1: Introduction
- Concurrent or Parallel?
- Parallel Architecture
- Concurrency: Beyond Multiple Cores
- The Seven Models
- Chapter 2: Threads and Locks
- The Simplest Thing That Could Possibly Work
- Day 1: Mutual Exclusion and Memory Models
- Day 2: Beyond Intrinsic Locks
- Day 3: On the Shoulders of Giants
- Wrap-Up
- Chapter 3: Functional Programming
- If It Hurts, Stop Doing It
- Day 1: Programming Without Mutable State
- Day 2: Functional Parallelism
- Day 3: Functional Concurrency
- Wrap-Up
- Chapter 4: The Clojure Way- Separating Identity from State
- The Best of Both Worlds
- Day 1: Atoms and Persistent Data Structures
- Day 2: Agents and Software Transactional Memory
- Day 3: In Depth
- Wrap-Up
- Chapter 5: Actors
- More Object-Oriented than Objects
- Day 1: Messages and Mailboxes
- Day 2: Error Handling and Resilience
- Day 3: Distribution
- Wrap-Up
- Chapter 6: Communicating Sequential Processes
- Communication Is Everything
- Day 1: Channels and Go Blocks
- Day 2: Multiple Channels and IO
- Day 3: Client-Side CSP
- Wrap-Up
- Chapter 7: Data Parallelism
- The Supercomputer Hidden in Your Laptop
- Day 1: GPGPU Programming
- Day 2: Multiple Dimensions and Work-Groups
- Day 3: OpenCL and OpenGL-Keeping It on the GPU
- Wrap-Up
- Chapter 8: The Lambda Architecture
- Parallelism Enables Big Data
- Day 1: MapReduce
- Day 2: The Batch Layer
- Day 3: The Speed Layer
- Wrap-Up
- Chapter 9: Wrapping Up
- Where Are We Going?
- Roads Not Taken
- Over to You
- Bibliography
- You May Be Interested In.
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.