
Python Parallel Programming Cookbook
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
- 2. Master new programming techniques to address and solve complex programming problems
- 3. Explore the world of parallel programming with this book, which is a go-to resource for different kinds of parallel computing tasks in Python, using examples and topics covered in great depth
Book DescriptionThis 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.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
Who this book is forPython Parallel Programming Cookbook is intended for software developers who are well versed with Python and want to use parallel programming techniques to write powerful and efficient code. This book will help you master the basics and the advanced of parallel computing.
All prices
More details
Other editions
Additional editions

Person
Giancarlo Zaccone has over fifteen years' experience of managing research projects in the scientific and industrial domains. He is a software and systems engineer at the European Space Agency (ESTEC), where he mainly deals with the cybersecurity of satellite navigation systems. Giancarlo holds a master's degree in physics and an advanced master's degree in scientific computing. Giancarlo has already authored the following titles, available from Packt: Python Parallel Programming Cookbook (First Edition), Getting Started with TensorFlow, Deep Learning with TensorFlow (First Edition), and Deep Learning with TensorFlow (Second Edition).
Content
- Cover
- Copyright
- Credits
- About the Author
- About the Reviewers
- www.PacktPub.com
- Table of Contents
- Preface
- 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
- Threads 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 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 the 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
- Index
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.
File format: PDF
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 (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
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.