Skip to main content

tqdm_pathos

Project description

tqdm_pathos

Progress bars for multiprocessing with pathos

Wrappers based on parmap for multiprocessing with pathos and progress bar completion with tqdm. Following parmap, multiprocessing is extended to functions of multiple iterables, arguments, and keyword arguments.

While parmap includes these extensions and a progress bar, it is built on the default multiprocessing library. The multiprocessing/pools module in pathos includes enhanced serialization to allow multiprocessing of, e.g., lambda functions, class methods, etc.

Installation

You can pip install tqdm-pathos.

Usage

A pool with an automatically detected number of cores is set up by default. To choose the number of cores, use the n_cpus kwarg. Alternatively, an existing pool can be used by passing it to the pool kwarg. Extra kwargs can be passed to the tqdm progress bar using the tqdm_kwargs dictionary argument, e.g., tqdm_kwargs = {'desc': 'pbar description'}.

Function of a single iterable:

f = lambda x: x**2
iterable = [1, 2, 3]

# Serial
y = [f(x) for x in iterable]

# Parallel
y = tqdm_pathos.map(f, iterable)

Function of a single iterable, with non-iterable args and kwargs:

def f(x, a, b=0):
    return x**2 * a + b
iterable = [1, 2, 3]
a = 1
b = 0
    
# Serial
y = [f(x, a, b=b) for x in iterable]

# Parallel
y = tqdm_pathos.map(f, iterable, a, b=b)

Function of multiple iterables:

f = lambda x, y: x * y
iterable1 = [1, 2, 3]
iterable2 = [4, 5, 6]

# Serial
z = [f(x, y) for x, y in zip(iterable1, iterable2)]

# Parallel
z = tqdm_pathos.starmap(f, zip(iterable1, iterable2))

Function of multiple iterables, with non-iterable args and kwargs:

def f(x, y, a, b=0):
    return x * y * a + b
iterable1 = [1, 2, 3]
iterable2 = [4, 5, 6]
a = 1
b = 0

# Serial
z = [f(x, y, a, b=b) for x, y in zip(iterable1, iterable2)]

# Parallel
z = tqdm_pathos.starmap(f, zip(iterable1, iterable2), a, b=b)

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

tqdm_pathos-0.4.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

tqdm_pathos-0.4-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file tqdm_pathos-0.4.tar.gz.

File metadata

  • Download URL: tqdm_pathos-0.4.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for tqdm_pathos-0.4.tar.gz
Algorithm Hash digest
SHA256 8ec3b52475c10ea7a80ed858f775f0f7a21e1cca13bee990c3523859bb639f1b
MD5 f894fce76e8ef12568f4f77159890d56
BLAKE2b-256 ef1144d8c1f4e398cffd9314512358d9b700ae5823fd9bd73a295faca91f0ada

See more details on using hashes here.

File details

Details for the file tqdm_pathos-0.4-py3-none-any.whl.

File metadata

  • Download URL: tqdm_pathos-0.4-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for tqdm_pathos-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2c16852b00035e431709b7e558afadde20d4b868e81e028cda8a3ac452b617a8
MD5 d93d3ea116fe2dcd2671f5c6e549df5a
BLAKE2b-256 02df267827df1ed8c4830af28653392dea042897a486576e5990a4d27f0257cd

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