Python Parallel Programming Cookbook

Master efficient parallel programming to build powerful applications using Python
Preview in Mapt

Python Parallel Programming Cookbook

Giancarlo Zaccone

1 customer reviews
Master efficient parallel programming to build powerful applications using Python

Quick links: > What will you learn?> Table of content> Product reviews

eBook
$5.00
RRP $39.99
Save 87%
Print + eBook
$49.99
RRP $49.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$5.00
$49.99
RRP $39.99
RRP $49.99
eBook
Print + eBook

Frequently bought together


Python Parallel Programming Cookbook Book Cover
Python Parallel Programming Cookbook
$ 39.99
$ 5.00
Expert Python Programming - Second Edition Book Cover
Expert Python Programming - Second Edition
$ 35.99
$ 5.00
Buy 2 for $10.00
Save $65.98
Add to Cart

Book Details

ISBN 139781785289583
Paperback286 pages

Book Description

This book will teach you parallel programming techniques using examples in Python and will help you explore the many ways in which you can write code that allows more than one process to happen at once. Starting with introducing you to the world of parallel computing, it moves on to cover the fundamentals in Python. This is followed by exploring the thread-based parallelism model using the Python threading module by synchronizing threads and using locks, mutex, semaphores queues, GIL, and the thread pool.

Next you will be taught about process-based parallelism where you will synchronize processes using message passing along with learning about the performance of MPI Python Modules. You will then go on to learn the asynchronous parallel programming model using the Python asyncio module along with handling exceptions. Moving on, you will discover distributed computing with Python, and learn how to install a broker, use Celery Python Module, and create a worker.

You will understand anche Pycsp, the Scoop framework, and disk modules in Python. Further on, you will learnGPU programming withPython using the PyCUDA module along with evaluating performance limitations.

Table of Contents

Chapter 1: Getting Started with Parallel Computing and Python
Introduction
The parallel computing memory architecture
Memory organization
Parallel programming models
How to design a parallel program
How to evaluate the performance of a parallel program
Introducing Python
Python in a parallel world
Introducing processes and threads
Start working with processes in Python
Start working with threads in Python
Chapter 2: Thread-based Parallelism
Introduction
Using the Python threading module
How to define a thread
How to determine the current thread
How to use a thread in a subclass
Thread synchronization with Lock and RLock
Thread synchronization with RLock
Thread synchronization with semaphores
Thread synchronization with a condition
Thread synchronization with an event
Using the with statement
Thread communication using a queue
Evaluating the performance of multithread applications
Chapter 3: Process-based Parallelism
Introduction
How to spawn a process
How to name a process
How to run a process in the background
How to kill a process
How to use a process in a subclass
How to exchange objects between processes
How to synchronize processes
How to manage a state between processes
How to use a process pool
Using the mpi4py Python module
Point-to-point communication
Avoiding deadlock problems
Collective communication using broadcast
Collective communication using scatter
Collective communication using gather
Collective communication using Alltoall
The reduction operation
How to optimize communication
Chapter 4: Asynchronous Programming
Introduction
Using the concurrent.futures Python modules
Event loop management with Asyncio
Handling coroutines with Asyncio
Task manipulation with Asyncio
Dealing with Asyncio and Futures
Chapter 5: Distributed Python
Introduction
Using Celery to distribute tasks
How to create a task with Celery
Scientific computing with SCOOP
Handling map functions with SCOOP
Remote Method Invocation with Pyro4
Chaining objects with Pyro4
Developing a client-server application with Pyro4
Communicating sequential processes with PyCSP
Using MapReduce with Disco
A remote procedure call with RPyC
Chapter 6: GPU Programming with Python
Introduction
Using the PyCUDA module
How to build a PyCUDA application
Understanding the PyCUDA memory model with matrix manipulation
Kernel invocations with GPUArray
Evaluating element-wise expressions with PyCUDA
The MapReduce operation with PyCUDA
GPU programming with NumbaPro
Using GPU-accelerated libraries with NumbaPro
Using the PyOpenCL module
How to build a PyOpenCL application
Evaluating element-wise expressions with PyOpenCl
Testing your GPU application with PyOpenCL

What You Will Learn

  • Synchronize multiple threads and processes to manage parallel tasks
  • Implement message passing communication between processes to build parallel applications
  • Program your own GPU cards to address complex problems
  • Manage computing entities to execute distributed computational tasks
  • Write efficient programs by adopting the event-driven programming model
  • Explore the cloud technology with DJango and Google App Engine
  • Apply parallel programming techniques that can lead to performance improvements

Authors

Table of Contents

Chapter 1: Getting Started with Parallel Computing and Python
Introduction
The parallel computing memory architecture
Memory organization
Parallel programming models
How to design a parallel program
How to evaluate the performance of a parallel program
Introducing Python
Python in a parallel world
Introducing processes and threads
Start working with processes in Python
Start working with threads in Python
Chapter 2: Thread-based Parallelism
Introduction
Using the Python threading module
How to define a thread
How to determine the current thread
How to use a thread in a subclass
Thread synchronization with Lock and RLock
Thread synchronization with RLock
Thread synchronization with semaphores
Thread synchronization with a condition
Thread synchronization with an event
Using the with statement
Thread communication using a queue
Evaluating the performance of multithread applications
Chapter 3: Process-based Parallelism
Introduction
How to spawn a process
How to name a process
How to run a process in the background
How to kill a process
How to use a process in a subclass
How to exchange objects between processes
How to synchronize processes
How to manage a state between processes
How to use a process pool
Using the mpi4py Python module
Point-to-point communication
Avoiding deadlock problems
Collective communication using broadcast
Collective communication using scatter
Collective communication using gather
Collective communication using Alltoall
The reduction operation
How to optimize communication
Chapter 4: Asynchronous Programming
Introduction
Using the concurrent.futures Python modules
Event loop management with Asyncio
Handling coroutines with Asyncio
Task manipulation with Asyncio
Dealing with Asyncio and Futures
Chapter 5: Distributed Python
Introduction
Using Celery to distribute tasks
How to create a task with Celery
Scientific computing with SCOOP
Handling map functions with SCOOP
Remote Method Invocation with Pyro4
Chaining objects with Pyro4
Developing a client-server application with Pyro4
Communicating sequential processes with PyCSP
Using MapReduce with Disco
A remote procedure call with RPyC
Chapter 6: GPU Programming with Python
Introduction
Using the PyCUDA module
How to build a PyCUDA application
Understanding the PyCUDA memory model with matrix manipulation
Kernel invocations with GPUArray
Evaluating element-wise expressions with PyCUDA
The MapReduce operation with PyCUDA
GPU programming with NumbaPro
Using GPU-accelerated libraries with NumbaPro
Using the PyOpenCL module
How to build a PyOpenCL application
Evaluating element-wise expressions with PyOpenCl
Testing your GPU application with PyOpenCL

Book Details

ISBN 139781785289583
Paperback286 pages
Read More
From 1 reviews

Read More Reviews

Recommended for You

Expert Python Programming - Second Edition Book Cover
Expert Python Programming - Second Edition
$ 35.99
$ 5.00
Modern Python Cookbook Book Cover
Modern Python Cookbook
$ 39.99
$ 5.00
Building RESTful Python Web Services Book Cover
Building RESTful Python Web Services
$ 39.99
$ 5.00
Building Machine Learning Systems with Python Book Cover
Building Machine Learning Systems with Python
$ 29.99
$ 5.00
Modular Programming with Python Book Cover
Modular Programming with Python
$ 31.99
$ 5.00
Neural Network Programming with Java Book Cover
Neural Network Programming with Java
$ 35.99
$ 5.00