Skip to main content

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](https://computing.llnl.gov/projects/spindle/software) 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.2

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.2
File Size Uploaded
mpi_list-0.2.tar.gz 20.1 kB Details

Built distribution (wheel)

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

Total release size: 30.1 kB

Release files / mpi_list-0.2.tar.gz

Download URL mpi_list-0.2.tar.gz
Size 20.1 kB
Tags Source
SHA-256 checksum
How to use checksums
30d3bded7b581dd21b67c2617b54e652b7189b207dd9a50af541c47646e6f1a7
BLAKE2b-256 checksum
How to use checksums
6de318063c1ef9193f70b81a3e4d2021b5efbe3fade01bc0255a89c282b07f36
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.2-py2.py3-none-any.whl

Download URL mpi_list-0.2-py2.py3-none-any.whl
Size 10.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
5a724255d9cff3eccac43bf8a461b69dd3ee9b36cd0b103e2a3941de3656508c
BLAKE2b-256 checksum
How to use checksums
c2444c0e4cdd9c9f1a6c2c236c5b09a2792f3757df4e815b3f481f0dd21887bf
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

0.3

2 release files

0.2.1

2 release files

This release

0.2 This release

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