书籍详情

Python 并行编程手册

Python 并行编程手册

作者:(意大利)詹卡洛 扎克尼 著,张龙 译

出版社:电子工业出版社

出版时间:2018-04-01

ISBN:9787121337536

定价:¥59.00

购买这本书可以去
内容简介
  若想充分利用所有的计算资源来构建高效的软件系统,并行编程技术是不可或缺的一项技能。本书以Python为蓝本,对并行编程领域的各项技术与知识进行了广泛且深入的讲解。通过对本书的学习,读者将能够快速且准确地掌握并行编程方方面面的技能,从而应用在自己的项目开发中,提升系统运行效率。本书共分为6章,从原理到实践系统化地对并行编程技术进行了层层剖析,并通过大量可运行的实例演示了每一个知识点的具体运用方式,是提升并行编程技能的一本不可多得的好书。相信本书的出版将会填补Python在并行领域应用的一大空白,能够帮助想要从事并行编程与并行计算的读者提升实践能力,并将这一能力应用到实际的项目开发中。
作者简介
  Giancarlo Zaccone拥有超过10年的管理研发项目的经验,涉及到科学与工业这两个领域。他曾以研究员身份就职于国家研究委员会(CNR),主要从事一些并行科学计算与科学可视化项目。他目前作为一名软件工程师就职于一家咨询公司,主要负责开发和维护一些面向太空和防御应用的软件系统。Giancarlo拥有那不勒斯费德里科II大学的物理学硕士学位,并且获得了罗马大学科学计算专业的第二研究生学位。可以通过https://it.linkedin.com/in/giancarlozaccone了解到关于Giancarlo的更多信息。两位译者均拥有10年以上的系统研发与管理经验,关注领域主要有高并发程序设计、JVM设计与实现、函数式编程与分布式系统设计与实现。对于编写优雅的代码有着不懈的追求,喜欢一切简单而美好的事物。
目录

1 并行计算与Python起步...............................................1

介绍 ..................................1

并行计算内存架构 ..........2

内存组织 ..........................5

并行编程模型 ................10

如何设计并行程序 ........12

如何评估并行程序的性能 ....................................................14 

Python简介 ....................16

并行世界中的Python ....20

进程与线程介绍 ............21

开始在Python中使用进程 ....................................................21

开始在Python中使用线程 ....................................................23

2 基于线程的并行. .27

介绍 ................................27

使用Python的线程模块 28

如何定义线程 ................28 

如何确定当前的线程 ....30

如何在子类中使用线程 32

使用Lock与RLock实现线程同步 ........................................34

使用RLock实现线程同步 .....................................................38

使用信号量实现线程同步 ....................................................40

使用条件实现线程同步 44

使用事件实现线程同步 47

使用with语句 ................51

使用队列实现线程通信 53

评估多线程应用的性能 57

3 基于进程的并行63

介绍 ................................64

如何生成进程 ................64

如何对进程命名 ............66

如何在后台运行进程 ....68

如何杀死进程 ................69

如何在子类中使用进程 70

如何在进程间交换对象 72

如何同步进程 ................78

如何管理进程间状态 ....81

如何使用进程池 ............82

使用mpi4py模块 ...........84

点对点通信 ....................87

避免死锁问题 ................91

使用广播实现聚合通信 94

使用scatter实现聚合通信 .....................................................96

使用gather实现聚合通信 ......................................................99

使用Alltoall实现聚合通信 .................................................101 

汇聚操作 ......................103

如何优化通信 ..............105

4 异步编程. ........111

介绍 .............................. 111

使用 Python的 concurrent.futures 模块 .............................. 112

使用Asyncio实现事件循环管理 ........................................ 116

使用Asyncio处理协程 120

使用Asyncio管理任务 125

使用Asyncio和Futures 128

5 分布式Python133

介绍 ..............................133

使用 Celery 分发任务 .134

如何使用 Celery 创建任务 .................................................136

使用 SCOOP进行科学计算 ...............................................139

使用 SCOOP处理映射函数 ...............................................143

使用 Pyro4 远程调用方法 ..................................................147

使用 Pyro4 链接对象 ..150

使用 Pyro4 开发一个客户端-服务器应用.........................156

使用 PyCSP实现顺序进程通信 ........................................162

在Disco中使用 MapReduce ................................................167

使用 RPyC 调用远程过程 ..................................................172

6 使用Python进行GPU编程. ......................................175

介绍 ..............................175

使用 PyCUDA模块 ....177

如何构建一个 PyCUDA应用 ............................................181 

通过矩阵操作理解 PyCUDA内存模型 ............................186

使用 GPUArray 调用内核 ..................................................192

使用 PyCUDA对逐元素表达式求值 ................................194

使用 PyCUDA进行 MapReduce 操作 ...............................198

使用 NumbaPro 进行GPU编程 ..........................................201

通过 NumbaPro 使用 GPU 加速的库 ................................206

使用 PyOpenCL模块 .. 211

如何构建一个 PyOpenCL应用 ..........................................214

使用PyOpenCL对逐元素表达式求值 ................................218

使用 PyOpenCL测试 GPU 应用 ........................................221


猜您喜欢

读书导航