Skip to main content

mptrolley

a simple python module to solve problem in a multiprocessing way.

background

there are many jobs which are processed in batches. for example, in many computing tasks, you may need to run a same algorithm on many groups of different input data, and the "subproblems" are often irrelevant with each other. in this case, multiprocessing is a very simple and understandable way to accelerate. so we designed a very simple python module called mptrolley under the principle of KISS (Keep It Simple and Stupid).

terminology

problem and questions

in this passage, we define that a batched job is called a problem. in a single problem, there are may questions, and each question has a continuous numbering (begins from zero). we assume that you have already write a python function to solve a single question:

def question_function(question_index, common_context):
  ...

and we assume that you can solve your problem without any parallel in the following way:

common = ...
for i in range(question_count): # the questions should be numbered from 0 to (question_count-1)
  question_function(i, common)

in this case, mptrolley provides you a simple way to solve the problem faster with multiprocessing:

import mptrolley
common        = ...
process_count = ... # an interger to control the number of processes
mptrolley.solve_problem_with_multiprocessing(question_function, common, question_count, process_count)

the question list will be devided into process_count lists according to question_index % process_count. for some question qx and some process px, px will be used to solve qx if and only if qx.question_index % process_count == px.process_index.

install from github release

  1. go https://github.com/GGN-2015/mptrolley/releases and download a .whl file.
  2. use pip install mptrolley-<version>-py3-none-any.whl to install the package into your local environment.

install from pypi

pip install mptrolley

usage

import mptrolley

# define your own question function, it **MUST** have two parameters
#   question_index will be given a continuous integer index.
#   and common_context is the common information you may need during every question's solving procedure.
#   (there are many cases where we just don't need it.)
def question_function(question_index, common_context) -> None:
  ...

common        = ... # common information
process_count = ... # an interger to control the number of processes
mptrolley.solve_problem_with_multiprocessing(question_function, common, question_count, process_count)

Metadata

Release files for mptrolley 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mptrolley 0.0.4
File Size Uploaded
mptrolley-0.0.4.tar.gz 4.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mptrolley 0.0.4
File Interpreter ABI Platform
mptrolley-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 10.8 kB

Release files / mptrolley-0.0.4.tar.gz

Download URL mptrolley-0.0.4.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c15616562efda86b1820c585c8bcc499b223bba763f1126dee09ed4e89765e13
BLAKE2b-256 checksum
How to use checksums
59fd78825941ebc3246c918aaae5ad0356593bfca6d9bd36b146a86ec01110cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release files / mptrolley-0.0.4-py3-none-any.whl

Download URL mptrolley-0.0.4-py3-none-any.whl
Size 6.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
656f08564e996c9182aacae59a12250bbe08d02a1e7ccfcaa2dd423c47895a90
BLAKE2b-256 checksum
How to use checksums
e6a6f4fc5b5194131cc910f09c5b1aa507f542edd99b163cd8dd736f7a168e3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page