一个简单的 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 安装文档)。只需更改SimpleMultiprocessingWorker
为SimpleMPIWorker
上一个示例并使用 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
查看哈希)
内置分布
pckit-0.2.2-py3-none-any.whl
(11.0 kB
查看哈希)