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
Parallel programming with Python: develop efficient parallel systems using the robust Python environment
โ Scribed by Martini, Lis Marie; Palach, Jan
- Publisher
- Packt Publishing Limited
- Year
- 2014
- Tongue
- English
- Leaves
- 122
- Series
- Community experience distilled
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
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 experienced Python programmer and are willing to utilize the available computing resources by parallelizing applications in a simple way, then this book is for you. You are required to have a basic knowledge of Python development to get the most of this book.
โฆ Table of Contents
Cover......Page 1
Copyright......Page 3
Credits......Page 4
About the Author......Page 5
Acknowledgments......Page 6
About the Reviewers......Page 7
www.PacktPub.com......Page 0
Table of Contents......Page 12
Preface......Page 16
Chapter 1: Contextualizing Parallel, Concurrent, and Distributed Programming......Page 22
Exploring common forms of parallelization......Page 24
Communicating in parallel programming......Page 26
Understanding message passing......Page 27
Starvation......Page 28
Race conditions......Page 29
The Python multiprocessing module......Page 30
Taking care of Python GIL......Page 31
Summary......Page 32
The divide and conquer technique......Page 34
Using data decomposition......Page 35
Decomposing tasks with pipeline......Page 36
Identifying the tasks that require data exchange......Page 37
Summary......Page 38
Obtaining the highest Fibonacci value for multiple inputs......Page 40
Crawling the Web......Page 42
Summary......Page 43
Defining threads......Page 44
Understanding different kinds of threads......Page 45
Defining the states of a thread......Page 46
Using threading to obtain the Fibonacci series term with multiple inputs......Page 47
Crawling the Web using the concurrent.futures module......Page 51
Summary......Page 55
Understanding the concept of a process......Page 56
Implementing multiprocessing communication......Page 57
Using multiprocessing.Pipe......Page 58
Using multiprocessing to compute Fibonacci series terms with multiple inputs......Page 60
Crawling the Web using ProcessPoolExecutor......Page 63
Summary......Page 66
Understanding interprocess communication......Page 68
Using named pipes with Python......Page 69
Writing in a named pipe......Page 70
Reading named pipes......Page 71
Discovering PP......Page 72
Using PP to calculate the Fibonacci series term on SMP architecture......Page 74
Using PP to make a distributed Web crawler......Page 76
Summary......Page 81
Understanding Celery......Page 82
Understanding Celery's architecture......Page 83
Working with tasks......Page 84
Understanding workers......Page 85
Setting up the client machine......Page 86
Dispatching a simple task......Page 88
Using Celery to obtain a Fibonacci series term......Page 91
Defining queues by task types......Page 94
Using Celery to make a distributed Web crawler......Page 96
Summary......Page 99
Understanding blocking, nonblocking, and asynchronous operations......Page 100
Understanding asynchronous operations......Page 101
Polling functions......Page 102
Using asyncio......Page 104
Using coroutine and asyncio.Future......Page 105
Using asyncio.Task......Page 107
Using an incompatible library with asyncio......Page 108
Summary......Page 111
Index......Page 114
Uploaded by [StormRG]......Page 118
โฆ Subjects
Computer Science;Programming
๐ SIMILAR VOLUMES
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
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
Develop efficient parallel systems using the robust Python environment About This Book โข Demonstrates the concepts of Python parallel programming โข Boosts your Python computing capabilities โข Contains easy-to-understand explanations and plenty of examples Who This Book Is For If you are an
Develop efficient parallel systems using the robust Python environment About This Book โข Demonstrates the concepts of Python parallel programming โข Boosts your Python computing capabilities โข Contains easy-to-understand explanations and plenty of examples Who This Book Is For If you are an
In Detail Starting with the basics of parallel programming, you will proceed to learn about how to build parallel algorithms and their implementation. You will then gain the expertise to evaluate problem domains, identify if a particular problem can be parallelized, and how to use the Threading a