內容簡介
對於開發人員而言,如今要想充分利用所有可用的計算資源來構建齣高效的軟件係統,並行編程技術是必不可少的技能。從多核到GPU係統,再到分布式架構,計算量繁重的程序都離不開編程工具和軟件庫。
《Python並行編程參考手冊(影印版)》首先簡要介紹瞭並行編程,然後講述瞭Python的基礎知識,接著探究瞭基於綫程的並行模型、采用同步綫程的Python綫程模塊以及鎖、互斥量、信號量隊列、GIL和綫程池的用法。
作者簡介
Giancarlo Zaccone has more than 10 years of experience in managing research projects,both in scientific and industrial domains. He worked as a researcher at the National Research Council (CNR), where he was involved in a few parallel numerical computing and scientific visualization projects.
He currently works as a software engineer at a consulting company, developing and maintaining software systems for space and defense applications.
Giancarlo holds a master's degree in physics from the University of Naples Federico Ⅱ and has completed a second-level postgraduate master's program in scientific computing from the Sapienza University of Rome.
目錄
Preface
Chapter 1: Getting Started with Parallel Computing and Python
Introduction
The parallel computing memory architecture
Memory organization
Parallel programming models
How to design a parallel program
How to evaluate the performance of a parallel program
Introducing Python
Python in a parallel world
Introducing processes and threads
Start working with processes in Python
Start working with threads in Python
Chapter 2: Thread-based Parallelism
Introduction
Using the Python threading module
How to define a thread
How to determine the current thread
How to use a thread in a subclass
Thread synchronization with Lock and RLock
Thread synchronization with RLock
Thread synchronization with semaphores
Thread synchronization with a condition
Thread synchronization with an event
Using the with statement
Thread communication using a queue
Evaluating the performance of multithread applications
Chapter 3: Process-based Parallelism
Introduction
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 a state between processes
How to use a process pool
Using the mpi4py Python module
Point-to-point communication
Avoiding deadlock problems
Collective communication using broadcast
Collective communication using scatter
Collective communication using gather
Collective communication using AIItoall
The reduction operation
How to optimize communication
Chapter 4: Asynchronous Programming
Introduction
Using the concurrent.futures Python modules
Event loop management with Asyncio
Handling coroutines with Asyncio
Task manipulation with Asyncio
Dealing with Asyncio and Futures
Chapter 5: Distributed Python
Introduction
Using Celery to distribute tasks
How to create a task with Celery
Scientific computing with SCOOP
Handling map functions with SCOOP
Remote Method Invocation with Pyro4
Chaining objects with Pyro4
Developing a client-server application with Pyro4
Communicating sequential processes with PyCSP
Using MapReduce with Disco
A remote procedure call with RPyC
Chapter 6: GPU Programming with Python
Introduction
Using the PyCUDA module
How to build a PyCUDA application
Understanding the PyCUDA memory model with matrix manipulation
Kernel invocations with GPUArray
Evaluating element-wise expressions with PyCUDA
The MapReduce operation with PyCUDA
GPU programming with NumbaPro
Using GPU-accelerated libraries with NumbaPro
Using the PyOpenCL module
How to build a PyOpenCL application
Evaluating element-wise expressions with PyOpenCI
Testing your GPU application with PyOpenCL
Index
Python並行編程參考手冊(影印版) [Python Parallel Programming Cookbook] 下載 mobi epub pdf txt 電子書 格式
Python並行編程參考手冊(影印版) [Python Parallel Programming Cookbook] 下載 mobi pdf epub txt 電子書 格式 2024
Python並行編程參考手冊(影印版) [Python Parallel Programming Cookbook] mobi epub pdf txt 電子書 格式下載 2024