Differences between revisions 31 and 33 (spanning 2 versions)
Revision 31 as of 2008-04-16 21:58:16
Size: 8012
Editor: aegis
Comment:
Revision 33 as of 2008-09-02 03:06:11
Size: 8258
Editor: 123
Comment: Added mention of multiprocessing now being part of Python 2.6
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
 * [http://www.honeypot.net/multi-processing-map-python forkmap] - fork-based process creation using a function resembling Python's built-in map function (''Unix, Mac, Cygwin'')  * [http://honeypot.net/multi-processing-map-python forkmap] - fork-based process creation using a function resembling Python's built-in map function (''Unix, Mac, Cygwin'')
 * [http://honeypot.net/yet-another-python-map ppmap] - variant of forkmap using pp to manage the subprocesses (''Unix, Mac, Cygwin'')
Line 14: Line 15:
 * [http://www.python.org/pypi/processing processing] - process-based using either fork on Unix or the subprocess module on Windows, implementing an API like the standard library's threading API and providing familiar objects such as queues and semaphores. Can use native semaphores, message queues etc or can use of a manager process for sharing objects (''Unix and Windows'')  * [http://www.python.org/pypi/processing processing] - process-based using either fork on Unix or the subprocess module on Windows, implementing an API like the standard library's threading API and providing familiar objects such as queues and semaphores. Can use native semaphores, message queues etc or can use of a manager process for sharing objects (''Unix and Windows'') (''[http://docs.python.org/dev/library/multiprocessing.html#module-multiprocessing included in Python 2.6/3.0]'')

Parallel Processing and Multiprocessing in Python

A number of Python-related libraries exist for the programming of solutions either employing multiple CPUs or multicore CPUs in a [http://en.wikipedia.org/wiki/Symmetric_multiprocessing symmetric multiprocessing (SMP)] or shared memory environment, or potentially huge numbers of computers in a cluster or grid environment. This page seeks to provide references to the different libraries and solutions available.

Symmetric Multiprocessing

Some libraries, often to preserve some similarity with more familiar concurrency models (such as Python's threading API), employ parallel processing techniques which limit their relevance to SMP-based hardware, mostly due to the usage of process creation functions such as the UNIX fork system call. However, a technique called process migration may permit such libraries to be useful in certain kinds of computational clusters as well, notably [http://en.wikipedia.org/wiki/Single-system_image single-system image] cluster solutions ([http://sourceforge.net/projects/ssic-linux OpenSSI] and [http://openmosix.sourceforge.net/ OpenMosix] being examples).

Advantages of such approaches include convenient process creation and the ability to share resources. Indeed, the fork system call permits efficient sharing of common read-only data structures on modern UNIX-like operating systems.

Cluster Computing

Unlike SMP architectures and especially in contrast to thread-based concurrency, cluster (and grid) architectures offer high scalability due to the relative absence of shared resources, although this can make the programming paradigms seem somewhat alien to uninitiated developers. In this domain, some overlap with other distributed computing technologies may be observed (see DistributedProgramming for more details).

Grid Computing

Editorial Notes

The above lists should be arranged in ascending alphabetical order - please respect this when adding new frameworks or tools.

ParallelProcessing (last edited 2021-05-17 13:47:48 by MordicusEtCubitus)

Unable to edit the page? See the FrontPage for instructions.