There are currently no items in your shopping cart.

User Panel

Forgot your password?.

Python Parallel Programming Solutions

Video Introducing this tutorial

1. Getting Started with Parallel Computing and Python

The parallel computing memory architecture
Memory organization
Memory organization continued
Parallel programming models
Designing a parallel program
Evaluating the performance of a parallel program
Introducing Python
Working with processes in Python
Working with threads in Python

2. Thread-Based Parallelism

Defining a thread
Determining the current thread
Using a thread in a subclass
Thread synchronization with lock
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

3. Process-Based Parallelism

Spawning a process
Naming a process
Running a process in the background
Killing a process
Using a process in a subclass
Exchanging objects between processes
Synchronizing processes
Managing a state between processes
Using a process pool
Using the mpi4py Python module
Point-to-point communication
Avoiding deadlock problems
Using broadcast for collective communication
Using scatter for collective communication
Using gather for collective communication
Using alltoall for collective communication
The reduction operation
Optimizing the communication

4. Asynchronous Programming

Using the concurrent.futures Python modules
Event loop management with Asyncio
Handling co-routines with Asyncio
Manipulating a task with Asyncio
Dealing with Asyncio and futures

5. Distributed Python

Using Celery to distribute tasks
Creating 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
A remote procedure call with RPyC

6. GPU Programming with Python

Using the PyCUDA module
Building a PyCUDA application
Understanding the PyCUDA memory model with matrix manipulation
Kernel invocations with GPU array
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
Building a PyOpenCL application
Evaluating element-wise expressions with PyOpenCL
Testing your gpu application with PyOpenCL