Python Parallel Programming Cookbook
Tags
Summary
Editor's review
Who it's for
A good fit for
- 已掌握 Python 基础语法、想系统学习并发与并行编程的开发者
- 需要在项目中提升数据处理或科学计算性能的工程师
- 准备学习 mpi4py、Celery、PyCUDA 等并行与分布式工具的技术人员
- 计算机相关专业学生,用于配合课程做并行编程实验
Not a good fit for
- 尚无 Python 编程经验的零基础读者,示例难以独立运行
- 只想要理论推导与算法证明、不关心代码实现的读者
- 期望覆盖最新 Python 版本与主流替代库(如 Numba 新 API)的读者
Reading tips
- 建议先读第 1 章的性能评估部分,学会用 Amdahl 定律等方法判断并行是否值得做。
- 按“线程—进程—异步—分布式—GPU”的顺序推进,动手运行并改造每章示例。
- 运行示例时注意版本差异,NumbaPro 等已停更的库可用 Numba 等替代,理解思路优先于照抄代码。
About the publisher
The Publishing House of Electronics Industry is a comprehensive publisher distinguished by its focus on electronic information and related fields. Judging from the more than 3,000 titles in its catalogue, its publishing covers programming and design, artificial intelligence, computer science, finance and economics, photography, and social sciences, attending both to cutting-edge technology and to general readers. Representative titles include Factor Investing: Methods and Practice, x86 Assembly Language: From Real Mode to Protected Mode, The RISC-V Reader, Artificial Intelligence: Speech Recognition, Understanding and Practice, Phased Array Radar Technology, Radar Target Characteristics, and 100 Go Mistakes and How to Avoid Them, most of which centre on technical methods and engineering practice. Its authors include Shi Chuan, Li Zhong, Wang Xiaobo, David Patterson, Andrew Waterman, and Yu Zihao, among others from China and abroad. Owing to limited public information, no further publishing features are elaborated here.
Contents
- Chapter 1 Getting Started with Parallel Computing and Python: Memory Architecture for Parallel Computing; Memory Organization; Parallel Programming Models; How to Design Parallel Programs; How to Evaluate the Performance of Parallel Programs; Introduction to Python; Python in the Parallel World; Introduction to Processes and Threads
- Chapter 2 Thread-Based Parallelism: Using Python's threading Module; How to Define a Thread; How to Determine the Current Thread; How to Use a Thread in a Subclass; Synchronizing Threads with Lock and RLock; Synchronizing Threads with Semaphores; Synchronizing Threads with Conditions; Synchronizing Threads with Events; Using the with Statement; Communicating Between Threads with Queues; Evaluating the Performance of Multithreaded Applications
- Chapter 3 Process-Based Parallelism: 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 State Between Processes; How to Use a Process Pool; Using the mpi4py Module; Point-to-Point Communication; Avoiding Deadlocks; Collective Communication with Broadcast/Scatter/Gather/Alltoall; Reduction Operations; How to Optimize Communication
- Chapter 4 Asynchronous Programming: Using Python's concurrent.futures Module; Event Loop Management with Asyncio; Handling Coroutines with Asyncio; Managing Tasks with Asyncio; Using Asyncio with Futures
- Chapter 5 Distributed Python: Distributing Tasks with Celery; How to Create Tasks with Celery; Scientific Computing with SCOOP; Handling Map Functions with SCOOP; Remote Method Invocation with Pyro4; Linking Objects with Pyro4; Developing a Client-Server Application with Pyro4; Communicating Sequential Processes with PyCSP; MapReduce with Disco; Remote Procedure Calls with RPyC
- Chapter 6 GPU Programming with Python: Using the PyCUDA Module; How to Build a PyCUDA Application; Understanding the PyCUDA Memory Model Through Matrix Operations; Invoking Kernels with GPUArray; Evaluating Element-wise Expressions with PyCUDA; MapReduce Operations with PyCUDA; GPU Programming with NumbaPro; Using GPU-Accelerated Libraries Through NumbaPro; Using the PyOpenCL Module; How to Build a PyOpenCL Application; Element-wise Operations with PyOpenCL
FAQ
这本书有中文版吗?
这本书的作者是谁?
零基础可以读这本书吗?
书中的代码现在还能直接运行吗?
这本书一共多少章?
Comments
Find this book
This site is an index: you start “Search all sources” in your browser, and the entries it lists all point to third-party sites; please judge their availability yourself.