Skip to main content

Thin MapReduce-like layer on top of the Python multiprocessing library.

Project description

Thin MapReduce-like layer on top of the Python multiprocessing library.

PyPI version and link.

Package Installation and Usage

The package is available on PyPI:

python -m pip install mr4mp

The library can be imported in the usual way:

import mr4mp

Examples

Word-Document Index

Suppose we have some functions that we can use to build an index of randomly generated words:

def word(): # Generate a random 7-letter "word".
    return ''.join(choice(ascii_lowercase) for _ in range(7))

def index(id): # Build an index mapping some random words to an identifier.
    return {w:{id} for w in {word() for _ in range(100)}}

def merge(i, j): # Merge two index dictionaries i and j.
    return {k:(i.get(k,set()) | j.get(k,set())) for k in i.keys() | j.keys()}

We can then construct an index in the following way:

from random import choice
from string import ascii_lowercase
from timeit import default_timer
start = default_timer()
pool = mr4mp.pool()
pool.mapreduce(index, merge, range(100))
print("Finished in " + str(default_timer()-start) + "s using " + str(len(pool)) + " process(es).")

The above might yield the following output:

Finished in 0.664681524217187s using 2 process(es).

Suppose we had instead explicitly specified that only one process can be used:

pool = mr4mp.pool(1)

After the above modification, we might see the following output from the code block:

Finished in 2.23329004518571s using 1 process(es).

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

mr4mp-0.0.5.2.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

mr4mp-0.0.5.2-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file mr4mp-0.0.5.2.tar.gz.

File metadata

  • Download URL: mr4mp-0.0.5.2.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0

File hashes

Hashes for mr4mp-0.0.5.2.tar.gz
Algorithm Hash digest
SHA256 37999d544c5a52b12d89973b32b5dc81a8a83470789202d4109c87f18b06f5f4
MD5 1f322fd02200d1586151955f7ed06b16
BLAKE2b-256 f77ce3a24619f4bf82f3881fec8b5f27b85a860456aeda0a6ddf0a3a638962e9

See more details on using hashes here.

Provenance

File details

Details for the file mr4mp-0.0.5.2-py3-none-any.whl.

File metadata

  • Download URL: mr4mp-0.0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0

File hashes

Hashes for mr4mp-0.0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 44457f0765afe077d677800023473f206098a571f7129591090636dbbcf4eb9b
MD5 c0e3d1040b4e4aa2ba9b06d9a65d28c1
BLAKE2b-256 20ab9cdbaadfcdcec4550075cc22366cf34249eeb1a7c4cc67c2c040c9c34307

See more details on using hashes here.

Provenance

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