类似于多处理的mpi池

mpipool的Python项目详细描述


关于

mpipool提供了一个类似的Poolmultiprocessing.Pool 从标准库。

mpipool使用MPIPool实现 schwimmbad库 并规避其某些限制:

  • 一系列的mpipool.Pool.map调用不会崩溃,
  • 如果工作进程引发异常,则MPI 任务被正确关闭,以便整个程序停止并执行 不是吊死。

示例用法

from mpipool import Pool

def add(a, b):
    return a + b

p = Pool()

sums = p.map(add, [(ai, bi) for ai in range(10) for bi in range(10)])

assert len(sums) == 100
assert sums[0] == 0
assert sums[-1] == 18

sums = p.map(add, [(ai, bi) for ai in range(10) for bi in range(10)])

assert len(sums) == 100
assert sums[0] == 0
assert sums[-1] == 18

程序必须在命令行上运行,如:

$ mpirun -n 4 python example.py

目前mpipool.Pool只实现一个map方法。

MPIPool实现相反 schwimmbadfrom mpipool import Pool之后的语句只执行 按排序为0的任务。

学分

mpipool使用MPIPool实现 schwimmbad库。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
文件名的java正则表达式限制名称大小和文件扩展名   Mac上的java Android SDK:jspawnhelper意外退出   java SQL Server 2000到Oracle 12c重音字符   在Java中快速比较大数据集中的值和小数据集中的值   java在代码中的许多地方保留对对象的引用   Java规范中私有内部类的jvm访问标志与反射API不一致?   比较2个int数组中匹配的数字   java Apache Commons数学简化回归:get prediction stderr   安卓 Java SDK管理器因命令行输出中的“flashplayerplugin”而崩溃   JavaSQLite:关闭DB时必须关闭游标吗?   泛型Java设计抽象类声明示例说明   java应用程序在添加片段时崩溃   如何在java中使用注释为字段加载值