Skip to main content

mpi list

This package implements the DFM class.

The DFM is a useful abstraction for working with lists distributed over a set of MPI ranks. The acronym stands for distributed free monoid, which is just a fancy way to say it’s a list.

If you’re familiar with spark, it’s like an RDD, but only holds a list.

Quick Start

from mpi_list import Context, DFM

C = Context() # calls MPI_Init via mpi4py

# After each of the three lines below:
#  1. each rank now has 1000//C.procs consecutive numbers
#  2. each rank now has a list of strings
#  3. only numbers containing a '2' remain
dfm = C . iterates(1000) \
        . map(lambda i: f"String {i}") \
        . filter(lambda s: '2' in s)

if C.rank == 0:
    # Caution! Uncommenting this will deadlock your program.
    # Collective calls must be called by all ranks!
    #print( dfm . head(10) )
    pass

# This is OK, since all ranks now have 'ans'
ans = dfm.head(10)
if C.rank == 0:
    print( ans )

ans = dfm . filter(lambda s: len(s) <= len("String nn")) \
          . collect()
if ans is not None: # only rank 0 gets "collect"
    print( ans )

Launch your program with mpirun python my_prog.py.

If you’re using a supercomputer, consider installing spindle, and then use spindle mpirun python my_prog.py.

Note

This project has been set up using PyScaffold 4.0.1. For details and usage information on PyScaffold see https://pyscaffold.org/.

Metadata

Release files for mpi_list 0.3

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

Source distribution (sdist)

Source distribution for mpi_list 0.3
File Size Uploaded
mpi_list-0.3.tar.gz 23.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mpi_list 0.3
File Interpreter ABI Platform
mpi_list-0.3-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 37.9 kB

Release files / mpi_list-0.3.tar.gz

Download URL mpi_list-0.3.tar.gz
Size 23.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3e5ce172ad058577d675d0276ed6b36f9fb64d1321be69cbaef9a873d6fa2ac7
BLAKE2b-256 checksum
How to use checksums
06e5c7f43e056342547676a90208a2f7db0e5ab4fafdf3b5cf9091bc10240731
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

Release files / mpi_list-0.3-py2.py3-none-any.whl

Download URL mpi_list-0.3-py2.py3-none-any.whl
Size 14.3 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
29b3a11c7d7022ebdc02c05a34da39f061acdc44fa8cf69d54564451a1bf862f
BLAKE2b-256 checksum
How to use checksums
079bee2d99393d8586152410e0e1c7b58d32523fcabefd87828a9067f6c417a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3 This release

2 release files

0.2.1

2 release files

0.2

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