内容简介
若想充分利用所有的计算资源来构建高效的软件系统,并行编程技术是不可或缺的一项技能。本书以Python为蓝本,对并行编程领域的各项技术与知识进行了广泛且深入的讲解。通过对本书的学习,读者将能够快速且准确地掌握并行编程方方面面的技能,从而应用在自己的项目开发中,提升系统运行效率。本书共分为6章,从原理到实践系统化地对并行编程技术进行了层层剖析,并通过大量可运行的实例演示了每一个知识点的具体运用方式,是提升并行编程技能的一本不可多得的好书。相信本书的出版将会填补Python在并行领域应用的一大空白,能够帮助想要从事并行编程与并行计算的读者提升实践能力,并将这一能力应用到实际的项目开发中。
目录
1并行计算与Python起步
介绍
并行计算内存架构
内存组织
并行编程模型
如何设计并行程序
如何评估并行程序的性能
Python简介
并行世界中的Python
进程与线程介绍
开始在Python中使用进程
开始在Python中使用线程
2基于线程的并行
介绍
使用Python的线程模块
如何定义线程
如何确定当前的线程
如何在子类中使用线程
使用Lock与RLock实现线程同步
使用RLock实现线程同步
使用信号量实现线程同步
使用条件实现线程同步
使用事件实现线程同步
使用with语句
使用队列实现线程通信
评估多线程应用的性能
3基于进程的并行
介绍
如何生成进程
如何对进程命名
如何在后台运行进程
如何杀死进程
如何在子类中使用进程
如何在进程间交换对象
如何同步进程
如何管理进程间状态
如何使用进程池
使用mpi4py模块
点对点通信
避免死锁问题
使用广播实现聚合通信
使用scatter实现聚合通信
使用gather实现聚合通信
使用Alltoall实现聚合通信
汇聚操作
如何优化通信
4异步编程
介绍
使用Python的concurrent.futures模块
使用Asyncio实现事件循环管理
使用Asyncio处理协程
使用Asyncio管理任务
使用Asyncio和Futures
5分布式Python
介绍
使用Celery分发任务
如何使用Celery创建任务
使用SCOOP进行科学计算
使用SCOOP处理映射函数
使用Pyro4远程调用方法
使用Pyro4链接对象
使用Pyro4开发一个客户端—服务器应用
使用PyCSP实现顺序进程通信
在Disco中使用MapReduce
使用RPyC调用远程过程
6使用Python进行GPU编程
介绍
使用PyCUDA模块
如何构建一个PyCUDA应用
通过矩阵操作理解PyCUDA内存模型
使用GPUArray调用内核
使用PyCUDA对逐元素表达式求值
使用PyCUDA进行MapReduce操作
使用NumbaPro进行GPU编程
通过NumbaPro使用GPU加速的库
使用PyOpenCL模块
如何构建一个PyOpenCL应用
使用PyOpenCL对逐元素表达式求值
使用PyOpenCL测试GPU应用
文档截图