Skip to main content

Python Unified Multiprocessing Parallel Functions

Project description

Python Unified Multiprocessing Parallel Functions

This is a small library that aims to bring together the standard library map/reduce functions with both the multiprocessing module in the standard library and the PP module (www.parallelpython.com).

Each has their own niche, and there own advantages and disadvantages. The map/reduce functions in the standard library are good for implementing a functional paradigm, but are limited by the GIL to only run one task at a time. The multiprocessing module is good for single machines with multiple CPUs, but can be awkward to debug and use. The PP module is great for clusters, but is even more awkward to debug and use. Plus all of these have different APIs, and so cannot be drop-in replacements.

pyumpf gets around this by providing a unified interface via umpf.map and umpf.reduce that can easily be expanded to use multiprocessing or PP when needed, but also collapsed to the built-in map/reduce for simpler debugging.

To install: python setup.py install

For an example, see umpf_test.py Note that this example gives PP a poor performance. This is because it is running on a single machine, and this example is too small to make best use of the parallelism. Ideally, tasks should run for several seconds each and have easily pickleable arguments and returned values.

By default, umpf defaults to pythons built-in map/reduce. These are single-threaded.

To use multiprocessing, do the following:

import umpf import multiprocessing as mp umpf.Hub.pool = mp.Pool()

To use Parallel Python, do the following:

import umpy import pp umpy.Hub.pool = pp.Server()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyumpf-0.1.1.tar.gz (3.5 kB view details)

Uploaded Source

File details

Details for the file pyumpf-0.1.1.tar.gz.

File metadata

  • Download URL: pyumpf-0.1.1.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyumpf-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2f2e5a5f592ca6adb97c2cbe6e11cd1a8e99d0f9925ac0d065d72fa65bd83e1f
MD5 d5b4b766ba506cfb9f9058b49c209e0d
BLAKE2b-256 38f2973765bd9b801320c200d90026fc7d25740c327cb310c97b2d645b46da20

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page