参考:python-parallel-programming-cookbook-cn:https://python-parallel-programmning-cookbook.readthedocs.io/zh_CN/latest/
第一章 认识并行计算和Python
- 1. 介绍
- 2. 并行计算的内存架构
- 3. 内存管理
- 4. 并行编程模型
- 5. 如何设计一个并行程序
- 6. 如何评估并行程序的性能
- 7. 介绍Python
- 8. 并行世界的Python
- 9. 介绍线程和进程
- 10. 开始在Python中使用进程
- 11. 开始在Python中使用线程
第二章 基于线程的并行
- 1. 介绍
- 2. 使用Python的线程模块
- 3. 如何定义一个线程
- 4. 如何确定当前的线程
- 5. 如何实现一个线程
- 6. 使用Lock进行线程同步
- 7. 使用RLock进行线程同步
- 8. 使用信号量进行线程同步
- 9. 使用条件进行线程同步
- 10. 使用事件进行线程同步
- 11. 使用with语法
- 12. 使用
queue
进行线程通信 - 13. 评估多线程应用的性能
第三章 基于进程的并行
- 1. 介绍
- 2. 如何产生一个进程
- 3. 如何为一个进程命名
- 4. 如何在后台运行一个进程
- 5. 如何杀掉一个进程
- 6. 如何在子类中使用进程
- 7. 如何在进程之间交换对象
- 8. 进程如何同步
- 9. 如何在进程之间管理状态
- 10. 如何使用进程池
- 11. 使用Python的mpi4py模块
- 12. 点对点通讯
- 13. 避免死锁问题
- 14. 集体通讯:使用broadcast通讯
- 15. 集体通讯:使用scatter通讯
- 16. 集体通讯:使用gather通讯
- 17. 使用Alltoall通讯
- 18. 简化操作
- 19. 如何优化通讯
第四章 异步编程
- 1. 介绍
- 2. 使用Python的
concurrent.futures
模块 - 3. 使用Asyncio管理事件循环
- 4. 使用Asyncio管理协程
- 5. 使用Asyncio控制任务
- 6. 使用Asyncio和Futures
第五章 分布式Python编程
- 1. 介绍
- 2. 使用Celery实现分布式任务
- 3. 如何使用Celery创建任务
- 4. 使用SCOOP进行科学计算
- 5. 通过 SCOOP 使用 map 函数
- 6. 使用Pyro4进行远程方法调用
- 7. 使用 Pyro4 链接对象
- 8. 使用Pyro4部署客户端-服务器应用
- 9. PyCSP和通信顺序进程
- 10. 使用Disco进行MapReduce
- 11. 使用RPyC远程调用
第六章 Python GPU编程
- 1. 介绍
- 2. 使用PyCUDA模块
- 3. 如何创建一个PyCUDA应用
- 4. 理解PyCuDA内存模型
- 5. 使用GPUArray进行内核调用
- 6. 使用PyCUDA评估元素
- 7. 使用PyCUDA进行MapReduce操作
- 8. 使用NumbaPro进行GPU编程
- 9. 使用GPU加速的库
- 10. 使用PyOpenCL模块
- 11. 如何创建一个PyOpenCL应用
- 12. 使用PyOpenCL评估元素
- 13. 使用PyOpenCL测试你的GPU应用