Parallel and Concurrent Programming in Haskell Techniques for Multicore and Multithreaded Programming

Parallel and Concurrent Programming in Haskell Techniques for Multicore and Multithreaded Programming
548 грн
O'Reilly Media
Simon Marlow
Срок поставки
7-10 дней
  • По ХарьковуДоставка курьером - 50 грн
    Бесплатно - от 1000 грн
  • По УкраинеБесплатно - от 1000 грн
    Новая Почта - от 30 грн
    Укрпочта - от 20 грн
  • Международная доставкаУкрпочта...
Подробнее о доставке

If you have a working knowledge of Haskell, this hands-on book shows you how to use the language’s many APIs and frameworks for writing both parallel and concurrent programs. You’ll learn how parallelism exploits multicore processors to speed up computation-heavy programs, and how concurrency enables you to write programs with threads for multiple interactions. Author Simon Marlow walks you through the process with lots of code examples that you can run, experiment with, and extend. Divided into separate sections on Parallel and Concurrent Haskell, this book also includes exercises to help you become familiar with the concepts presented: Express parallelism in Haskell with the Eval monad and Evaluation Strategies Parallelize ordinary Haskell code with the Par monad Build parallel array-based computations, using the Repa library Use the Accelerate library to run computations directly on the GPU Work with basic interfaces for writing concurrent code Build trees of threads for larger and more complex programs Learn how to build high-speed concurrent network servers Write distributed programs that run on multiple machines in a network


Купить книгу на русском языке

Chapter 1 : Introduction
Terminology: Parallelism and Concurrency
Tools and Resources
Sample Code
Parallel Haskell
Chapter 2 : Basic Parallelism: The Eval Monad
Lazy Evaluation and Weak Head Normal Form
The Eval Monad, rpar, and rseq
Example: Parallelizing a Sudoku Solver
Chapter 3 : Evaluation Strategies
Parameterized Strategies
A Strategy for Evaluating a List in Parallel
Example: The K-Means Problem
GC’d Sparks and Speculative Parallelism
Parallelizing Lazy Streams with parBuffer
Chunking Strategies
The Identity Property
Chapter 4 : Dataflow Parallelism: The Par Monad
Example: Shortest Paths in a Graph
Pipeline Parallelism
Example: A Conference Timetable
Example: A Parallel Type Inferencer
Using Different Schedulers
The Par Monad Compared to Strategies
Chapter 5 : Data Parallel Programming with Repa
Arrays, Shapes, and Indices
Operations on Arrays
Example: Computing Shortest Paths
Folding and Shape-Polymorphism
Example: Image Rotation
Chapter 6 : GPU Programming with Accelerate
Arrays and Indices
Running a Simple Accelerate Computation
Scalar Arrays
Indexing Arrays
Creating Arrays Inside Acc
Zipping Two Arrays
Example: Shortest Paths
Example: A Mandelbrot Set Generator
Concurrent Haskell
Chapter 7 : Basic Concurrency: Threads and MVars
A Simple Example: Reminders
Communication: MVars
MVar as a Simple Channel: A Logging Service
MVar as a Container for Shared State
MVar as a Building Block: Unbounded Channels
Chapter 8 : Overlapping Input/Output
Exceptions in Haskell
Error Handling with Async
Chapter 9 : Cancellation and Timeouts
Asynchronous Exceptions
Masking Asynchronous Exceptions
The bracket Operation
Asynchronous Exception Safety for Channels
Catching Asynchronous Exceptions
mask and forkIO
Asynchronous Exceptions: Discussion
Chapter 10 : Software Transactional Memory
Running Example: Managing Windows
Blocking Until Something Changes
Merging with STM
Async Revisited
Implementing Channels with STM
An Alternative Channel Implementation
Bounded Channels
What Can We Not Do with STM?
Chapter 11 : Higher-Level Concurrency Abstractions
Avoiding Thread Leakage
Symmetric Concurrency Combinators
Adding a Functor Instance
Summary: The Async API
Chapter 12 : Concurrent Network Servers
A Trivial Server
Extending the Simple Server with State
A Chat Server
Chapter 13 : Parallel Programming Using Threads
How to Achieve Parallelism with Concurrency
Example: Searching for Files
Chapter 14 : Distributed Programming
The Distributed-Process Family of Packages
Distributed Concurrency or Parallelism?
A First Example: Pings
Multi-Node Ping
Typed Channels
Handling Failure
A Distributed Chat Server
Exercise: A Distributed Key-Value Store
Chapter 15 : Debugging, Tuning, and Interfacing with Foreign Code
Debugging Concurrent Programs
Tuning Concurrent (and Parallel) Programs
Concurrency and the Foreign Function Interface

Товар входит в категории

Вы можете купить книгу с доставкой курьером новой поштой укрпочтой Кривой Рог, Львов, Полтава, Житомир, Черкассы, Харьков, Чернигов, Винница, Тернополь, Киев, Луцк, Ровно, Хмельницкий, Херсон, Кировоград, Николаев, Днепропетровск, Ужгород, Запорожье, Суммы, Черновцы, Одесса, Ивано-франковск, другие города Украины. только в нашем магазине низкие цены, возможен торг, прямые поступления от издательства,книги под заказ, печать книг на заказ, компьютерные книги на английском языке.

Ви можете купити придбати книгу з доставкою кур'єром нова пошта Укрпошта Кривий Ріг, Львів, Полтава, Житомир, Харків, Чернігів, Вінниця, Тернопіль, Київ, Луцьк, Рівне, Хмельницький, Херсон, Кіровоград, Миколаїв, Дніпропетровськ, Ужгород , Запоріжжя, Суми, Чернівці, Черкаси, Одеса, Івано-франківськ, інші міста України. тільки в нашому магазині низькі ціни, можливий торг, прямі надходження від видавництва, книги під замовлення, друк книг на замовлення, комп'ютерні книги англійською мовою.