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.4.2.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

mr4mp-0.0.4.2-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mr4mp-0.0.4.2.tar.gz
  • Upload date:
  • Size: 2.8 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.4.2.tar.gz
Algorithm Hash digest
SHA256 c6237d95da557ff90db9a2bc94f478143f2aa6972cad045d6c2310ac437a7f7d
MD5 3fca8a0eef8b6e1018173473855d78f8
BLAKE2b-256 f25fdaea58be8e893011c7ef205dfc14271b4138ff9dcaea51808a666676d4b5

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: mr4mp-0.0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 3.6 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.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bc2705f25be68a4f6f004c56581909985bb49f8f289ed2c2815cad2ee4026284
MD5 3b821991997d32112fa2bd2acda82f06
BLAKE2b-256 d364c1678ab851234946aa4acb0ff2f5264fe1d5f673ac82ffb49f4cd07ee03c

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