Skip to main content

基于 MPI 的分布式列表 API

项目描述

这个包实现了DFM类。

DFM是一个有用的抽象,用于处理分布在一组 MPI 等级上的列表。首字母缩略词代表分布式自由幺半群,这只是说它是一个列表的一种奇特方式。

如果你熟悉 spark,它就像一个 RDD,但只保存一个列表。

快速开始

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 )

使用mpirun python my_prog.py启动您的程序。

如果您使用的是超级计算机,请考虑安装 主轴,然后使用主轴 mpirun python my_prog.py

笔记

该项目是使用 PyScaffold 4.0.1 建立的。有关 PyScaffold 的详细信息和使用信息,请参阅https://pyscaffold.org/

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

mpi_list-0.3.tar.gz (23.6 kB 查看哈希

已上传 source

内置分布

mpi_list-0.3-py2.py3-none-any.whl (14.3 kB 查看哈希

已上传 py2 py3