Skip to main content

一个简单的 Python 并行计算包

项目描述

pckit

这是一个简单的 Python 并行计算包。

用法

多处理

如果要使用包中的任何求解器,则必须将函数包装到模型中。在这里,平方为 2 和 3 的示例由 2 名工人评估。 MyModel是包的子类Model。方法results是必需的。

import pckit


class MyModel(pckit.Model):
    def results(self, x):
        # Solve here problem f(x) = x^2
        return x ** 2


if __name__ == '__main__':
    model = MyModel()
    worker = pckit.SimpleMultiprocessingWorker(model)
    with pckit.get_solver(worker, workers_num=2) as solver:
        # Create tasks to solve. You can put args or
        # kwargs for model.results() method in the Task
        tasks = [pckit.Task(2), pckit.Task(x=3)]
        results = solver.solve(tasks)
        print(results)
        # >>> [4, 9]

MPI

您可以使用 MPI 上的mpi4py实现轻松地在集群上运行脚本(请参阅mpi4py 安装文档)。只需更改SimpleMultiprocessingWorkerSimpleMPIWorker上一个示例并使用 MPI 启动脚本mpiexec -np 3 python -m mpi4py your_script.py

worker = pckit.SimpleMPIWorker(model)

此外,可以在 MPI 求解器中启动多处理求解器。

单线程

单线程执行也可用于SimpleWorker

worker = pckit.SimpleWorker(model)

例子

更多示例

特征

缓存

基于字典的缓存可caching通过get_solver(). tag属性 inTask是必需的,并且必须是可散列的。

with pckit.get_solver(worker, caching=True) as solver:
    tasks = [pckit.Task(2, tag='2'), pckit.Task(2, tag='2')]

第二个任务的解决方案将从缓存中重用。

自定义迭代器

您可以使用自定义迭代器发送电子邮件或打印任何内容。 还支持tqdm 。

import tqdm

results = solver.solve(tasks, iterator=tqdm.tqdm)

请参阅示例以创建您自己的迭代器。

Comsol 模型、求解器、工作者

基于MPh包。

待定_

项目详情


下载文件

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

源分布

pckit-0.2.2.tar.gz (9.7 kB 查看哈希)

已上传 source

内置分布

pckit-0.2.2-py3-none-any.whl (11.0 kB 查看哈希

已上传 py3