Multiprocessing is a standard Python module that targets machines with multiple processors. Multiprocessing works around the Global Interpreter Lock (GIL) by creating multiple processes.
Multiprocessing supports process pools, queues, and pipes. A process pool is a pool of system processes that can execute a function in parallel. Queues are data structures that are usually used to store tasks. Pipes connect different processes in such a way that the output of one process becomes the input of another.
Note
Windows doesn't have an os.fork()
function, so we need to make sure that outside the if __name__ == "__main__"
block only imports and def
blocks are defined.
Create a pool and register a function as follows:
p = mp.Pool(nprocs)
The pool has a map()
method that is the parallel equivalent of the Python map()
function:
p.map(simulate, [i for i in xrange(10, 50)])
We will simulate...