Master efficient parallel programming to build powerful applications using Python About This Book * Design and implement efficient parallel software * Master new programming techniques to address and solve complex programming problems * Explore the world of parallel programming with this book, which
Python parallel programming cookbook: master efficient parallel programming to build powerful applications using Python
โ Scribed by Zaccone, Giancarlo
- Publisher
- Packt Publishing Limited
- Year
- 2015
- Tongue
- English
- Leaves
- 286
- Series
- Quick answers to common problems
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
Master efficient parallel programming to build powerful applications using Python About This Book * Design and implement efficient parallel software * Master new programming techniques to address and solve complex programming problems * 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 Who This Book Is For Python 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. 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 In Detail 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 asyn
โฆ Table of Contents
""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""
๐ SIMILAR VOLUMES
Parallel programming techniques are required for a developer to get the best use of all the computational resources available today and to build efficient software systems. From multi-core to GPU systems up to the distributed architectures, the high computation of programs throughout requires the us
<p> <b>Master efficient parallel programming to build powerful applications using Python</b> </p> <h2>About This Book</h2> <ul> <li>Design and implement efficient parallel software</li> <li>Master new programming techniques to address and solve complex programming problems</li> <li>Explore the world
Master efficient parallel programming to build powerful applications using Python About This Book โข Design and implement efficient parallel software โข Master new programming techniques to address and solve complex programming problems โข Explore the world of parallel programming with this book,
A fast, easy-to-follow and clear tutorial to help you develop Parallel computing systems using Python. Along with explaining the fundamentals, the book will also introduce you to slightly advanced concepts and will help you in implementing these techniques in the real world. If you are an experience